3Metas Blog
Por
Paula Fernanda Cadena
Usando teclado qwerty en usuarios que no lo entienden
En 3metas estamos automatizando el sistema de post cosecha de una de las empresas floriculturas más grandes del país. Nuestro mayor reto ha sido crear un sistema que permita facilitar la transición del papel a un software a la medida que resulte fácil de usar para unos usuarios muy particulares: los empacadores de ramos. Usuarios cuyo contacto más cercano con la tecnología son sus celulares, usados casi estrictamente para recibir y hacer llamadas.
Hoy tenemos un inconveniente con ellos que afecta una parte del proceso. El caso es el siguiente: hay necesidad de leer un serial para lo cual cada usuario cuenta con un lector de seriales (como el de los supermercados) que le ayuda a ingresar los datos del producto. Estos seriales, como también ocurre en los supermercados, muchas veces no alcanzan a ser leídos por las máquinas y hay que ingresarlos manualmente.
Allí radica nuestro problema, pues el sistema está compuesto por dispositivos móviles (PDA) que no cuentan con un teclado. Ergo, todo es touch screen y los teclados están incluidos, en digital, dentro del programa. Pensando en esto usamos el teclado alfanumérico, tipo qwerty que ven a continuación. Sin embargo en la práctica hemos notado una dificultad en los usuarios para encontrar las letras pues en su imaginario “están en desorden”. Nuestra primera conclusión es que los números junto con las letras generan ruido y esto hace que sea más difícil encontrar lo que se busca.
Por ellos pensamos usar un teclado qwerty normal como el del Iphone, pero esta solución no es viable porque todos los seriales están compuestos por números y letras, así que toma mucho tiempo cambiar repetidamente de teclado, uno para números y otro para letras. Hemos pensado dejar el teclado como está hoy y organizar las letras alfabéticamente, pero tenemos dudas de generar recordación de un teclado que sólo se usa para esto o crear más confusión a largo plazo cuando los usuarios tengan contacto con un computador y por ende con un teclado qwerty.
Sabemos que la situción tiene varios limitantes, pero creemos que reparar en estos detalles nos alimenta. Cuéntenos qué se les ocurre, qué soluciones le verían esto.
Por
Juan Carlos Peláez
Las nuevas compañías
De las mejores profesiones en el 2009 más de la mitad no existían hace 50 años. Esto ha obligado al sector educativo a adaptarse rápidamente a las nuevas necesidades, tecnologías y áreas de estudio pensadas para nuevos profesionales que en teoría responden a necesidades de la industria. Sin embargo, es curioso que muchas de las compañías que contratan a estos nuevos profesionales han sido construidas sobre paradigmas de gestión antiguos en términos de la velocidad de este cambio educativo.
Parece casi obvio que para poder desarrollar al máximo las capacidades de estos profesionales son imprescindibles nuevos modelos de compañías. Unas que estén dispuestos a realizar el cambio generacional en modelos de gestión, operación, ventas y aspectos que se consideran sagrados en la actualidad. No creo que sea posible construir la compañía del futuro siguiendo los mismos modelos que usaron mis padres o abuelos para construir sus empresas.
En las nuevas compañías deberán integrarse disciplinas y mercados que antes se consideraban divergentes, en la misma forma que la electrónica y la biología se fusionaron en disciplinas como la biomedicina, o por ejemplo, empresas de tecnología incursionando en publicidad (de esta clase de unión yo tengo una opinión particular).
Estas nuevas compañías deberán integrar en su ADN conceptos que están presentes hoy en la vida de los individuos: la preocupación por el cambio climático, la necesidad de una mayor igualdad en los modelos económicos, la búsqueda de la felicidad y la realización personal. Son empresas que buscarán realizar aportes sociales importantes y trabajarán en áreas que antes se consideraban incompatibles. Yo creo que 3Metas es una de esas nuevas compañías.
Photo by: Zephyrance Lou
Por
Gustavo Hurtado
Entender el negocio del cliente
He tenido la oportunidad de trabajar para algunas compañías de software en proyectos de diferente naturaleza. De cada uno he adquirido conocimientos que de no ser por esta profesión no las hubiera aprendido nunca. Al principio, debo reconocer que sólo me preocupaba hacer mi trabajo sin deparar en detalles. Quizás por mi falta de experiencia, porque eran muy complicados de entender o porque el negocio en general no era de mi total agrado y eso disminuía mi interés.
Hoy me doy cuenta que esto fue un gran error que no me permitió avanzar al ritmo que quería y al empezar una compañía en este mismo sector tuve que aprenderlo todo ya en el campo de batalla. De ahí que nuestra premisa en 3Metas desde el primer día ha sido entender el negocio del cliente a tal nivel de detalle que eso apalanque el éxito del mismo.
Esto no sólo es una ganancia para la compañía, por la oportunidad de que sus empleados aprendan cosas diferentes a las de su oficio, sino también para el cliente que puede contar con un equipo más involucrado con su negocio. Desde mi experiencia estos son algunos de los beneficios a resaltar una vez se logra esta habilidad.
- Mayor participación en las decisiones cruciales para el proyecto.
- Más alternativas en el momento de solución de los problemas.
- Mayor entendimiento de los requerimientos de los usuarios.
- Mejor relación con los usuarios que tienen la información.
- Mejor relación con los implicados en el proyecto, tanto los usuarios finales como aquellos que toman las decisiones que afectan el proyecto.
- Una oportunidad para seguir trabajando con el cliente o aplicar en proyectos similares.
- Fortalecimiento del trabajo en equipo y un mejor seguimiento del proyecto.
- Avances significativos y menor número de retrocesos en las entregas parciales.
- Una ficha que jugarse en los momentos difíciles o de crisis del proyecto.
Es posible que se me escapen más aspectos, sin embargo mi intención es motivar a que las empresas se preocupen por apropiarse del negocio del cliente. Esto implicará dedicar más tiempo, mejorar el proceso de reclutamiento, involucrar al cliente más en el proyecto y estar consientes que esa actitud puede marcar la diferencia para triunfar como empresa, para abrirse mercado y para ser reconocidos como unos verdaderos expertos.
Por
Juan Carlos Peláez
IIS7 más WCF con otros Bindings
En IIS7 se pueden usar otros bindings como por ejemplo net.tcp y named.pipes para acceder a servicios de WCF (en IIS6 sólo es posible usar http Binding, para usar uno de los otros se debe hostear el servicio en otro tipo de host como un servicio Windows o una aplicación de consola) y justo esto es una de las ventajas de IIS7, se utiliza todo lo bueno del mundo del IIS como el reciclaje de aplicaciones pero con protocolos muchos mejores para ciertos escenarios como net.tcp.
Para habilitar estos protocolos en IIS7 debe ir al panel de control, programs, turn Windows Features On/Off y verificar que tenga seleccionadas por lo menos las opciones que aparecen en la imagen, en especial lo que tiene que ver con la activación de servicios sobre protocolos no HTTP.
Con esta habilitado ya se puede ir al IIS y seleccionar los bindings y protocolos correctos como se muestra en las dos imágenes siguientes:
![]()
Ahora puede Hospedar servicios de WCF con bindings como net.tcp que se usa para escenarios de red de área local o named.pipes que se usa para comunicaciones interprocesos en la misma máquina.
Por
Gustavo Hurtado
Error: Sys.WebForms PageRequestManager TimeoutException
Esta semana realizando la migración de código de un sitio web en un cliente, en el cual dentro de los múltiples cambios modificamos la interfaz gráfica de la aplicación para que utilizara Ajax e integramos además un Master Page en el diseño. Esto no debería afectar la funcionalidad, pero en especial una de las páginas empezó a presentar un problema, el cual se presentaba cuando se enviaba a realizar una operación que tarda más de 2 minutos contra la base de datos.
El error era del tipo: Sys.WebForms.PageRequestManagerTimeoutException, y por ser un error de Ajax se presentaba en el cargue de la pagina para su respectiva actualización luego de la ejecución del evento. Para resolver entonces este problema se debe incrementar el timeout para la página, y para esto se debe adicionar la propiedad AsyncPostBackTimeout al control ToolkitScriptManager o al control ScriptManager, asignándole un valor en segundos que depende del tiempo necesario para la operación.
<AT:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true" AsyncPostBackTimeout="360000" ScriptMode="Release">
Por
Gustavo Hurtado
Page level locking is disabled
El día de hoy estábamos tratando en hacer el plan de mantenimiento de la base de datos de uno de nuestros clientes con el Maintenance Plan Wizard de SQL Server 2008. Crear el plan a través de esta herramienta es bastante sencillo, pero las pocas ocasiones que lo he utilizado siempre me encuentro con algo en el momento de ejecutar el plan de mantenimiento. Dentro de las opciones del plan de mantenimiento seleccionamos la opción Reorganize Index, el cual cuando se iba a ejecutar nos presentaba un error que decía:
The index “INDEX_NAME” (partition 1) on table “TABLE_NAME” cannot be reorganized because page level locking is disabled.
El cual luego de revisar un poco en internet y la ayuda de SQL Server encontramos que se puede solucionar con la siguiente instrucción SQL:
Alter Index <index name> On <table name> Set (ALLOW_PAGE_LOCKS = ON)
Y bueno es una excelente solución, hasta el momento en que seguimos ejecutando el plan de mantenimiento y el error vuelve a aparecer una y otra vez para diferentes índices, así que decidimos buscar una nueva solución, en la cual gracias al poder de T-SQL y de internet construimos el siguiente query que nos permite realizar un SQL dinámico para cada uno de los índices con el mismo problema:
SET NOCOUNT ON DECLARE @DBName nvarchar(50), @INName nvarchar(50) DECLARE @ODBName nvarchar(50), @OINName nvarchar(50) Declare @execstr nvarchar(200) --PRINT '-------- Index with page level locking disabled --------' DECLARE Index_cursor CURSOR FOR SELECT idx.Name AS InName, sch.Name + '.' + obj.Name AS DBName FROM sys.indexes idx left outer join sys.objects obj ON obj.object_id = idx.Object_id left outer join sys.schemas sch ON obj.schema_id = sch.schema_id WHERE allow_page_locks=0 and obj.type='U' -- Select only allow_page_locks 0 and User Tables OPEN Index_cursor FETCH NEXT FROM Index_cursor INTO @INName, @DBName WHILE @@FETCH_STATUS = 0 BEGIN PRINT @DBName +' ' + @INName --PRINT @INName SET @ODBName = ltrim(rtrim(@DBName)) SET @OINName = ltrim(rtrim(@INName)) SELECT @execstr = 'ALTER INDEX ' + @OINName + ' ON ' + @ODBName + ' SET (ALLOW_PAGE_LOCKS = ON)'; EXEC (@execstr); FETCH NEXT FROM Index_cursor INTO @INName, @DBName END CLOSE Index_cursor DEALLOCATE Index_cursor
Luego de haber solucionado el problema de los índices nos encontramos con que el tamaño del log de eventos de la base de datos era demasiado grande, y excedía el tamaño disponible en la unidad de disco donde se encontraba, así que luego de buscar un poco en internet nos encontramos con este post muy útil para solucionar este problema.
Por
Gustavo Hurtado
Configurando DateTime Formats en SQL Server
Muchos de los problemas que se presentan en el proceso de desarrollo de parte de la base de datos tienes que ver con los formatos de fechas y estos principalmente están dados por el lenguaje de la base de datos o el Collation establecido para esta. Por ejemplo, algunos de los errores comunes es:
La conversión del tipo de datos varchar en datetime produjo un valor fuera de intervalo / The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
1. El servidor de base de datos tiene un lenguaje establecido por defecto, el cual es posible visualizarlo a partir de la ventana de propiedades del servidor o a través de una consulta TSQL:
El comando sería:
SP_CONFIGURE 'default language'
Al ejecutar esta consulta en el resultado en la columna config_value nos muestra el código del lenguaje configurado por defecto en el servidor de la base de datos. Para poder saber ese código a cual lenguaje hace referencia ejecutamos el stored procedure (SP): SP_HELPLANGUAGE el cual nos dará una lista descriptiva de todos los lenguajes soportados.
Ya con esta lista podemos modificar el lenguaje configurado por defecto, el cual afectará a todos los nuevos logins que se creen de ahora en adelante. Para realizar esta modificación basta con ejecutar el SP:
USE master; GO SP_CONFIGURE 'default language', 5 RECONFIGURE; EXEC sp_configure;
Donde 5 sería el identificador para el idioma español. (http://technet.microsoft.com/en-us/library/ms188787.aspx)
Luego de realizar el cambio podemos verificar este a través del procedimiento almacenado antes mencionado SP_CONFIGURE ‘default language’o a través de la ventana de propiedades del servidor de la base de datos. Cabe anotar que esta nueva configuración solo aplicará para los nuevos logins que se creen.
2. Ahora bien es posible modificar el formato Date (http://technet.microsoft.com/en-us/library/ms189491.aspx) para la sesión actual abierta a través del siguiente comando:
SET DATEFORMAT ydm
Es posible verificar los cambios en el lenguaje para la anterior instrucción al ejecutar el siguiente comando:
SELECT SYSDATETIME()
Un ejemplo muy tipico donde se presentan problemas para el formato de las fechas es el siguiente, en el cual dependiendo del formato yyyy/dd/mm la siguiente consulta puede ejecutarse satisfactoriamente:
Select DATEDIFF(Month,'2008/4/6','2008/12/31')
Si la configuración de la sesion actual esta en ingles por ejemplo, esta consulta funcionará pero si está en español nos arrojará un error del tipo:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Con lo cual debemos modificar primero el tipo de lenguaje de la sesión o cambiar la consulta por:
Select DATEDIFF(Month,'2008/6/4','2008/31/12')
3. Si lo que deseamos es modificar el lenguaje la sesión actual abierta ejecutamos el SP:
SET LANGUAGE 'español'
Para poder verificar el cambio podemos realizar alguna de las siguientes consultas SQL:
SET LANGUAGE 'us_english' SELECT CONVERT(DATETIME, '4/6/2006'), DATENAME(weekday, '4/6/2006'), DATENAME(MONTH, '4/6/2006') SET LANGUAGE 'español' SELECT CONVERT(DATETIME, '4/6/2006'), DATENAME(Weekday, '4/6/2006'), DATENAME(MONTH, '4/6/2006')
4. No obstante si lo que deseamos es cambiar el lenguaje de alguno de los login ya creados, con lo cual cada inicio de sesión con esa cuenta se conserve la nueva configuración del lenguaje, vamos hasta la ventana de configuración de los login creados para la base de datos o ejecutamos un comando TSQL:
El comando sería:
EXEC sp_defaultlanguage 'GustavoH-PC\GustavoH', 'español'
El cual por ejemplo para este caso está cambiando el lenguaje del login GustavoH. Con lo cual cada inicio de sesión para esta cuenta de usuario tendrá como lenguaje seleccionado español, así el lenguaje por defecto para el servidor de la base de datos sea otro.
Lo más importante en estos temas de lenguaje es saber a qué nivel queremos aplicarlos, si es a nivel de consulta, base de datos o del servidor de la base de datos, con lo cual se deberá utilizar algunas de las consultas antes definidas o realizar el cambio respectivo a través del administrador de SQL Server.
Por
Juan Carlos Peláez
Usando LiveMesh en ambientes de trabajo
Uno de los paradigmas que 3Metas está tratando de romper tiene que ver con las oficinas físicas. La mayoría de las personas que trabajan con nosotros permanecen en sus casas la mayoría del tiempo. Para poder soportar este tipo de operación y la expansión geográfica que tenemos en mente es necesario establecer herramientas que reemplacen las que estamos acostumbrados a usar en oficinas tradicionales. Una de esas herramientas es Live Mesh.
Con Live Mesh cada una de las personas de nuestro equipo puede tener sincronizados en todo momento los documentos o archivos relacionados con un proyecto o incluso con la compañía. Este es un enfoque diferente al que se le da tradicionalmente a este sistema para permitir la sincronización entre varias maquinas de un mismo usuario. A continuación una guía super rápida de cómo hacer para usar Mesh en escenarios de trabajo.
- Vaya a la página de Mesh y autentíquese con su usuario de Windows Live, Messenger o Hotmail.
- Una vez que se autentique y esté en la ventana de administración de dispositivos haga clic en el ícono de agregar dispositivos e instale la aplicación Mesh en su computadora.


- Terminado el proceso de instalación lóguese desde la aplicación cliente y seleccione la carpeta que desea compartir con su equipo de trabajo.


- Luego puede invitar a otros usuarios a que tengan acceso a estos documentos.

- Cuando los usuarios hagan cambios en los archivos de la carpeta todos recibirán una notificación.
Las carpetas de Mesh ahora aparecen en azul.

El proceso anterior es para la primera persona que comparte un grupo de archivos. Para las personas que hacen parte del grupo de trabajo y que son invitadas por primera vez a usar un recurso compartido en Mesh el proceso es más o menor así:
- Vaya a la página de Mesh y autentíquese con su usuario de Windows Live, Messenger o Hotmail.
- Una vez que se autentique y esté en la ventana de administración de dispositivos haga clic en el ícono de agregar dispositivos e instale la aplicación Mesh en su computadora.
- Terminado el proceso de instalación lóguese desde la aplicación cliente
- Haga clic en el link de la invitación a la carpeta compartida que le llega a su correo.
- Se habrá creado un icono en el escritorio, haga doble clic en este ícono y verifique la ruta en la que quiere almacenar los archivos que se sincronice desde Mesh.
Cada vez que usted o alguien del grupo de trabajo modifique un archivo todos serán actualizados. No existe control de versiones aún y el sistema informa de conflictos por modificaciones simultáneas. Es mejor establecer un poco de orden para evitar problemas, pero en general nos ha resultado una herramienta muy útil.
Por
Juan Carlos Peláez
3Metas Running OnLine Politics
Try to explain what 3Metas do is a little complicated. We have two business divisions: B2C is looking to improve communications between our customers and their customers and MyBusiness which improve internal process and operations; on both cases what we use is the state-of-art technology to help our client to achieve their strategic goals.
But nothing is better than an example, so let’s use client’s site Germán Vargas to show what guys (and girls) from B2C division can do. When we join the German Vargas Lleras running for president 2010 – 2014 campaign we just start our work with something like this:
- Communications Strategy: we identified the messages and channels the campaign were using and the success of them. Our first recommendations included changes on what they were sending to voters, we move from “transicioncolombia” -political party- to “vargaslleras” -the real person- the candidate, of course that wasn’t only on social media, that change included traditional communication channels. Some details we can share: for example we create a strategy to unify the tagging on all the sites related with the candidate, and then we selected communication channels, message tone and frequency.
- Then, we redesign candidate website, now the candidate, ideas and activities become more important and we have a place with all the info unified.
- Social media integration was really important; we integrated the site with YouTube, Flickr, Facebook y Twitter and google calendar.
- A unified image on all the social media was development.
- A unified registry system allows us to record Information from supporters from the web site, social media applications and even third party systems.
- Of course we implemented a CMS, a SEO strategy and improve the CMS security system. Tools for tracking and measure of WOM also were integrated on the site and in the monitoring team.
Right now we are development new ways to share the campaign message. Facebook applications are good examples. So far, the results have been great, the candidate, the campaign, supporters are really happy and last week the site was selected as better politician web site in Colombia in 2009.
Those skills (communication, strategy, software development, design) combinations, the people back stage plus our commitments with the global strategy define us as a digital strategy company. Hope our B2C business division work has got better explain now.
Por
Juan Carlos Peláez
vargaslleras.com, the technical stuff
Es un poco complicado explicar a que nos dedicamos aquí en 3Metas, básicamente tenemos dos divisiones de negocios: B2C que busca mejorar la comunicación de nuestros clientes con sus clientes y MyBusiness que mejora la eficiencia y eficacia de los procesos y operaciones de nuestros clientes, en ambos casos identificando, desarrollando e implementando las mejores soluciones de tecnología disponibles.
Nada como un ejemplo para facilitar la explicación, así que vamos a utilizar el sitio de uno de nuestros clientes Germán Vargas para explicar algunas de las cosas que hacemos en nuestra división de B2C.
- Estrategia de comunicaciones: La primera tarea que desarrollamos para la campaña deVargas Lleras fue la revisión de la forma como se estaba comunicando con sus seguidores. Qué canales se estaban usando, sus mensajes, la medición del éxito de los mismos. Con esta información en mente se planteó un cambio en la orientación de la comunicación para que pasara a una más clara y oportuna identificación del candidato. Todo esto alineado con la estrategia general de comunicaciones de la campana en otros medios. Posteriormente se identificaron los canales de comunicación que debían usarse, el tono y la frecuencia de los mensajes.
- Con la estrategia clara se realizó un rediseño del sitio web del candidato para resaltar su perfil, plan de gobierno y mantener actualizados a los visitantes de las actividades que se vienen desarrollando.
- La integración con redes sociales era muy importante para poder tener actualizada la información de las diferentes redes de forma consolidada, integramos el sitio web del candidato con YouTube, Flickr, Facebook y Twitter. También integramos la aplicación de Google Calendar para construir la agenda del candidato.
- Como parte de la integración en las redes sociales se unificó la imagen del candidato en cada una de estas redes creando personalizaciones de Twitter, Facebook y YouTube que estuvieran alineadas con la imagen del sitio web.
- Un sistema unificado de registro que permitiera a los usuarios desde diferentes sitios y aplicaciones unirse a la campaña también hizo parte de los cambios que se realizaron.
- La utilización de un sistema de administración de contenido (CMS), optimización del sistema para registrarse mejor en buscadores (estrategia SEO) y la inclusión de sistemas de medición de los resultados también hicieron parte de las modificaciones realizadas al sitio original.
En este momento nos encontramos desarrollando nuevas formas de divulgar el mensaje, aplicaciones de mercadeo viral en Facebook. Los resultados de todo este trabajo han sido muy interesantes y tanto el candidato, la campaña y los seguidores están muy satisfechos, el sitio de internet, su facilidad de uso y su integración con herramientas web 2.0 obtuvieron recientemente el premio al mejor sitio web de Colombia en la categoría de política.
Es la combinación de todas estas habilidades y profesionales de diferentes áreas más la intervención en los diferentes aspectos de la búsqueda del objetivo lo que nos lleva a definirnos como una compañía de Estrategia Digital, acompañamos el plan estratégico por medio de tecnología, somos transversales al diseño, desarrollo o comunicación.





