Blog

¡Hola!

Bienvenido a nuestro blog. Te invitamos a tomar una taza de café (té, agua, Boing o lo que prefieras) y leas algunos de los artículos que nuestro equipo ha desarrollado para ti.

Se actualiza diario, de lunes a viernes así que casi siempre puede encontrar algo nuevo por aquí.


El diablo está en los detalles

3rd mayo

La complejidad de la realidad es innegable, la cantidad de estímulos disponibles al ser, innumerables.

De hecho, el cerebro humano es un filtro negativo que se dedica a descartar información, de nada sirve el canto del pájaro cuando venimos manejando, del mismo modo que es innecesario pensar en el funcionamiento del motor de combustión interna para que este funcione. Pero si tuvieramos que analizar un accidente sucedido en ese preciso instante, necesitariamos saber si el canto del pájaro distrajo al conductor, o si el motor falló durante alguno de sus ciclos.

El problema es que no siempre sabemos cuando van a fallar las cosas y monitorearlo todo todo el tiempo no es rentable. Asi que tenemos que escoger y tenemos que excluir. Cuales son los detalles relevantes y cuales no.

Lo mismo sucede cuando planeamos un proyecto, nuestro cerebro solo ve pequeñas porciones … Read More »


Crear un archivo CSV con groovy

29th abril

Para este ejemplo, supongamos que tenemos un Array de Arrays como datos.

def animales = [
[id:'1',color:'gris',animal:'Elefante',descripcion:'El Elefante es "gris"'],
[id:'2',color:'verde',animal:'tortuga',descripcion:'Hay tortugas "verdes"'],
[id:'3',color:'amarillo',animal:'Canario',descripcion:'El canario es "Amarillo"'],]

A continuación, podemos crear nuestro archivo CSV de la siguiente manera:

def out = new File(‘C:/Users/ubicacion/animals.csv’)
animales.each {
def row = [it.id, it.color, it.animal, it.descripcion]
out.append row.join(‘,’)
out.append ‘\n’
}

El resultado del archivo creado es el siguiente:


¿Usas EGit y tienes problemas? Prueba con Git Bash

26th abril

Ayer me encontraba con Francisco pulleando cambios a su repositorio local, cuando de pronto apareció un wild EGit que no nos lo permitió.

¿Y por qué no nos dejaba? Por el mensaje de error que nos devolvió EGit, quien sabe. Simplemente EGit nos dijo que no podíamos y ya. Lo intentamos de nuevo sin hacer ningún cambio y la respuesta que nos dio ahora fue que ya estaba todo al día. Mentiroso.

Usando Git Bash encontramos que no nos dejaba hacer pull tranquilamente porque un archivo en especifico tenia cambios y requería de un commit. Pero si nos hubiéramos quedado usando Eit, quizá nos hubiera llevado mucho mas tiempo en averiguarlo.

http://msysgit.github.com/


Google “Webspam Algorithm Update” y algunas precauciones SEO

26th abril

Matt Cutts, el jefe y gurú espiritual del equipo de anti-Spam de Google comentó en el pasado SXSW que Google no tardaba en soltar una actualización en su algoritmo específicamente enfocada a detectar sitios que anden pasándose de listos exagerando en la aplicación de SEO, es decir, “Sobre optimizando”.

Aquí una nota al respecto dentro del blog oficial de Google Search

La idea detrás de todo esto es que los que hacemos SEO no nos pasemos de lanza, que quienes hacen SEO al mero estilo rudo y sucio no pasen por encima de los que tratamos de hacer las cosas al mero estilo Jedi.

Cómo este tema es muy nuevo, es cosa de esta última semana y unos día antes, estuve leyendo … Read More »


Aplicación Web profesional en minutos: Grails + Twitter Bootstrap + CloudFront + Jelastic.

25th abril

Después de muchos años de recibir solicitudes de cotizaciones, requerimientos y múltiples consultas de distintos clientes, ya no es extraño recibir solicitudes como esta:

Necesitamos una aplicación web de alta disponibilidad, con un bajo tiempo de carga, que tenga su dominio y otros dominios que apunten al principal,  que tenga un buen diseño, que se vea bien en todos los browsers y en dispositivos móviles, que pueda ser escalable y que esté alojada en servidores en Estados Unidos. Por cierto, por políticas de la empresa, debe ser programada en Java. La necesitamos para mañana y no contamos con mucho presupuesto.

Un verdadero poema a la carcajada, sin embargo, la solicitud es real, lo que nos hace pensar: ¿Es realmente posible?

¡Claro! En la actualidad existen innumerables frameworks que combinan toda clase de tecnologías que nos ayudan a crear aplicaciones web de todo tipo sin necesidad de … Read More »


¿Cuándo?

23rd abril

La palabra preferida de los clientes es: ¿Cuándo?

El cálculo de fechas estimadas de entrega para las tareas de un proyecto es más complejo de lo que parece, sobre todo porque no se utilizan las herramientas adecuadas para ello. Un proyecto, idealmente, cuenta en su inicio con una fase de planeación, en la cuál se determinan las acciones que es necesario llevar a cabo para cumplir con el objetivo del mismo. Estas acciones, a su vez, deben ser descompuestas en tareas y asignadas a las personas que las llevarán a cabo. Este conjunto de tareas, las relaciones que existen entre ellas, y su duración estimada, forman un diagrama de Gantt, el cuál se actualiza periódicamente con la información generada en la fase de desarrollo para obtener una estimación más precisa de las fechas de terminación de las tareas, y por ende, … Read More »


Desarrollo de aplicaciones móviles con PhoneGap

23rd abril

En mi búsqueda por nuevas tecnologías y opciones para el desarrollo de aplicaciones móviles me encontré con PhoneGap https://build.phonegap.com/.
PhoneGap es un framework para desarrollar aplicaciones con HTML, CSS y Javascript para iPhone/iPad, Google Android, Palm, Symbian, BlackBerry y Windows Mobile.

Pero bueno si se utilizan herramientas para desarrollo WEB, pues ¿No sería lo mismo desarrollar aplicaciones WEB para móviles? Pues en realidad PhoneGap va más allá de esto ya que incluye un API (una interfaz para comunicar Javascript con el lenguaje nativo) el cual permite tener acceso al hardware del dispositivo como sería:

Vibración
Sonido
Acelerómetro
Brújula
Geo localización

Excelente opción para los desarrolladores Web que desean programar aplicaciones móviles lo más semejante a las aplicaciones nativas.

Una de las ventajas más grandes que se puede apreciar es la de poder programar aplicaciones y fácilmente portarla a los diferentes dispositivos,  sin tener que realizar migración de código.

La … Read More »


Asíncronizando tu aplicación

22nd abril

Hace unos cuantos días me tocó entrar de emergencia a un proyecto uno de los principales retos que nos encontramos fue portar el proyecto de Gears (qepd) a HTML5 usando IndexedDB.

Una de las principales características que tienen estas funciones de base de datos es que son asíncronas, esto quiere decir que se van a hacer algo y no sabemos a que hora regresan, bueno solo hasta que mandan llamar el callback correspondiente.

Al estar haciendo varias de las pantallas nos encontramos con código muy parecido al siguiente:

db = google.gears.factory.create(‘beta.database’);
db.open(‘EjemploBDD’);

var articulos = db.execute("SELECT nombre FROM articulos WHERE id = ? LIMIT 1;", [id]);

