Hace unos días estaba atascado porque no podía lograr validar unos elementos en un formulario que se encontraba desplegado con un dialog box de JQuery. Buscando en la sabia internet encontré la manera sencilla de lograrlo, en síntesis el problema esta en que cuando se carga una vista parcial con Ajax o cualquier otra solicitud XHR el validador no puede hacer nada ya que ha sido cargado por lo tanto estos elementos nuevos necesitan ser validados ya que no estaban cuando se cargo la pagina. Para lograr esto comparto con ustedes un pequeño fragmento de código (el cual debe ser cargado en el partial view):
1: $(function(){
2: $.validator.unobtrusive.parse("#Elemento");
3: });
Espero que les sirva de algo, cualquier cosa me pueden preguntar en los comentarios.
Se que este blog es un poco para geeks, pero creo que esta es una anécdota de algo sucedido que necesito compartir con los lectores latinoamericanos y que se identifiquen con lo que sucede en su sociedad.
Hace días mientras venia de Perú, a mi lado se sentó una señora con un aspecto extravagante. Entre ella y yo había un asiento vacío, yo venia en mi espacio escuchando música a lo que veo que la señora se queda un rato mirándome y me dice: “Do you speak spanish? I have a problem”, yo le contesté: “¿Si, hablo español, en que puedo ayudarle?”. Titubeantemente la señora me cuenta su historia, en la misma me explica que hace 3 días se fue a Trinidad y Tobago, y que llegando a ese país, fue devuelta en el departamento de migración del aeropuerto y siguientemente deportada, siendo este su vuelo de regreso a su país (Republica Dominicana).
Continue reading…
Imagínate que un 29 de diciembre del 1999 te acostaste a tu hora habitual, “al otro día” te levantas de manera normal, enciendes tu computador, y ves que el ordenador marca que son las 9 a.m. del día 6 de noviembre del 2011, de prisa intentas cambiar la fecha del ordenador, y te aparecen cientos de actualizaciones para tu Windows 98 (ya ni recuerdo si es que se actualizaba), y encima de eso varios errores porque tu fecha “está desactualizada”.
Enciendes el televisor y te das cuenta que en el noticiero de fin de semana marcan la fecha como domingo 6 de noviembre del año 2011, ¿pero que está pasando?, simplemente han pasado 11 años y poco de lo que conocías es igual.
Esta breve idea es para que se detengan un tiempo a pensar cuanto han cambiado las cosas y no nos damos cuenta, a continuación expongo 11 cambios que han revolucionado hasta las relaciones interpersonales.
- Buscar trabajo. Antes buscar trabajo era una jornada de semanas, visitando empresa por empresa, o mandando Fax, un momento, fax? si, aquel aparatito que ya casi no se usa y que aun sigue ocupando espacio en las empresas. En la actualidad mi estimado durmiente de la prehistoria, creas un perfil en Linked In, o te das de alta en una pagina de búsqueda de empleos y comienzas a buscar empleos de acuerdo a tu perfil laboral, todo desde tu ordenador.
- Felicitaciones de cumpleaños. No se si se han dado cuenta, antes llevábamos los cumpleaños de nuestros amigos en un calendario ya sea en nuestro celular de pantalla monocromática o en una libreta de apuntes. Ahora tenemos a nuestros amigos en Facebook, Tuenti u otra red social y lo que es mejor, ella nos recuerda que tu amigo hoy cumple años. Tampoco se mandan tarjetitas en flash, mejor escríbele en su muro, lo notará mas rápido.
- Llamar a mi novia en china. Si eras de los afortunados que tenias una novia en china (yo no pero pongo el ejemplo), seguro eras rico o esa relación era extraña ya que los precios por minuto a china en esa época eran una total barbaridad refiriéndonos a precios. Hoy en día existe Skype mi querido amigo, Google Talk, VoIP y un sin fin de servicios que te van a permitir llamarla desde tu ordenador o Smartphone (teléfono inteligente, te explico ahora), sin necesidad de gastarte tanto dinero.
- Conectándome al internet. Ah el sonido que emitía el modem para conectarse a internet era mágico, cada tono que emitía me lo sabia de memoria, podía predecirlo. Las paginas que se navegaban en ese entonces eran mas de correo que de otra cosa, o paginas de chistes. Hoy tenemos el 3G, 4G y todas las G posible que te permitirán navegar a la sorprendente velocidad promedio de 1 – 5Mbps. Ahora la mayoría de las conexiones no solo son distantemente mas rápidas, sino que también no necesitan cables.
- Contenido multimedia. Antes el intercambio de video sucedía porque un amigo te pasaba un video chistoso en un CD o en un disco Zip (Oh esos discos gorditos) y no es que quiera exagerar pero acá no conseguíamos los videos desde la red, digamos que pasaban del boca en boca. Ahora tenemos youtube, vimeo y un sin fin de paginas web que puedes encontrar cualquier tipo de video, y con la palabra “cualquier” me refiero a casi todo. En cuanto a la música, conocía personas que se daban altura diciendo “tengo 2gb de pura música” ahora eso es lo menos que puedo almacenar en “la nube”, y puedo comprarla sin tener que ir personalmente a las estanterías.
- Mi teléfono mi mundo. Antes un teléfono tenia 3 funciones básicas; a) Llamar, b) Recibir mensajes cortos (SMS) y c) Agenda telefónica donde guardabas el nombrecito de tus contactos y su numero y listo. Ahora existen teléfonos que hasta te entienden!, Si, dominando el mercado de los teléfonos inteligentes Apple, Android, Blackberry, Windows Phone y otros, nos muestran cada día que faltan cientos de usos que se les pueden dar a los teléfonos de hoy. Videos, imágenes, música, Redes sociales, Reconocimiento facial y de voz, Aplicaciones y juegos, conexión a internet a alta velocidad, diagnostico de salud, entre otras funcionalidades mas de muchos teléfonos actuales.
- Yo soy un individuo social. Antes lo mas social que había era el Yahoo messenger o el MSN messenger. Hoy, todos tenemos una “reputación” en la web, que viene dada por la cantidad de amigos y el impacto que causamos con nuestras opiniones en ellos. Esto es “lo social de las cosas” y el boom de cientos de redes sociales, donde digo quien soy, como soy, lo que pienso, etc, o simplemente hablo de mi trabajo. Consigo trae el problema de que no tenemos mucha privacidad, pero es porque nosotros mismos no queremos tenerla o porque permitimos que sea violada por nuestros seres cercanos. Antes frente a un catástrofe los medios mas rápidos para comunicarnos eran los teléfonos alámbricos y los medios tradicionales, entiéndase radio y tv. Hoy en día nos enteramos mas rápido de un sismo por twitter que por cualquier otro lugar, nos enteramos mas rápido que Fulanito rompió con Fulanita por facebook que por la vecina, y así sucesivamente una gran gama de cosas que han cambiado la forma en que nos relacionamos con nuestros amigos y familiares.
- Revolución de ideas. Antes si querías crear un impacto con una idea gastabas mucho dinero imprimiendo afiches y colgándolos en cada esquina, eso si, cuidándote de que no te vean los del ayuntamiento. Ahora fácilmente armas un grupo en una red social, cuelgas un video en YouTube o mandas un mensaje multipersona y estas automáticamente creando una revolución, que tendrá su impacto dependiendo el alcance de personas que conozcas. Occupy wallstreet, Anonymous, Libia, Egipto, Grecia, España y otras han sido solo unas cuantas de las revoluciones que hemos vivido por estos días que han sido iniciadas en la red.
- Alta resolución. Ahora todo lo que se vende es HD, HD aquí, Super HD allí, pantallas planas, LED, LCD, OLED, Retina Display, Super AMOLED, tecnología 3D, Hologramas, etc. Yo que sentía en aquel tiempo que las pantallas FLATRON de tubos eran lo máximo, hoy me doy cuenta que no, no eran lo máximo.
- La nube. Si en aquel momento me dicen: todo estará en las nubes, pensaría que harían algo para vivir en las nubes. Ahora todo lo que quieras puede estar en las nubes, incluso hay un sistema operativo que funciona en la nube!!!, si Chrome OS de Google. Y es que mi estimado cavernícola si ya no te queda espacio en tu ordenador o smartphone, ahí tienes muchas nubes para hacerte de ellas. Google Docs, Dropbox, Amazon WS, Windows Live, etc.
- El que busca, encuentra. Antes las búsquedas no eran algo del día a día debido a que nuestro volumen de información era menor. ¿Hoy que haríamos sinceramente sin Google, Bing o en general los motores de búsqueda?, no debemos decir que nada, pero realmente haríamos poco. Y es que desde una dirección puedo encontrar hasta como desarmar un fusil, puedo encontrar personas, hacer búsquedas en tiempo real, buscar una imagen con otra imagen, buscar sonidos, buscar por voz, y buscar y buscar y buscar.
Y es que en definitiva mi estimado amigo, con tantos cambios que hay hoy en día estos 11 puntos son pocos y realmente sentimos que sin muchas de estas cosas somos unos simples elementos prehistóricos. Faltan muchas cosas por mejorarse de las tecnologías que tenemos hoy en día pero a grandes rasgos todo esta en contante evolución hoy en día, incluso cosas que no pensamos que podrían cambiar, como nuestro modo de repuestas a eventos, relaciones interpersonales y hasta la misma ciencia medica.
Espero que te hayas identificado con estos puntos que he escrito y si te animas comenta!
Al fin llega la ultima versión de Ubuntu la 11.10 mejor conocida como Oneiric Ocelot. Esta versión viene cargada con buenas mejoras en cuanto a la usabilidad y experiencia del usuario entre las cuales tenemos:
- Unity ha fortificado su UI y ha enriquecido la experiencia del usuario. Para ser sincero le daría un 8/10.
- Búsquedas, a granel, en casi todas las ventanas tenemos las búsquedas integradas, algo que a mi me parece sencillamente genial, incluso en el panel de configuración.
- Accesos directos a las funciones mas utilizadas por el usuario, haciendo del área de notificación un ágil paso para adentrarse en lo mas profundo del sistema operativo a nivel de configuración y manejo de cuentas.
- Mejora de las notificaciones sustancial, ahora notaras que las notificaciones son mas amigables y suavizadas, antes eran un poquito mas bruscas.
- Categorizar las búsquedas en el Unity, ahora podrás si así lo deseas buscar por categorías especificas.
- El software center ahora es mucho mas amigable y fácil de usar, detalla mucho mas el proceso de instalación y des-instalación de las aplicaciones.
- Categorizar las búsquedas de aplicaciones en el Unity por tipo.
Continue reading…
En la web hay muchos ejemplos de como hacer esto, pero leyéndome la documentación que viene con el EMDK 2.5 (lo pueden además conseguir en la pagina de Motorola), he encontrado la manera de leer los datos de un código de barra utilizando un equipo Symbol formalmente Motorola, en este caso el dispositivo que utilizo es un MC55A. El modo en que lanzas el laser se llama TriggerMode es una enumeración, posee tres elementos: ONCE, ALWAYS y MANUAL, por si prefieres que el laser se encienda presionando el botón para esto o la pistola. Sin mas preámbulos dejo acá la pieza de código en cuestión:
Protected Sub DoScan()
Dim dev As Device = Devices.SupportedDevices(0)
Dim bcode As New Barcode2(dev)
Try
Cursor.Current = Cursors.WaitCursor
bcode.Config.Reader.ReaderSpecific.LaserSpecific.AimDuration
= 500
‘Determina el modo en que el laser es encendido, ONCE es una sola vez,
‘ALWAYS es para cada scan pendiente y MANUAL como su nombre lo indica.
bcode.Config.TriggerMode = TRIGGERMODES.SOFT_ONCE
bcode.Config.Scanner.ActivityLedTime = 500
bcode.Enable()
‘El valor a esperar es en milisegundos en este caso significa que el laser
‘va a esperar 10 segundos o hasta que lea algo.
Dim sdata As ScanData = bcode.ScanWait(10000)
If sdata.Result = Results.SUCCESS Then
Me.TextBox1.Text = sdata.Text
Else
MsgBox("No se detectó ningún código", MsgBoxStyle.Information, "Aplicación Scanner")
End If
bcode.Disable()
bcode.Dispose()
Cursor.Current = Cursors.Default
Catch ex As Exception
Cursor.Current = Cursors.Default
bcode.Disable()
bcode.Dispose()
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Aplicación Scanner")
End Try
End Sub
Pues de esa manera espero que este pedazo de código les ayude si lo necesitan.
Luego de buscar y buscar una buena librería de acceso a datos para SQLite (al menos que no me diera muchas trabas) para incorporarla dentro de mi proyecto .NET entendí que tendría que tomar el código fuente de alguna de las que existían y cambiarle lo que no me gustaba:
1ro. Intente utilizar la librería llamada System.Data.SQLite, muy buena, eficiente, segura, pero es un tormento a la hora de implementación final ya que es muy estricta con la aplicación que la referencia ya que incorpora una librería COM que se llama SQLite.Interop.DLL, ¿Cual es el problema con esto? Que sencillamente para utilizar una librería COM hoy en día hay que dar muchas vueltas y asegurar mucho el código cosa que me tomaría mas tiempo del estimado.
2do. Intente utilizar la librería Community.CsharpSQLite pero esta librería estaba disponible para el framework 3.5, pensé que cambiando el trarget framework podría resolverlo pero no fue así de fácil, tuve que agregar varios cambios en los valores de compilación y adaptar varias líneas del código, los cambios mas relevantes son:
- Firmar los ensamblados y darle un StrongName
- Agregar el método AddWithValue en el la colección de parámetros de la clase SQLiteCommand
En mi código tuve que tomar en cuenta los siguientes asuntos:
- La librería no permite encoding UTF-16Le (Little Endian)
- EL connection string de la librería es diferente (
Uri=file:Ubicación del archivo, Version=3)
- El nombre de los parámetros deben ser totalmente idénticos a los parámetros de la sentencia SQL, con esto me refiero a que cada minúscula y mayúscula debe estar exactamente igual, sino fallará la ejecución.
- En mi librería de acceso a datos que utiliza estos objetos tuve que ponerle
<SecurityTreatAsSafe()> para que no me lanzara una excepción de seguridad.
Obviamente estos puntos en cuentas se pueden arreglar en la librería y adaptarlos un poco mas a las necesidades pero no considere que sean de tropiezos para mi en tal ocasión por lo que decidí adaptarme a eso simplemente.
Por si les interesa dejo acá al final los enlaces de los fuentes en cuestión aptos para el framework 4.0 tomando en cuenta que los derechos de autor pertenecen a sus desarrolladores los cuales mantienen el proyecto en esta URL: http://code.google.com/p/csharp-sqlite/ y sabiendo que yo solo adapte este código a mis necesidades particulares por lo que no me hago responsable de algún mal resultado o comportamiento que puedan afectar particularmente tu equipo.
Descargar Archivo (Password del archivo: walalm.com)
Uniform, es un pequeño complemento o librería de JavaScript que lo que hace sencillamente es poner los elementos HTML (inputs) más bonitos y agradables a la vista pero sin que pierdan su funcionalidad.
Pues sucede que el otro día necesite utilizar esta librería que ejercía un cambio sobre controles que se encontraban dentro de un UpdatePanel, oh si, el UpdatePanel es un tormento cuando hay que lidiar con tareas del lado del cliente efectuadas con JavaScript; en este caso lo sucedido es que al hacer un postback asincrónico se perdía la belleza de los controles, ah caramba, luego de mucho intentar hacer que la rueda se moviera casi me estaba rompiendo la cabeza cuando encontré la forma de resolverlo; sencillamente era atar el evento “EndRequest” propio del UpdatePanel (Del lado cliente) al método de JavaScript de uniform para que volviera aplicarle la belleza a los controles. Aquí pongo el código en cuestión:
$(document).ready(function () {
// Se ejecuta el método de manera inicial
$("#upcontainer :input").uniform();
// Se ata el evento endRequest con el metodo de uniform
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () { $("#upcontainer :input").uniform(); });
});
Espero que esto les resuelva la vida de la misma manera que a mi me ayudó.
Hoy día los medios han estado cargados con el recuerdo de lo sucedido hace 10 años en el centro económico de Nueva York o mejor conocido como World Trade Center (WTC). Recuerdo que esa mañana estaba en mi aula tomando clases en la secundaria, y suspendieron a la profesora por un momento para dar la mala noticias. Lamentablemente en ese lugar habían familiares de varios de mis compañeros de clases. Fue un poco desconcertante, devastador y sin duda un triste escenario.
Pero analizando la situación me han surgido varias preguntas, las cuales quiero tratar de contestarla a mi modo de comprender las cosas. Primero ¿Que pasaría si los atentados de ese día se dieran en el contexto actual?, ¿Morirían menos personas?, ¿Se podría evitar?. Lo cierto es que no somos igual a como éramos en ese tiempo, muchas cosas han cambiado, han mejorado, han empeorado, hay cosas nuevas y las tendencias han cambiado, seamos claro, ha pasado ya una década!
Hay varios hechos ocurridos en los últimos meses que quiero analizar:
- Hace poco ocurrió un terremoto en estados unidos, y algo que salió a relucir fue que gracias a la rapidez de Twitter, a varios kilómetros lograron enterarse del terremoto antes que las ondas expansivas tocaran ese terreno. En pocas palabras la información logro viajar mas rápido que la naturaleza gracias a su agilidad y la forma tan adaptada en que vivimos a tal tecnología. La onda expansiva de la información esta llegando a mas lugares y esta siendo mas rápida que las ondas expansivas de la naturaleza en muchos casos.
- Otro caso es los atentados ocurridos en Oslo, Noruega, y en un campamento en las afueras de la capital en una pequeña isla, ambos atentados conspirados y ejecutados por la misma persona. En contraste este hecho no fue natural, fue perpetrado por una mente dañada y de manera premeditada, sin embargo muchas vidas se salvaron gracias a la comunicación y según lo que he logrado ver en las historias, las indicaciones recibidas vía teléfono celular a muchos de los que se encontraban en esa situación.
En el caso del 9/11 entre un choque y otro pasaron 17 minutos, si eso ocurriría en nuestros días, bastarían solo 3 minutos incluso para que el hashtag #WTC se convirtiera en trending topic o TT como se le conoce comúnmente lo que daría al menos 14 minutos para descender de la torre y se salvarían mas vidas. Pero muchas personas dudaron de que estaban en una situación real y que debían evacuar de manera urgente los edificios.
Yendo mas lejos aun, muchos vuelos domésticos en Estados Unidos ya cuentan con conexión WiFi gratuita en la cabina del avión por lo que no nos sorprendería si se cargara un video en una red social de lo que ocurría en el avión, cosa que hasta ahora se desconoce y permanece como un misterio.
En síntesis, creo que hoy en día tenemos muchas herramientas buenas que nos pueden ayudar en caso de emergencia y que debemos prestar atención para darle el correcto uso. Herramientas que se pueden convertir en un tormento si no se emplea de la manera correcta y respondiendo la pregunta, creo que muchos accidentes y escenas de terror o tensión pudieran evitarse utilizando las herramientas de la manera adecuada y en el momento adecuado.
Sin duda alguna una buena aplicación que un bloguero que posea un blackberry no debe dejar de utilizar. La aplicación tiene todas las funcionalidades necesarias para mantener el blog actualizado en cualquier momento.
Lo puedes descargar del appworld buscándolo con la palabra clave “wordpress”.
De ahí me dejas tu comentario al respecto.
