miércoles, 29 de abril de 2015

Twitter automatizado



¿Tienes cuenta en Twitter?, lo más probable es que tu respuesta sea "sí".     ¿Qué haces en Twitter?, siendo una red del tipo microblog, lo más probable es que sea para chismear un rato, ya sea para lo bueno o para lo malo, es decir, estar al día o encontrar personas a las cuales molestar mediante comentarios incómodos, insultantes e hirientes.

Seguro habrás notado que muchos de los mensajes publicados en esta red social, vienen de calendarios programados de publicación, es decir, creo mi lista de mensajes, les pongo fecha y hora ¡y listo!

Realmente no hay algo de malo en ello si es que se le da un seguimiento a las respuestas o a los comentarios recibidos, de manera tal que la red se enriquezca y también se exploten las características de ésta.   Pero, qué pasa cuando...
  1. Se programan respuestas automáticas.
  2. Se monitorean cuentas de otras personas o instituciones y se hace retweet sobre cada una de sus publicaciones.
  3. Un sistema recopila los tweets con mayor impacto de las personas que se siguen para después hacer un "resumen personal y ejecutivo" de lo que otros publicaron.
Vayamos un poco más allá, ¿qué pasa si se deja que estos sistemitas se pongan a jugar y recopilar información para que entre ellos mismos se sigan y se den un retweet, follow, unfollow, etc.?, ¿no sería lo mismo que no existiera la red?

Me disculparás por ser tan tradicional, creo más en la relación personal, en ese ir y venir de ideas, comentarios, aseveraciones, discusiones, etc.    ¿Para qué colocar sistemas de actividad automatizada en una red social?, es como un "me invitaron a una fiesta, voy a ir, pero dejo a mi robot para que haga como que estoy porque me importa un cacahuate la interacción".

miércoles, 18 de marzo de 2015

Caracteres inválidos en XML



El otro día un exalumno me preguntaba si había alguna forma amigable de sustituir los caracteres no válidos en un texto para que éstos puedan ser integrados como parte de un documento XML.

Después de revisar todo el trabajo que había realizado, del cual la mayoría había sido extraído de internet, noté que le estaba dando bastantes vueltas al tema siendo algo tan simple como una sola línea de código.

Supongamos que tenemos la siguiente descripción:

El auto <de Juan & Rosy> es llamado "el volador"

Y queremos asignarla al atributo description del siguiente elemento:

<object description="" />

La solución es sencilla, utilicemos la función Escape de la clase SecurityElement que encontramos en el espacio de nombres System.Security, el resultado será el siguiente:

El auto &lt;de Juan &amp; Rosy&gt; es llamado &quot;el volador&quot;

Este último texto puede ser asignado sin problemas al atributo.

Como puedes ver es muy sencillo, no hay que darle tantas vueltas al tema y así te podrás quitar de muchos dolores de cabeza y operaciones sobre un objeto String.

viernes, 27 de febrero de 2015

Validador de contabilidad digital



El día de hoy por la tarde (27 de febrero de 2015) me encontré un tweet en la cuenta del SAT donde se anunciaba que existe un validador para los archivos XML de contabilidad electrónica, ¿reacción inmediata?, ¡vamos a probar los generadores en los que hemos trabajado!

¡Oh sorpresa!, entras a la página y al elegir un archivo XML muestra un mensaje de error diciendo:

"Validación de Nomenclatura: El nombre del Documento es inválido. Tipo identificado: Ninguno."

No se necesita tener un profundo conocimiento informático para notar que el problema era el nombre del archivo, por lo que inmediatamente busqué alguna liga en la página donde viniera alguna documentación de cómo debe llamarse el archivo para que el validador pueda tomarlo:


Realmente no hay mucho dónde buscar, lo cual me llevó a deducir que lo publicaron a las prisas (como casi nunca pasa con los sistemas del SAT y las empresas que le desarrollan software)

¿Qué opción tenemos?, ¡claro!, el chat uno a uno del SAT, ahí he realizado muchas consultas relacionadas con situaciones fiscales y siempre ha funcionado todo muy bien.

Pero... me surgió la duda... no voy a preguntar de cuestiones fiscales, ¡sino técnicas!, y ahí comenzó la parte triste de la historia, pero bueno, habrá que darles el beneficio y me animé a iniciar un chat con su heroico grupo de técnicos.

La excelente noticia es que la plática sólo duró 8 minutos, fue bastante rápido... la mala noticia, es que la persona que atendió no tiene ni la mínima idea de cómo se utiliza un sistema que ellos mismos publicaron.

Tristemente, el soporte técnico sigue siendo el talón de Aquiles, las razones no las conozco, pero ya es algo común y creo que les importa 2 kilos de cebollas que sea así.

¡Pero!, se encontró la solución, después de ponerme a analizar el código de la página, pude deducir los nombres de los archivos y a continuación los presento.

Catálogo de cuentas:
  • RFC completo
  • Los 4 dígitos del año
  • Número de mes del catálogo de cuentas expresado en dos dígitos.
  • CT, sí, textualmente las letras CT.
  • Ejemplo, si queremos validar el XML del catálogo de cuentas del RFC XAXX010101XXX del mes de enero de 2015, el archivo debe llamarse XAXX010101XXX201501CT.xml
Balanza de comprobación normal:
  • RFC completo
  • Los 4 dígitos del año
  • Número de mes de la balanza de comprobación expresado en dos dígitos
  • BN
  • Ejemplo, si queremos validar el XML de la balanza de comprobación normal del RFC XAXX010101XXX del mes de febrero de 2015, el archivo debe llamarse XAXX010101XXX201502BN.xml
Balanza de comprobación complementaria:
  • RFC completo
  • Los 4 dígitos del año
  • Número de mes de la balanza de comprobación expresado en dos dígitos
  • BC
  • Ejemplo, si queremos validar el XML de la balanza de comprobación complementaria del RFC XAXX010101XXX del mes de enero de 2015, el archivo debe llamarse XAXX010101XXX201501BC.xml
Pólizas:
  • RFC completo
  • Los 4 dígitos del año
  • Número de mes de las pólizas
  • PL
  • Ejemplo, si queremos validar la presentación de pólizas del RFC XAXX010101XXX del mes de febrero de 2015, el archivo debe llamarse XAXX010101XXX201502PL.xml
Auxiliar de folios:
  • RFC completo
  • Los 4 dígitos del año
  • Número de mes del auxiliar de folios
  • XF
  • Ejemplo, si queremos validar el auxiliar de folios del RFC XAXX010101XXX del mes de enero de 2015, el archivo debe llamarse XAXX010101XXX201501XF.xml
Auxiliar de cuentas:
  • RFC completo
  • Los 4 dígitos del año
  • Número de mes del auxiliar de cuentas
  • XC
  • Ejemplo, si queremos validar el auxiliar de cuentas del RFC XAXX010101XXX del mes de febrero de 2015, el archivo debe llamarse XAXX010101XXX201502XC.xml

Es importante señalar que la extensión también puede ser .zip, creo que lo manejarán así cuando se presenten las pólizas porque seguramente ese archivo va a ser muy grande.

Espero te resulte de utilidad y te ahorre mucha (pero mucha) pérdida de tiempo con el soporte técnico del SAT.