while(articulos.isValidRow()){
$("#lista_articulos").append("<li>"+articulos.fieldByName("nombre")+"</li>");
}

Como vemos todo pasa de una manera muy lineal, si queremos aplicar lo mismo con la nueva forma tendríamos algo así:

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
var db = null; //base de datos

openRequest = window.indexedDB.open("EjemploBDD", 1);
openRequest.onsuccess … Read More »


Aprendiendo de los horrores ajenos

20th abril

Uno de nuestros objetivos en el desarrollo de sistemas es que sean un placer de usar.

Para ello buscamos poner mucha atención a los pequeños detalles, que pueden ser casi imperceptible, pero que mejoran muchísimo la calidad de lo que entregamos. Para ilustrar esto se me ocurren los siguientes ejemplos:

1. Uso de botones correctamente etiquetados para la función que realizan.

2. Redacciones útiles de los mensajes de alerta (“Algo falló, error” vs. “Su sesión expiró y la acción no pudo ser completada”).

3. Un indicador visual de carga para mostrar al usuario que se está ejecutando una acción y que debe esperar.

Pero, nada nos invita más a cuidar los detalles en nuestros propios desarrollos que ser usuarios críticos de otros sitios web, y en este sentido lo que buscamos es identificar un error y poner mucha atención en no cometerlo nosotros. Somos una especie … Read More »


¿Por qué los nombres tan raros de Ubuntu?

20th abril

A propósito del próximo lanzamiento de Ubuntu 12.04 quisiera comentar sobre sus nombres tan distintivos…

La gente que se ha acercado a Linux sabe que en cada nuevo lanzamiento de la distribución de Canonical, Ubuntu; viene con un nombre distintivo y un número.

Las versiones son cada seis meses, y cada cierto tiempo sale una version LTS (long term support) con soporte para 2 años o más, el número indica la fecha en que salió la versión, por lo regular salen en Abril y Octubre, la nueva versión saldrá en Abril (4) del 2012 (12)… por eso es la versión 12.04 el nombre debe tener las siguientes características:

1. Cualidad positiva en forma de adjetivo.
2. Algún animal.
3. Orden alfabético.
4. La fecha de salida.

Así tenemos la siguiente lista de lanzamientos:

4.10 – Warty Warthog
5.04 – Hoary Hedgehog
5.10 – Breezy Badger
6.06 – Dapper Drake
6.10 – Edgy … Read More »


Ninjas vs Samurai

19th abril

Aunque sea sólo por fines argumentativos o de conversación. Encuentro muy útil usar símiles para explicar o analizar conceptos. Comparar un proyecto de sistemas con una casa en construcción, una empresa con un árbol, en equipo de trabajo como los tripulantes de un barco, etc.

Hasta hace poco utilizaba el nombre ninja para identificar a un miembro ideal de nuestro equipo de desarrollo. Ninja suena bien ¿no? Ninja: un guerrero cuasi-mítico de habilidades incomparables, altamente dedicado y entrenado. Comprometido 100% con su misión y decidido a llevarla a cabo a cualquier costo.  Su misión es una y simple: acabar con su misión (tareas) o morir en el intento (¿abandonar el proyecto?).

Todo suena ideal hasta que empiezan a saltar algunos detalles. Los ninja operan casi siempre en las sombras o disfrazados. Su fin justifica cualquier medio para lograrlo, inclusive alguna que otra … Read More »


Información es poder… hacer las cosas bien.

16th abril

Tradicionalmente, la comunicación se ha definido como “el intercambio de sentimientos, opiniones, o cualquier otro tipo de información mediante habla, escritura u otro tipo de señales”. Todas las formas de comunicación requieren un emisor, un mensaje y un receptor destinado.

En nuestro caso, mientras mas información nos provea el emisor, mejor podemos desarrollar nuestro trabajo.

Me han tocado tareas que han llegado más o menos así:

Necesito que por favor me muevan esta imagen de aquí hacia acá.
Gracias.

Y estoy seguro que el cliente estaba señalando su monitor en ese momento.

La información (el mensaje) anterior viene mal desde el origen, desde el emisor. No sabemos cual imagen es “esta imagen”, tampoco sabemos dónde es “aquí”, y mucho menos, dónde es “acá”. Si no aclaramos inmediatamente esa información, vital para los fines de la tarea, estamos condenados a tener esa tarea en nuestro panel por … Read More »


Aceptar la moda

9th abril

Our industry, the global programming community, is fashion-driven to a degree that would embarrass haute couture designers from New York to Paris. We’re slaves to fashion. Fashion dictates the programming languages people study in school, the languages employers hire for, the languages that get to be in books on shelves. A naive outsider might wonder if the quality of a language matters a little, just a teeny bit at least, but in the real world fashion trumps all.

Steve Yegge – Prefacio de “The joy of Clojure

Me confieso culpable de querer siempre los “nuevos juguetes”, pasar horas aprendiendo a usar lenguajes de programación cada vez más raros, estar siempre al pendiente de los blogs y de Twitter para enterarme de “lo último”. Paso mucho tiempo en githubRead More »



♥ La reina de corazones

2nd abril

La semana pasada se lanzó la versión beta del sitio La reina de corazones, una revista periodística, completamente femenina y descrita por sus creadoras como “periodismo de corazón”.

En este sitio podemos encontrar diversas notas dedicadas a la mujer contemporánea que gusta de cuidar su salud, se preocupa por su belleza, le gusta la moda, está interesada en la sociedad, lee sobre política y lo que sucede en el ambiente artístico, o sólo alguna de las anteriores.

Un sitio completamente dinámico en el cuál podemos destacar que el uso de thumbnails [imágenes, muchas muchas imágenes] como parte de un elemento de la comunicación, el complemento perfecto para el lenguaje escrito de ésta.

La reina de corazones, es un proyecto que alterna diversas formas de presentar la información, siendo está una nueva propuesta de revista de entretenimiento, sin pasar por alto que … Read More »



Migrar de jQuery a Javascript

30th marzo

jQuery es una biblioteca de Javascript que facilita el acceso a elementos del DOM. Es de muy fácil uso y tiene el soporte de varias empresas como Google, Dell, Mozilla, WordPress, etc.

El uso de jQuery se ha popularizado mucho en los últimos años, su facilidad de uso, la gran cantidad de plugins y toda la comunidad de soporte que tiene han facilitado esto.

jQuery se ha vuelto tan famosa que mucha gente confunde jQuery con Javascript, si bien, escribir código de jQuery es escribir código en Javascript lo que quiero decir con esto es que hay cosas que se pueden hacen fácilmente con Javascript puro y nativo de nuestro navegador sin necesidad de jQuery y asi nos ahorramos la carga del framework en nuestras aplicaciones (32 kbps, aprox).

$(‘#identificador’);

Esta función en jQuery selecciona un ID de nuestro DOM con el nombre identificador … Read More »


Fachadas

29th marzo

Todo el mundo conoce los sets de madera donde se filmaban las películas del viejo oeste.

Fachadas.

Por supuesto, cuando uno solo necesita una fachada construir una casa no tiene ningún sentido. Pero si uno cree que a su fachada le puede construir un tercer piso está en un grave error.

Muchas veces nuestros clientes piensan en una página web justo como se piensa en una fachada: “Quiero que en mi página los visitantes puedan subir sus fotos”.

Las fotos son una fachada únicamente.

Me voy a explicar. En la red existen N=(no tengo idea, pero el número es grande) cantidad de lugares en donde las personas pueden subir sus fotos. Flickr, Facebook, Twitter, MySpace, Google+, Reddit, Instagram, y un sin número de sitios más pequeños todos compitiendo por esas fotos. Pero la realidad es que las fotos que … Read More »


Tips: link building orgánico

28th marzo

Posicionar un sitio en los primeros lugares de los resultados de búsqueda no es fácil y entre más competencia tengas con relación al contenido/producto que ofreces la cosa se pone más complicada, cabe decir que con Google siendo cada vez más inteligente las posibilidades de que echándote tus truquitos logres buen ranking son cada vez menos.

Conseguir enlaces o links que lleven a tu sitio es bueno pues ayuda mucho al posicionamiento, conseguirlos de forma orgánica (gratis) es mejor, Google es fan de lo orgánico, me recuerda mucho a una amiga muy snob que compraba todo orgánico, nomás me faltó enterarme que compra agua orgánica.

Regresando al tema, aquí dejo siete interesantes formas de conseguir que otras personas nos regalen links

*Voy a obviar al rey del SEO creador de los mejores enlaces gratuitos y de calidad: Contenido de Calidad.

Participa en una comunidad. … Read More »


Nice to meet you

28th marzo

Vincoorbis está próximo a estrenar tarjetas de presentación, es un proyecto que como diseñadora me entusiasma mucho, pues éstas forman parte de la primera impresión que tiene un cliente o cliente potencial al conocer a algún miembro de la empresa.

Se optó por no homogeneizar las tarjetas y hacer que cada una refleje la identidad del portador, lo cual sin duda es un desafío, ya que si en algo destaca vincoorbis es en su heterogeneidad, cada miembro es independiente a su manera y es eso lo que complementa y balancea a la empresa como un todo.

Esta es la primer tarjeta, lo primero que hay que destacar es que “vincoorbis” esta escrito con puño y letra del portador de la tarjeta, aportando asi una apariencia mas organica y flexible que contrasta con la tipografía geométrica de abajo y con el esquema … Read More »



Scaffolding con Grails

27th marzo

Problema: Crear una interfaz web sencilla para incorporar información a una base de datos.

Solución: realizar un scaffolding con Grails.

¿Qué es Scaffolding?

El Scaffolding es un término introducido por Rails y que está presente en otros frameworks como Grails, ya que permite la generación automática de código para las cuatro operaciones básicas de cualquier aplicación: creación, lectura, edición y borrado, en inglés se conoce como CRUD. La idea es que partiendo del esquema de base de datos, generar el código necesario para implementar el CRUD. En Grails se consigue escribiendo una sola línea de comando.

Grails permite dos tipos de scaffolding, dinámicos y estáticos (documentación). En el scaffolding dinámico el código se genera en tiempo de ejecución, de modo que cualquier cambio en las clases de dominio genera un nuevo scaffolding, el estático, genera código estático tanto de vistas como de controladores de forma que después … Read More »


Obsoleto.

27th marzo

El día de hoy, al terminar de migrar un sitio en WordPress, me percaté de que uno de sus plugins no estaba funcionando correctamente. Algo grave considerando que es el plugin que controla las imágenes del sitio.

Y ni modo, me lancé a la búsqueda de la verdad que está allá afuera. El quest por el cáliz de oro, la última respuesta y para mi terror, la encontré.

Resulta que una de las funciones php que utiliza el plugin, funciona a las mil maravillas en un ambiente con PHP 5.2, pero se considera obsoleta en php 5.3 y si… por 5 puntos, ¿qué versión de php tiene el nuevo server? Exacto, 5.3.

Ahora, ¿qué hago con la información que tengo? “Busca como arreglarlo”, grita la dama de allá al fondo. ¡Gracias señorita! Y tiene razón.

Nuestras aplicaciones evolucionan igual que los seres vivos, son felices … Read More »


Discoball

27th marzo

Tengo algo que confesar: a veces me equivoco.

No es tan grave. Las pruebas automáticas me rescatan la mayoría de las veces; un vistazo rápido al error que arrojan casi siempre me permite identificar el problema. Incluso cuando no es tan simple, la base del proceso de debugging es examinar el stacktrace para buscar qué salió mal y dónde.

El problema es que la salida del script de pruebas es algo así:

Esas líneas de “=” separan unos casos de prueba de otros, pero a mí no me parecen muy fáciles de distinguir entre tanto texto. Es práctico tener el stacktrace completo, pero generalmente me interesa sólo la parte que sucede en el código que yo escribí. Y en general invierto demasiado esfuerzo en entender qué es lo que pasa ahí.

¿Cómo me facilito las cosas? Con colores, claro. Les presento discoball.

DiscoballRead More »



¿Estás aprendiendo Grails? Te recomiendo revisar este par de sitios.

23rd marzo

Groovy Examples & Groovy Almanac: Si, ya sé, son dos sitios, pero ambos son tan similares que los cuento como un único recurso. Básicamente son dos sitios que contienen varios snippets de Groovy que te pueden ser útiles en muchos niveles. Desde sacarte de un apuro, hasta darte ideas para tus proyectos. A mi me ayudaron mucho algunos de estos snippets para que me ‘cayera el veinte’ de lo que podía hacer con Groovy en mis desarrollos con Grails.
Groovy web console: Pues eso, una consola web de Groovy. Por si desean hacer pruebas rápidas de código. Por ejemplo, si entraron a Groovy Almanac y les dio curiosidad un snippet y quieren probarlo, pero no tienen Grails a la mano.


Diagrama Entidad-Relación con un script de mysql

22nd marzo

Siempre es de gran utilidad contar con un diagrama que nos muestre el diseño de una base de datos, pues de esta forma es mucho más fácil hacer un análisis de la misma, sin embargo en ocasiones no contamos con este diagrama porque se ha implementado la base de datos directamente, por lo que ahora mostraré como obtener un diagrama entidad-relación con una herramienta que encontré en internet.

Para este ejemplo usaré phpMyAdmin, (pero se puede hacer también desde consola con mysqldump) .
Primero selecciona la base de datos de la que deseas crear el diagrama, y te vas a la pestaña exportar.
Deselecciona la opción de “Datos”, pues no serán necesarios y después continuar.
Copia todo el código generado y visita este sitio http://teethgrinder.co.uk/database-diagram/
En la parte inferior hay una leyenda que dice “What to do”, y veras un recuadro (bastante pequeño), pega … Read More »


Widget de tiempos

21st marzo

Como parte del desarrollo de manoderecha, fue necesario elegir un widget de tiempos flexible, intuitivo y fácil de usar que reemplazara al timescroller que utilizabamos anteriormente, y que en mi opinión era fastidioso. En vez de implementar alguna solución ya desarrollada, decidimos crear una nosotros mismos.

El funcionamiento es simple, se trata de una caja de texto editable en la que inicialmente aparece el valor 00:00. Las flechas del teclado nos permiten modificar el valor del campo, Flecha Arriba lo aumenta y Flecha Abajo lo disminuye, dependiendo de la posición del cursor.

Pueden verlo en acción aquí:

http://jsfiddle.net/jj5jA/

El widget funciona tal como está, sólo requiere dos dependencias: jQuery 1.7+ y jquery.caret.js, un interesante plugin para obtener y manipular la posición del cursor en elementos input y textarea. Los invitamos a probarlo, … Read More »


La eterna lucha contra las políticas absurdas, parte 1: con los clientes

20th marzo

Los sistemas siempre deben de reflejar los procesos organizacionales y nunca al revés.

En mi experiencia, cuando se desarrolla un sistema sin considerar lo anterior terminas entregado algo condenado a morir por falta de uso. Para evitarlo insistimos mucho en incluir una fase de consultoría previa al desarrollo del sistema que finalmente entregaremos al cliente.

Ahora bien, que un sistema se adecue a los procesos de una organización no quiere decir que esos procesos no sean susceptibles de ser mejorados. No conozco ningún caso de alguien que quiera implementar un sistema que no esté buscando un beneficio claro, ya sea en tiempos, en costos, en velocidad ó en conveniencia.

Como consultor estás en una posición ideal para proponer cambios y mejoras, sin embargo no es posible hacerlas si no dedicas tiempo y esfuerzo importantes a conocer al cliente, su operación actual y sus … Read More »


La mano que lleva la minuta es la mano que mueve al mundo

19th marzo

“¿Quién lleva la minuta?”

Todo el que ha estado en una sala de juntas y escucha esta pregunta, sabe que equivale a estar en primaria y que la maestra pregunte: “¿Quién quiere pasar al pizarrón?”. Todo el mundo guarda silencio, voltea la miranda, finge (o demuestra su) demencia, mete la cabeza en la mochila para sacar su laptop (aunque ya esté abierta en la mesa), en fin… es la tarea más tediosa en un junta. Quiere decir que, en lugar de sentarte y platicar, vas a tener que poner el 100% de tu atención, escribir y, encima, dar seguimiento.

Pero ¿qué no ves que eso te hace dueño y arquitecto del futuro?

“La historia la escriben los vencedores”.

Eso dicen por ahí, propongo: “Los vencedores son los que escriben la historia”.

Un proyecto implica siempre comunicación. La comunicación nunca está exenta de ruido.

Los errores, incumplimientos … Read More »


Sintaxis de Grails & Groovy

16th marzo

Sintaxis de Grails & Groovy

Alguna vez se imaginaron lenguajes de programación: inteligencia artificial como Prolog, del tipo orientado a objetos Java, interpretados JavaScript, pues aunque no lo crean ya es posible, en al menos su sintaxis.

Tengo sólo algunos días utilizando esta herramienta donde me llamó la atención la particular sintaxis de este nuevo Frame de Java.

La sintaxis de Prolog donde realizas declaraciones de listas que son del tipo: [a,b,c,…]. Es algo que utilizan para pasar parámetros en funciones y resulta bastante útil, aunque la mayoría de los programadores que estamos más acostumbrados a utilizar beans, para realizar tareas de este tipo habitualmente lo hacemos  por medio de arreglos, listas o algún elemento del tipo de colecciones. Aquí se utiliza esta parte de Prolog para poder enviar todo lo que quieras: arreglos, variables, entre otras cosas.

Pero ni hablar de JavaScript que … Read More »


La vida en una cápsula

15th marzo

Leyendo en internet una noticia de tecnología he encontrado que hay unos inhaladores de cafeína que nos “evitan” la pérdida de tiempo de tomarnos un rico café. Ahora pensándolo más a fondo, ¿Por qué cada día tenemos más prisa por llegar a algún lado? ¿Hace cuánto tiempo que no nos detenemos a observar lo que nos rodea?

Nos vemos envueltos en un mar de productos de consumo rápido; comidas de microondas, casas prefabricadas, libros resumidos, programas presdiseñados, música desechable. Todo lo hecho con calma y por manos humanas es ahora considerado “artesanal”, y si bien ha tomado más valor, también ha estado desapareciendo.

En lo personal, algunas veces me he visto en el caso de abrir una hoja en blanco, prepararme a trabajar y de inmediato escuchar una voz de ayuda diciendo: “¿para qué pierdes tiempo llenando esa hoja?, instala wordpress y te evitas … Read More »


¢σ∂ιƒι¢α¢ιση ∂є ¢αяα¢тєяєѕ

14th marzo

En este mundo tan globalizado ya no basta con publicar un mensaje y creer que va a poder ser leido por los miles de millones de personas que habitan este planeta…y que tienen acceso a internet, esto solo sucede gracias a algo que se llama “Codificación de Caracteres”.

Esta codificación de caracteres es una manera de acomodar bits de tal manera que el receptor pueda decodificarlos y representarlos de una manera correcta.

Al comienzo, en el mundo de las computadoras estaba muy extendido el ASCII que constaba de 127 caracteres suficientes para representar el abecedario (mayúsculas y minúsculas) números y algunos caracteres especiales llamados “caracteres de control”, obviamente estos 127 caracteres eran insuficientes para poder representar otros idiomas.

Con esto la International Organization for Standardization mejor conocida como ISO publicó diferentes codificaciones como

ISO-8859-1 (aka latin-1)
ISO-8859-15 (aka latin-9)

Que incluían varios de los caracteres usados … Read More »



Denme un punto de apoyo y moveré al mundo

14th marzo

Decía Arquímedes en el siglo II a. c. : “Denme un punto de apoyo y moveré al mundo”. El día de hoy, yo diría “Denme los accesos y moveré tu mundo”.

Trabajar remotamente tiene sus beneficios (anteriormente expuestos aquí), pero también tiene limitantes, como depender total y absolutamente de accesos.

Para crear un sitio necesito:

Acceso al DNS para crear su Zona
Acceso al Panel de Control para crear su Hosting
Acceso al FTP para subir los archivos y editar sus archivos de configuración
Acceso a MySQL para crear la base de datos
Acceso al administrador del desarrollo para afinar los detalles

De una manera completamente simplista hemos descrito al menos cinco accesos.

¿Qué pasa cuando uno de los accesos no es entregado a tiempo? Todo se desmorona como un gran castillo de naipes. Es como un rango evolutivo donde el segundo paso depende del primero … Read More »


¿La NSA reinventa el hilo negro?

13th marzo

Hace poco me llegó la noticia sobre un super proyecto de la NSA,

Un smartphone android para comunicaciones seguras de inteligencia, milicia y empresarial.

¿Por que un título como reinventar el hilo negro?

Por que no ha creado realmente nada nuevo, aqui tenemos un servicio que realiza lo mismo en diferentes tecnologías CRYPTOPHONE.

Publicaron un pdf el cual contiene los planteamentos de que tipo de seguridad se impondria en esta version de Android modificada dedicada a la seguridad de comunicaciones, el cual nos permite realizar el mismo tipo de comunicaciones como plantean ya que esta idea no es nada nuevo o revolucionario, solo se trata de ocupar dos tecnologías ampliamente distribuidas:

VPNs y SVoip (El cual no es más que Voip con una capa de encryptación parecida al HTTPS para realizar una comunicacion encryptada).

Las cuales se utilizan … Read More »



Compatibilidad con navegadores con Javascript deshabilitado

9th marzo

A veces en nuestro sitio tenemos elementos que necesitan de Javascript para que funcionen. Cuando estos elementos son de estilo nuestro sitio se puede ver hecho un deforme mientras carga el script o peor aun si el navegador tiene Javascript deshabilitado. Para evitar esto podemos utilizar la siguiente técnica:
En la hoja de estilo de nuestro sitio agregamos las clases .no-js (para como queremos que nuestro elemento se muestre con javascript deshabilitado) y la clase .js (para el estilo con javascript habilitado):

.no-js .una-clase{
///Aqui ponemos el estilo que queremos que nuestro elemento tenga cuando javascript esta DESHABILITADO
}
.js .una-clase{
///Aqui ponemos el estilo que queremos que nuestro elemento tenga cuando javascript esta HABILITADO
}

Luego ponemos el siguiente script en nuestro sitio (recuerden que es recomendable poner los scripts hasta el final de nuestro documento html):

<script>
document.documentElement.className = document.documentElement.className.replace(‘no-js’,'js’);
</script>

Con esto si el navegador … Read More »


5 segundos

9th marzo

Desempolvando los proyectos personales con la finalidad de concluirlos, encontré en mi respaldo del respaldo varios libros interesantes acerca de usabilidad, experiencia de usuario, composición y todo lo que tiene que ver con la web.

Uno de mis favoritos se llama  Tienes cinco segundos*, un libro que nos muestra en aspectos generales en que consiste la usabilidad en web, desde el desarrollo de contenido multimedia, redacción de los textos para web, la experiencia de la entrega de la información para el usuario y la implementación de un modelo para el desarrollo y  gestión de contenidos llamado “Modelo Margarita”.

Este modelo no es más que una técnica para tener una organización indispensable en el proceso de creación de un sitio, desde el inicio y definición de éste hasta el instante en el que es lanzado a los usuarios. El modelo, se nutre … Read More »



Ajustes finales

8th marzo

El primer boceto de un proyecto y el producto final en manos del cliente nunca es el mismo. Esta afirmación conlleva un dilema:

Por una parte, siempre podemos toparnos durante el desarrollo del proyecto con un refinamiento importante que, aunque no estaba contemplado al inicio, lo complementa de tal manera que es imposible ahora conceptualizarlo sin él.

La contraparte de esta espada de dos filos es el cliente que, siempre insatisfecho, continua pidiendo ajustes y más ajustes, aún cuando las definiciones originales del proyecto ya han sido satisfechas.

Una tarea primordial entonces, a la hora de desarrollar un proyecto, consiste en saber donde se encuentra el límite y sobretodo, no tener miedo a la hora de utilizar dicho conocimiento.

La mejor manera de minimizar el problema de un proyecto que se eterniza es tener un sistema de pruebas y control de calidad interno. Nuestro sistema … Read More »


Aquí estoy Mr. Gugul

8th marzo

Imaginemos que abrimos un sitio nuevo en un nicho de mercado muy competido, por ejemplo venta de zapatos.

Encontrar palabras clave eficientes no es tarea fácil, requiere mucho tiempo no sólo para investigar cuáles pueden ser las mejores para nuestro sitio sino también períodos de prueba y error.

Entre otros factores como la cantidad y calidad de contenido, el uso de palabras claves dentro y fuera de código fuente, uno con bastante peso para posicionamiento es el backlinking.

Google ha evolucionado mucho a través de los años, todos lo hemos visto, en esta empresa se invierten cantidades grandísimas de dinero sólo para hacer el buscador de Google más “inteligente”, que intuya contenidos y relaciones entre sitios como si fuera humano.

La analogía con los humanos entonces se pone interesante.

¿Por qué? se preguntarán, trataré de ilustrar el asunto en tres actos con relación al backlinking.

Primer … Read More »


keep learning vo!

5th marzo

Vincoorbis es una empresa “pro” capacitación, esto pude percibirlo desde el momento en que me uní a su fuerza de trabajo, pues recibí un gran apoyo de mis compañeros y jefes, incluso cuando sugerí tomar un curso de fines de semana, la empresa me otorgó todas las facilidades para completarlo.

Actualmente estoy en otra capacitación para montar sitios web en wordpress, debo decir que han fomentado en gran medida mi interés por mantenerme actualizada, e incluso por el ejercicio autodidacta,  ya que en este medio la información se actualiza muy rápido haciendo que los viejos métodos pronto sean obsoletos.

Muchas personas que terminan -o no- la carrera, dan por sentado que los conocimientos aprendidos en un espacio de tiempo de 3 o 4 años son suficientes para competir con los millones de programadores, desarrolladores, diseñadores etc, que hay en el mundo, … Read More »



Impresiones con GRAILS.

5th marzo

Hace algunos meses he estado trabajando con el IDE SpringSource Tool Suite, para colaborar en un par de proyectos (http://clubpremier.com y https://subastas.clubpremier.com/)  y la verdad es que la experiencia está siendo muy positiva para el desarrollo de aplicaciones con Grails.

Las principales ventajas que he experimentado con Grails son:

Seguir el modelo MVC es intuitivo.
No es necesario configurar archivos xml.
La curva de aprendizaje es corta a diferencia de Java.
El resultado se puede empaquetar en un war y desplegar en cualquier servidor Java.
Permite utilizar librerías Java.

Desventajas desarrollador Java

Un desarrollador Java con experiencia, puede realizar desarrollos muy productivos en Java, y hay que reconocer que la curva de aprendizaje Java en entornos empresariales es bastante larga, no sólo por el lenguaje Java en sí, que es similar a cualquier lenguaje orientado a objetos, sino porque para poder llevar a cabo desarrollos en entornos JEE es necesario conocer … Read More »


Vagrant: una herramienta de virtualización de ambientes de desarrollo

2nd marzo

Al desarrollar para web usamos varios lenguajes o varias librerías, o hacemos configuraciones especializadas, todo en nuestra máquina sobre un sistema operativo diferente al del servidor. Cuando queremos pasar a producción, tenemos que replicar esa configuración intrincada en un sistema operativo diferente, que seguramente administramos de manera remota.

Cuando llevas varios proyectos al mismo tiempo, el problema no sólo se multiplica; crece exponencialmente porque con frecuencia las versiones de librerías, programas instalados o incluso configuraciones globales tienen conflictos entre sí.

Sería útil desarrollar sobre una plataforma idéntica al servidor de producción. Así sabríamos que nuestras configuraciones e instalaciones funcionarán en el sitio web final y en general, durante el desarrollo, sólo tendremos que resolver los problemas y las particularidades de un sistema operativo y una configuración en particular.

Sin embargo, cada quién tiene su sistema operativo y configuración particular sobre la que … Read More »



“Es tu cache”..

2nd marzo

Cuando desarrollas un sitio web que requiere constantes cambios uno de los problemas comunes que se encuentran es el cache.
El cache es una memoria que el navegador reserva para elementos que se cargan constantemente en un sitio, el navegador los reserva para ahorrarse la recarga de estos elementos y agilizar la carga del sitio web.

Para no tener problemas con el cache en el desarrollo de nuestros sitios les doy el siguiente tip en Chrome:

Click derecho en la página y dan click en la opcion Inspeccionar este elemento
En la ventana que aparece dar click en el engrane que esta en la parte inferior derecha.

Seleccionar la opción deshabilitar cache.

Listo ahora no hay de que preocuparse.


Mi proyecto terminal de la universidad

1st marzo

Actualmente me encuentro cursando el onceavo trimestre (de doce “oficiales”, aunque la mayoría de estudiantes termina muchos trimestres después) de la carrera de Ingeniería en Computación en la Universidad Autónoma Metropolitana. Estoy llevando solo una materia y la realización de mi proyecto terminal.

Durante los primeros trimestres de la carrera, nunca tuve una idea clara sobre lo que quería hacer como proyecto terminal. Lo que se me ocurrió (en conjunto con otros dos compañeros de la universidad), ya avanzado en trimestres, fue hacer un juez en línea. Un juez en línea en resumidas cuentas, compila, ejecuta y evalúa un programa de un usuario dado un problema especifico. Estos jueces verifican, por ejemplo, el tiempo de ejecución y la memoria usada por un programa, entre otras cosas.

La idea de realizar este proyecto se dio por el gusto … Read More »


Vista personalizada de edición de una celda en iOS

29th febrero

Si has programado con tablas usando la clase UITableView en iOS sabrás que estas tienen la opción de editar un registro deslizando tu dedo en el registro que deseas editar, sin embargo si deseamos tener más opciones para editar una vista personalizada no podríamos hacerlo de esta forma, por lo que ahora veremos como implementar esta funcionalidad y tener las opciones deseemos al momento de editar un registro.

Bloquear la funcionalidad estándar de edición de celda:

Por defecto el método canEditRowAtIndexPath habilita la funcionalidad que permite editar la celda al momento de deslizar el dedo hacia la izquierda. Como no queremos que esta función sea activada debemos establecer que esta función devuelva NO.

-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return NO;
}

Crear la vista personalizada como subclase de UIView:

Es este paso podemos hacer la vista con las opciones que deseemos … Read More »


La política de “estar en el cono”

24th febrero

Constantemente estamos buscando incorporar acciones o procesos que mejoren nuestro modo de trabajar.  No sólo buscamos volvernos más eficientes sino también trabajar más cómodos, procurar espacios de aprendizaje y convivencia o mantenernos actualizados.

Hay una política específica en la empresa que quiero compartir aquí porque ha tenido resultados muy interesantes. La llamamos “estar en cono” y básicamente se trata de tener una señal  que todo el equipo conoce y respeta, de que requieres un periodo de concentración sin interrupciones externas.

El origen de la política surgió de dos cosas que vivíamos, una muy positiva y una que claramente podíamos mejorar. La primera es una cuestión de espacio. El equipo de diseño y de desarrollo comparte espacios abiertos y tenemos ventajas y desventajas derivadas de ello. Como ventaja está que el equipo se comunica y pueden hacer consultas y recomendaciones de solución cuando … Read More »


Cosas que aprendo de nuestros clientes: GDU

23rd febrero

Hace unas semanas nos invitó GDU (Grupo de Diseño Urbano) a su retiro de inicio de año.  Fue en el Club de Golf Malinalco. Es una zona residencial y, obviamente, campo y club de golf. En el desarrollo participó GDU hace 19 años. Específicamente, realizaron el subproyecto de arquitectura de paisaje. El resto del proyecto lo llevaron a cabo otros despachos nacionales e internacionales de administración y arquitectura.

Como parte del retiro, los acompañamos en una caminata guiada por el Club para que nos platicaran del proyecto.

Es impresionante lo que aprendes cuando quienes hicieron el proyecto te dan el tour. Y claro, muchas lecciones no son exclusivas para arquitectos. Nos sirven a todos aquellos que hacemos proyectos:

Convierte todo lo que encuentres en oro

El campo se construyó en un terreno muy rocoso. Al escavar para hacer lagos artificiales y crear relieves para el … Read More »



Cyber Worms 1 de ??

23rd febrero

Como todo CSO, sysadmin (ocioso niño con un servidor web xP) nos hemos tenido que enfrentar a gusanos cybernéticos, los cuales no solo pueden hacernos pasar ratos amargos buscando ese respaldo que realizamos en un DVD (orando al cielo que realmente lo hayamos realizado y esté a salvo).

Pero por desgracia muchas veces por falta de tiempo, espacio o ganas no realizamos.

Este será el primer artículo de muchos, espero, donde nos enfrentaremos a estos bichitos, donde aprenderemos su funcionamiento, objetivos, prevenciones y desinfecciones de los mismos.

En diferentes ocasiones he tenido que enfrentarme a ellos, la última ocasión fue un verdadero dolor de cabeza y pérdida de tiempo, ya que este cariñoso bichito dejó amiguitos en gran parte de las páginas alojadas en un servidor dedicado, el cual alojaba 6 dominios (gracias a dios no ofreciamos hosting a otras empresas), los amiguitos … Read More »



777 el nuevo 666

22nd febrero

777 hoy día significa tener la puerta abierta a todo el mundo, esa no es una práctica segura, los permisos de los archivos en un entorno Linux / Unix son una herramienta poderosa que en la mayoría de los casos es dejada atrás por el famoso 777

Cada uno de esos números tiene una función para dar o denegar permisos en base a lo siguiente

Permisos de usuario Permisos de Grupo Permiso a otros

7 7 7

Dentro de cada tipo de permiso en función de los bit’s … Read More »


La amabilidad y los clientes

21st febrero

Dentro de mi experiencia laboral, tanto independiente como profesional, siempre le he rendido cuentas a un cliente; desde que era adolescente y trabajaba en una tienda de vinos y abarrotes, hacía ilustraciones para conocidos o hasta trabajos muy laboriosos como freelance para eventos, negocios, también fotografías o videos. Esto ha hecho crecer mi necesidad de satisfacción, de hacer las cosas cada vez con mayor precisión, de obtener ganancias económicas y sobretodo, emocionales.

Cuando ves que a alguien le agrada tu trabajo, se asombra con lo que puedes crear  y sonríe al ver los resultados, la satisfacción personal es enorme y es muchísimo más, cuando son decenas, cientos o tal vez miles de personas las que indirectamente aprecian y se admiran por tus resultados. Siempre se debe ser amable, nunca debemos olvidar que hay que tratar a las personas como quisiéramos que nos trataran, se debe aprovechar todo … Read More »


La participación de tu empresa en época electoral

17th febrero

La época electoral en el país es el mejor momento para los políticos en el que pueden prometer y convencer a los empresarios mexicanos de tomar partido por alguna tendencia electoral. La promesa de reducción de impuestos, de beneficios fiscales o de apoyos a la generación de empleo y la creación de incentivos para las empresas es uno de los bastiones principales de todas las campañas políticas.

Sin embargo, cada día la participación de la pequeña y mediana empresa en los asuntos políticos del país van más allá de su utilización como promesa de campaña, la época electoral es la mina de oro de los publicistas, los impresores, y todos los microempresarios que durante ella se benefician con la compra de materia prima, impresiones de propaganda, confección de prendas, creación de campañas puclitarias, sitios web, campañas en redes sociales, renta de equipo de video, … Read More »



Optimización de sitios Web – Parte 1

17th febrero

Cuando maquetamos un sitio web es muy importante considerar el tiempo de carga, respuesta del sitio y el tiempo que le cuesta renderizar nuestro HTML al navegador, algunos de los puntos que debemos considerar son los siguientes:

HTTP Request

Cada que enlazamos un recurso a nuestro sitio web ya sea una imagen, una hoja de estilo, un script, etc. El navegador hace una petición al servidor y este le responde con el recurso solicitado. Cada petición es una conexión al servidor, ahora si por ejemplo nuestro sitio tiene en total 20 recursos enlazados, son 20 conexiones y si multiplicamos estas conexiones por el número de visitas que tenemos por segundo podríamos tener un número muy grande de conexiones/segundo y con esto llegaremos a saturar nuestro servidor con peticiones.

Para evitar saturar el servidor con peticiones se recomienda juntar todas las hojas de … Read More »


Processing

16th febrero

Desde hace algunas décadas a la actualidad, los medios electrónicos así como las tecnologías se han incrementado de manera considerable a nivel mundial, y la sociedad se ha ido adaptando a este cambio de diversas formas, como lo ha sido el arte que ha tomado una nueva forma de expresión por medio de ordenadores, ciencia y tecnología tomando el nombre de arte electrónico. De esta manera hemos sido partícipes de la evolución tecnológica y el nuevo contexto social en el que vivimos.

Una nueva forma de creación de ideas para los medios electrónicos se encuentra a disponibilidad de cualquiera. Un software que maneja un lenguaje de programación open source, especializado en crear animaciones, imágenes e interacciones. Conocido como Processing te permite explorar el vasto mundo de los medios electrónicos, siendo un lenguaje basado en Java y con el poder que le … Read More »


Equipo Multidisciplinario

15th febrero

Los equipos de trabajo se benefician de la multidisciplinariedad. Donde un programador es capaz de “ver” el código que se necesita para que se concretize una funcionalidad y el diseñador sabe como hacerla resaltar de acuerdo con su importancia dentro del sistema, es posible que ninguno de ellos se parezca en lo más mínimo al usuario final del sistema.

Es por eso que en Vinco Orbis nos esforzamos por comprender de la manera más completa las necesidades de un cliente antes de empezar un proyecto. Nuestro equipo está conformado por programadores expertos en Php, Java, Python; contamos con varios maquetadores que se encargan de llevar nuestros diseños a la red con amplios conocimientos de HTML, CSS, Javascript; tenemos personal dedicado a la administración de servidores y seguridad informática; nuestro personal de diseño tiene amplia experiencia en ilustración, diseño de imagen corporativa … Read More »


SEO: White Hat / Black Hat

13th febrero

La labor SEO (Search Engine Optimization) consiste en aplicar un número de técnicas dentro y fuera del sitio web con la finalidad de incrementar su visibilidad orgánica en los resultados de buscadores como Google, Yahoo! y Bing sin tener que pagar dinero para posicionarlo, es decir, ayudar a que el sitio aparezca en los mejores resultados por la relevancia de su contenido, productos y/o servicios con los términos de búsqueda de los usuarios.

- El bien y el mal desde el Big Bang.

Todo en la vida tiene su lado oscuro, las galletas Oreo, los jedis y hasta la madre Teresa de Calcuta en algún momento de su vida quiso por lo menos lanzarle un zapatazo al gato que no dejaba de maullar a las tres de la madrugada.

Lo hemos visto en todas partes, en las películas del Viejo Oeste, el … Read More »


Soy diseñador

13th febrero

Muchas veces los diseñadores nos topamos con un gran muro a la hora de practicar y ejercer nuestro trabajo, la concepción que las personas tienen de nosotros es la mayoría de las veces esta:

“¡Ah! eres diseñador, dibujas bonito”¹

Lamentablemente existen muchos diseñadores a los que no les preocupa el trasfondo de un diseño o que simplemente fueron formados para cuidar la forma, lo visible, que sea estético, lo reducen a un medio meramente expresivo. Gracias a ellos es que esta errónea visión del diseño se ha diseminado.

Si bien es cierto que el diseño requiere cierta apreciación estética eso no lo es todo, normalmente la forma sigue a la función.²
Esto significa que un diseño debe pensarse como una solución a un problema específico (si necesitas una resbaladilla, no la vas a hacer con picos porque se vería mejor).

El proceso es variado dependiendo … Read More »



Suplantar a un usuario usando el Plugin Spring Security.

10th febrero

Hoy en día, la mayoría de las aplicaciones requieren un control de acceso a la información dependiendo del rol al que pertenezca cada usuario, uno de estos roles suele ser el de administrador o supervisor, que cuenta con un acceso sin restricciones al sistema. Sin embargo puede darse el caso de que el supervisor requiere hacerse pasar por otros usuarios para fines de consulta de información sin la necesidad de conocer sus credenciales.

En Grails, mediante el uso del plugin Spring Security Core es posible realizar esto de manera sencilla.

Una vez instalando el plugin en los archivos de configuración se añade lo siguiente:

grails.plugins.springsecurity.useSwitchUserFilter = true

useSwitchUserFilter es el filtro que permite la suplantación de usuarios.

Deben elegirse los roles que tendrán la posibilidad de suplantar a otros. (‘ROLE_SWITCH_USER’).

Para hacer el cambio de usuario, se debe añadir un formulario similar a este:

<sec:ifAllGranted roles=’ROLE_SWITCH_USER’>
<form action=’/j_spring_security_switch_user’ method=’POST’>
Read More »


Encontrar bugs usando git bisect

9th febrero

Hace unos días tuve que hacer un cambio importante que requirió varias alteraciones al sistema en el que estoy trabajando. Uso git como sistema de control de versiones, así que abrí una rama específica para ello, completé la tarea en una larga serie de commits y finalmente corrí mis pruebas automáticas. No pasaron.

El problema

Había un bug complejo y, como todos los bugs, inesperado. Claramente había sido introducido por el “gran cambio” (las pruebas automáticas en la rama principal pasaban sin problemas), pero el cambio se había dado en una serie larga y compleja de alteraciones a varios puntos del sistema. Si hubiera hecho pruebas automáticas en cada paso me hubiera dado cuenta, pero ahora la tarea se complicaba.

¿Acaso hay alguna manera sencilla y práctica de regresar a ver cada cambio y descubrir cuál causó el error?

En git la … Read More »


jQuerify bookmarklet

9th febrero

En algunas ocasiones es necesario tener acceso a la funcionalidad que jQuery nos proporciona en sitios en que no está disponible. Por ejemplo, si queremos diagnosticar un error, realizar cambios en el DOM o simplemente jugar con la página. En estos casos, un bookmarklet que incluye automáticamente jQuery en la página visualizada nos puede salvar la vida.

En la siguiente dirección podemos encontrar esta herramienta, proporcionada por learningjquery.com :

http://goo.gl/RZDzC

Sólo hay que arrastrar el link a la barra de bookmarks o de favoritos, y una vez que necesitemos jQuery damos click al mismo y nos despliega una notificación indicando si se ha cargado correctamente, que versión se cargó o si ya estaba disponible en la página.


Bootstrap: Bueno, bonito y libre.

8th febrero

Yo se que les ha pasado. Necesitan entregar los avances de un proyecto, o es más, el proyecto terminado pero no tienen un diseño para poder finalizarlo. Una solución buena, rápida y bonita es Bootstrap, de la gente que esta detrás de twitter. Bootstrap es un conjunto de herramientas (HTML + CSS + jQuery) para facilitar y apoyar en el desarrollo de aplicaciones web.

Algunas características padres de Bootstrap son:

Es compatible con los navegadores más populares (si, Internet Explorer 7), incluyendo tablets y smartphones
Completamente responsivo
Tiene soporte de HTML5 y CSS3
Es código abierto
No es pesado

Para nuestro framework favorito de desarrollo, existen plugins que reemplazan el scaffolding por default. Aquí pueden ver un ejemplo rápido de Grails + Bootstrap.


Notificaciones en Android

7th febrero

Las notificaciones son una parte importante en las aplicaciones, pues estas le pueden garantizar al usuario que algo ha cambiado o está cambiando de estado en la aplicación, Android cuenta con la clase Toast que permite mostrar notificaciones sencillas que serán visibles solo por algunos segundos y desaparecerán sin necesidad de la interacción del usuario.

Realizar una notificación con Toast es muy sencillo , solo necesitamos seguir los siguientes pasos.

Crear el objeto Toast
Posicionar el mensaje en pantalla (opcional)
Mostrar el mensaje

Crear el objecto Toast

La clase Toast tiene el método de clase makeText() que construye un objeto Toast a partir de los siguientes parámetros:

El contexto de la actividad.
El mensaje que desea mostrarse.
La duración del mensaje. Este parámetro puede tomar los valores LENGTH_LONG o LENGTH_SHORT, dependiendo de la duración que deseemos tenga el mensaje.

Así por ejemplo si deseamos crear una notificación con el mensaje … Read More »


Trabajando desde casa.

7th febrero

Trabajar desde casa puede ser una actividad mutuamente benéfica, tanto para la empresa como para uno mismo. Uno puede ahorrarse el tráfico citadino, el costo del transporte y ganar tiempo para estar con la familia. La empresa ahorra en electricidad, en equipo y en mantener un lugar más dentro de sus instalaciones.

Pero trabajar en casa también exige tal vez más compromiso que una labor normal de oficina. Sobre todo por estar rodeado del ambiente más cómodo que existe, tu propio hogar.

Trabajar en casa necesita:

Un fuerte compromiso: El que no esté el jefe viendo sobre tu hombro cada cinco minutos no quiere decir que no te comprometas a sacar el trabajo. Al contrario, aprovecha que no existen ese tipo de distracciones.
Comunicación: Cuando uno trabaja en la oficina, ciertamente es muy fácil levantar la cabeza y preguntar en caso de existir alguna duda sobre … Read More »


Los clientes son amigos, no comida

3rd febrero

Un cliente es más que su dinero, es más que el proyecto que desarrolla con nosotros, es parte del gran ecosistema de empresas que existen en este país. Nuestra filosofía de trabajo nos permite percibir al cliente como lo que en realidad es: una organización que requiere ser auxiliada en la resolución de una problemática para poder brindar un servicio que mejora la calidad de vida de cientos, miles o incluso de millones de personas. De esta forma, VincoOrbis se percibe a sí misma como una empresa cuyo rango de acción no se reduce a las personas que utilizarán los sistemas o sitios web que desarrollamos, sino que es capaz de intervenir de una forma positiva en el diario acontecer de la sociedad mexicana.

Es muy fácil satanizar al cliente y verlo como el malo de la película. Lo verdaderamente difícil … Read More »


Creación de documentos Word con php

3rd febrero

En ocasiones los sistemas informáticos necesitan crear algun tipo de documentos basados en la información que se maneja en el sistema. Y aunque el navegador siempre tiene la opción de imprimir lo que mostramos en pantalla, aquí propongo una solución elegante y que permite a los usuarios llenar una plantilla en el navegador y poder exportarla a un documento en formato word que resultará más practico y familiar para los usuarios.

La plantilla en word

Primero necesitamos crear una plantilla en formato word, para este ejemplo usaré el formato de una carta de recomendación donde los recuadros amarillos son los que serán, rellenados con ayuda de php.

Al asignar las etiquetas al documento, es importante que las estas sean únicas en el documento y que estas no sean sub palabras de otra etiqueta ó palabra del documento, esto es importante dado que el … Read More »


Validación de HTML5 con meta tags de Facebook

31st enero

Uno de los problemas de la obsesión con la validación de html es que muchas veces tomamos algunos “warnings” del resultado de nuestra validación como problemas de vida  o muerte y no nos detenemos hasta corregir lo necesario para eliminar las advertencias.

La verdad es que llevamos la preocupación al extremo y a veces nuestra vanidad gana, olvidamos que el verdadero objetivo de la validación es indicarnos los errores o las advertencias que puedan afectar la funcionalidad del sitio y darnos una pista para ayudarnos a corregirlo, sin embargo, no siempre estamos en un error.

Uno de los ejemplos más claros de problemas que en realidad no lo son, son las meta etiquetas de Facebook en nuestras páginas con html5, desde que decides incluirlas en tus sitios, sabes que algo no va a salir bien:

<meta property=”og:type” content=”website” />

El validador … Read More »


Generar un archivo WAR de Grails mucho más pequeño.

27th enero

Cuando generamos un archivo WAR de una aplicación Grails nos damos cuenta de que este puede ser muy grande. Si estamos utilizando Grails 2.0, por ejemplo, el archivo generado con los plugins instalados por defecto pesa más de 30MB, lo cual no es un problema real de almacenaje con los estándares actuales, pero si lo es a la hora de subirlo vía ftp a un servidor productivo, por ejemplo.

Hacer “deploys manuales” en ambientes productivos no es lo más recomendado,  para desplegar aplicaciones en ambientes productivos lo mejor es hacerlo a través de algún software que te permita hacer Integraciones Continuas, Bamboo y CloudBees son buenos ejemplos, sin embargo, no es objeto de este post ahondar en este tema.

En el caso más común, normalmente generamos un archivo WAR con nuestra aplicación y lo … Read More »


Las 7 maravillas de trabajar con un equipo sumamente talentoso

25th enero

En una empresa eres tan fuerte como la suma de tu equipo.

En Vinco Orbis tenemos la gran fortuna de tener un equipo conformado con gente sumamente talentosa y debo decir que es una de las satisfacciones laborales más grandes que he tenido la oportunidad de vivir.

Claro que existen retos asociados a tener un gran equipo. Como líder de grupo te obliga a mantenerte constantemente alerta de varias cosas, por ejemplo, tienes que estar pendiente de no crear una muerte de la creatividad por aburrimiento ni dejar pasar que por tener talento y que las cosas salgan fácil esto provoque un freno a su crecimiento.

Basado en mi experiencia personal de los últimos dos años, estas son las 7 maravillas de trabajar con un equipo así:

1. Ideas. Grandes ideas.  

De la definición del proyecto original a la versión final entregada hay muchos … Read More »




desde el blog

Todos los días algún miembro del equipo escribe sobre todo aquello en lo que trabajamos, nuestras inquietudes, nuestros descubrimientos o nuestros gritos de ayuda. Te invitamos a leer el diario de los "vincoorbianos".

El diablo está en los detalles

La complejidad de la realidad es innegable, la cantidad de estímulos disponibles al ser, innumerables.

De hecho, el cerebro humano es un filtro negativo que...

Crear un archivo CSV con groovy

Para este ejemplo, supongamos que tenemos un Array de Arrays como datos.

def animales = , , [id:'3',color:'amarillo',animal:'Canario',descripcion:'El canario es...
¿Usas EGit y tienes problemas? Prueba con Git Bash

Ayer me encontraba con Francisco pulleando cambios a su repositorio local, cuando de pronto apareció un wild EGit que no nos lo permitió.

¿Y por...