Plastc, una multitarjeta digital

Plastc Card_front_and_back

Si somos sinceros, a más de uno de le ocurrió alguna vez tener una tarjeta única para todo. Plastc es la primera implementación de esta idea hecha realidad. A simple vista, parece una tarjeta más para nuestra billetera, pero es mucho más que eso.

Plastc cuenta con un display LCD monocromático táctil, chip de smart card, chip de RFID y chip de memoria flash. Todo integrado en la medida estándar de una tarjeta de crédito común y corriente (si bien hay que darle crédito a la empresa estadounidense que lo ideó, no podemos dejar de admirar también a los chinos te fabrican cualquier cosa!).

La tarjeta funciona en conjunto con un smartphone mediante el cual podemos registrar hasta 20 tarjetas. Todo esto es alimentado con una batería que se recarga por inducción y tiene una vida útil de hasta 30 días.

El funcionamiento se basa en emular las tarjetas que queremos utilizar. Para esto, basta seleccionarla desde la pantalla táctil y estará lista para funcionar ya sea como tarjeta de crédito, débito o tarjeta de millas o puntos. Básicamente, puede emular cualquier tarjeta que tenga banda magnética, chip o código de barras.

Sinceramente, no me he adentrado en los conceptos tecnológicos, pero me imagino que, para hacerlo, tienen que haber establecido algún tipo de acuerdo con las entidades financieras de las tarjetas que buscan emular.

El producto estará disponible a mediados del 2015, pero ya se están tomando órdenes por 155 dólares.

Hyperlapse y el aluvión de videos acelerados

Ayer salió Hyperlapse, una nueva aplicación de Instagram promocionada como “U$S 15.000 de equipo profesional en la palma de tu mano”. Imagino que los profesionales se deben estar matando de la risa al ver esto. ¡Ojo! La aplicación me parece fantástica, pero la afirmación es cuanto menos un poquito exagerada.

Ahora, suponiendo que tenemos U$S 15.000 de equipo profesional, me parece que lo que queda demostrado es que, si no lo sabés usar, el resultado final va a seguir siendo pésimo. Y eso se pudo demostrar con el primer aluvión de videos de Hyperlapse. Lejos de las demos promocionales del producto, no llegué a ver ni un solo video que esté bueno.

Dejenme decirles que antes de que saliera esta app ya me gustaban mucho los videos en estilo timelapse o hyperlapse, lo cual lo pueden ver chusmeando mis favoritos de Vimeo. Esto no significa tampoco que me considere un experto en el tema. Pero los videos que vi ayer y hoy realizados con Hyperlapse están muy lejos de los resultados que, creo, los creadores de la app esperaban. Lo que más ví fueron videos caóticos de gente haciendo piruetas y monerías a 10x, que no parecen más que un sketch de Benny Hill o bien videos súper movidos con la excusa de que la app corregirá esas variaciones.

Mi punto es que la aplicación, creo yo, no sirve para eso sino que se pensó para lograr un efecto en particular, que es del hyperlapse. En este efecto, que no lo inventó Instagram, sino que es viejo (http://en.wikipedia.org/wiki/Hyperlapse), se trata de tomar repetidas fotografías alrededor de un punto fijo, mientras se mueve la cámara de posición, generalmente, una distancia grande. Esto es diferente al método de timelapse, donde la cámara está fija durante mucho tiempo para generar videos de escenas tales como puestas del sol, movimiento de gente en una ciudad, etc. En ambos casos se repite la constante de que un punto en la película es fijo. Esto no significa que la app Hyperlapse se pueda utilizar de otras formas creativas, pero creo que esta es la que más podremos aprovechar.

Otra forma de uso de la aplicación es para el seguimiento de un objeto que se desplaza, aprovechando para esto la característica más comentada de la misma, que es la estabilización. Yo creo que esta es una característica correctiva para el inevitable efecto que se daría en estos videos del movimiento al filmar un video largo. Esto significa que no pensemos que podemos hacer videos mientras saltamos y bailamos. Si usamos esta aplicación, la idea, es que los videos no se sacudan. La característica de estabilización es simplemente una ayuda.

Algunas ideas que se me ocurren para lograr los mejores efectos:

  • Se logran muy buenos efectos al moverse alrededor de un objeto fijo lo más lento y estables posibles, mientras aceleramos el entorno a gran velocidad. En realidad, estaremos acelerando todo, por eso, mientras más lento filmemos al objeto fijo, mejor.
  • Si vas a acelerar el video, asegurate de grabar una buena cantidad de minutos. La misma aplicación te informa, mientras estás grabando, cuál será la duración final a 6x.
  • Existen tres formas de lograr los mejores efectos: Primero, filmando un punto fijo, con la cámara quieta. Segundo, filmando un punto fijo, moviendo la cámara y siguiéndolo. Tercero, siguiendo un objeto en movimiento.
  • No abuses de la función de estabilización, o sea, tratá de estabilizar lo más posible con la mano.

Para finalizar, les dejo dos videos que hice con la app Hyperlapse.

El primero consiste en una filmación alrededor de una estatua. La hice caminando, lentamente, y tratando de mantener siempre la estatua lo más en el centro posible.

El segundo es otra escultura pero, a diferencia de la anterior, en esta se ve movimiento del entorno a alta velocidad.

Cómo determinar la paridad de claves para encriptación con DES

Un tema que resulta confuso es determinar si una clave DES es odd parity o even parity. El algoritmo DES generalmente se utiliza con claves odd parity ya que son más seguras. Un criptograma creado con una clave even parity es más fácil de desencriptar.

Primero, para que nos pongamos de acuerdo, traduzcamos:

  • Even: par
  • Odd: impar (odd también significa extraño o raro, en inglés).

La condición para que una clave sea odd, es que cada uno de sus bytes sea odd. Si esta condición no se cumple, entonces es even.

  • Si todos los bytes son odd, la clave es odd y es aceptada.
  • Si al menos un byte es even, la clave es even y es rechazada. Algunos sistemas pueden hacer un ajuste para convertirla en odd.

Luego, la condición de odd o even de un byte se determina así:

  • Si el número de “1” en su representación binaria es impar, entonces el byte es odd.
  • Si el número de “1” en su representación binaria es par, entonces el byte es even.

Finalmente, el algoritmo para ajustar una clave even a odd debería ser byte a byte: Si un byte es even, se convierte ese byte a odd. Así para cada uno de los 8 bytes (para una clave single length). La forma en que se debería hacer este ajuste es el siguiente:

  • Si el número de “1” desde el bit 1 al 7 es impar (odd), se setea el bit 8 en “0”. Con esto se obtiene una cantidad impar de “1” en todo el byte, dejandolo odd.
  • Si el número de “1” desde el bit 1 al 7 es par (even), se setea el bit 8 en “1”. Con esto se obtiene una cantidad impar de “1” en todo el byte, dejandolo odd.

En todos los casos, se entiende que el bit 1 es el de la izquierda y el 8 el de la derecha.

Uso de Branches y Tags con SVN

El uso de branches y tags en SVN nos permite una mejor organización del trabajo en equipo. Si bien no muchos usuarios de SVN utilizan esta funcionalidad su uso trae varias ventajas.

Branches

Los branches se utilizan cuando se desea crear una rama independiente de desarrollo para trabajar en alguna funcionalidad nueva de un proyecto que todavía no se quiere incorporar a la línea principal. De esta forma, se crea una copia del proyecto en una carpeta /branches y el programador encargado de esta nueva característica cambiará (switch, según la terminología de SVN) su working copy a este nuevo branch y trabajará sobre este.

Cuando este programador realice operaciones de commit las realizará sobre su branch, sin afectar el desarrollo principal. Cuando esté listo para integrar sus cambios a la línea de trabajo principal, realizará una operación de merge.

Tags

El uso de tags se da cuando queremos “marcar” una determinada revisión por alguna razón en especial. Por ejemplo, podemos querer marcarla porque se trata de un release entregado al cliente. En este caso, como en el anterior, se crea una copia de la revisión deseada del repositorio en la carpeta tags. Técnicamente la creación de un branch y un tag es idéntica, ya que se realizan con el comando svn copy. La diferencia radica en la forma en que se les da su uso; en los branches está permitido realizar commits y en los tags no. Esta “prohibición” sobre la realización de commits o no es virtual, ya que no existe impedimento técnico sino que son los programadores los que lo deben tener en cuenta.

Creación y uso de branches y tags

El comando para la creación, tanto de branches como tags, es svn copy:

$ svn copy http://svn.example.com/proyecto/trunk \            http://svn.example.com/proyecto/branches/soporte-IPv6 \       -m "Branch para agregar soporte para IP v6" 

Si trabajamos con Tortoise SVN es aún más fácil, ya que tenemos un comando Branch/tag. Con Tortoise SVN tan solo tenemos que hacer clic derecho sobre nuestra working copy y elegir el comando Branch/tag. Tortoise reconocerá la URL de origen en el repositorio y nos pedirá la URL de destino, donde queremos hacer la copia.

En la ventana para crear un nuevo branch o tag, también tenemos un checkbox que podemos marcar para automáticamente hacer el switch al branch o al tag recientemente creado. De no hacerlo, podremos realizar el switch en cualquier otro momento con el comando homónimo.

Finalmente, para reintegrar un branch a la línea de desarrollo principal, recurrimos al comando Merge.

Estructura de directorios recomendada

La estructura de directorios recomendada por SVN, para la raíz de nuestros repositorios es de tres carpetas:

  • /trunk: este directorio aloja la línea de desarrollo principal.
  • /tags: en esta carpeta guardamos los tags que vayamos creando, por ejemplo /trunk/release-1.2/.
  • /branches: en esta carpeta guardamos los branches que creemos.

Es una buena práctica seguir esta estructura, aunque aún no hayamos decidido trabajar con branches y tags ya que de decidirlo más adelante será más complicado cambiarlo.

5 consejos para gestionar el Facebook de tu empresa

Desde que surgió Facebook como un medio de comunicación más para que las empresas se conecten con sus clientes he visto de todo. Hay excelentes casos de uso de la red social para salir de la más grave de las crisis comunicacionales con la mayor elegancia posible y hay algunos que se meten solos en lios.

Recientemente, un conocido inició un nuevo emprendimiento y empezó a utilizar Facebook para promocionarse. Enseguida vi muchos errores básicos en la estrategia de uso de la red social y me pareció una buena oportunidad dedicarle un artículo al respecto para ayudarlo. Así que ahí van mis 5 consejos básicos para gestionar el Facebook de tu empresa.

1. Creá una Página.

facebook01

El primer error, y uno de los más comunes, es crear la página de tu negocio como una nueva cuenta de Facebook. Esto es un error, porque tus clientes deberán hacerse “amigos” de tu negocio y vos tendrás que aceptar su solicitud de amistad. El principal problema que surge aquí es la privacidad, ya que al ser “amigos” de nuestros clientes, estaremos habilitados para ver todo lo que el cliente publica en sus cuentas personales de Facebook. Entonces, habrá muchos potenciales clientes que advertirán esto y rechazarán la posibilidad de hacerse amigos para evitar que alguien desconocido acceda a su contenido personal.

La forma correcta, entonces, es crear una Página, la cual manejaremos desde nuestra cuenta personal.

2. Elegí cuidadosamente el contenido

facebook02

Publicar y republicar el mismo anuncio o posteo hasta el cansancio es un gran ¡NO! Esto no hace más que cansar a la gente hasta lograr que abandone tu página. A nadie le gusta entrar a su muro de Facebook y encontrarlo lleno de publicidad.

No hace falta todos los días subir el mismo banner publicitario donde describís lo que hacés y publicás tu teléfono. No aporta nada. Perdés clientes.

Lo que queremos es mantener el interés del público de nuestra página, aunque no se conviertan en clientes YA. Para esto, el tipo de contenido que podés publicar puede estar relacionado con lo que hacés.

¿Das clases de música? Linkeá videos de YouTube que estén buenos, publicá fotos nuevas cada tanto de tu trabajo con tus alumnos. ¿Sos especialista en alguna tecnología? Escribí algún comentario relevante sobre alguna tecnología novedosa, publicá links de interés para tu público. En fin, mostrá lo que hacés, demostrá lo que sabés.

Si la gente quiere contactarte, en la sección de información de tu página encontrarán tu teléfono o tu email. O te podrán dejar tu comentario.

3. No etiquetes a tus amigos

facebook03

No sé por qué Facebook pensó que las etiquetas eran una buena idea, a nadie le gusta que lo etiqueten. Pero, que etiquetar a alguien en un anuncio, ya es pasarse de la raya.

Dejá las etiquetas solo para cuando realmente aparezca la foto de esa persona, y asegurate de haber obtenido el consentimiento de esa persona para etiquetarla.

Un caso de especial cuidado debe tenerse cuando se publican fotos de menores. Asegurate de tener el permiso para hacerlo o solo publicá fotos donde no se vean sus rostros para evitarte problemas.

4. Hablá con tus seguidores

No hay nada más decepcionante que una empresa que no responde. Si te hacen una consulta, asegurate de poder responderla en un tiempo razonable.

Las redes sociales son justamente para eso, para estar en contacto permanente con tus seguidores, clientes actuales o que en un futuro podrían serlo.

Por eso, mantenelos actualizados sobre las actividades y novedades de tu negocio y respondé a sus consultas ya que la respuesta para uno puede ser de utilidad para muchos.

5. Entendé las críticas

facebook04

Es parte del juego, si estás en redes sociales, no va a faltar quien te haga una crítica. Puede ser desde un cliente que, con razón te haga saber que no estuvo conforme con tu servicio, hasta uno realmente quejoso o incluso, un competidor encubierto.

Recordá que esto es parte del juego de estar en las redes sociales. La forma en que vos respondas esa crítica va a ser vista por todos tus seguidores y podrás hacer una diferencia a tu favor o en contra.

Incluso, tené en cuenta que si resolvés el problema del cliente de forma privada, el cliente podrá acudir a las redes sociales para mostrar su descontento o su agrado en la resolución que le diste a su problema.

Residuos: ¿Cómo lo hacen en otros países?

Voy a inaugurar una serie de posts donde publicaré sobre cómo han resuelto en otros países problemas cotidianos que sería bueno imitar.

En el caso de la basura he visto diferentes métodos. En México DF, por ejemplo, he visto que el camión de la basura pasa tal como aquí pero con la diferencia de que un señor va tocando una campanita con la mano. Entonces, cuando escuchas la campana tenés que salir de tu casa para sacar la basura y tirarla al camión directamente. El mismo método lo he visto en Lima, Perún. El resultado es interesante ya que la gente no deja la bolsita de basura en la vereda, a cualquier hora, costumbre que solo la he visto en Argentina.

En el caso EE.UU. está bastante mejor pensado. Y es bastante sorprendente que en uno de los paises que mayor basura genera el servicio de recolección es muy eficiente y se ven las calles mucho más limpias que aquí.

Encontré, para ejemplificar, el caso de la ciudad de Allen, Texas, donde estuve de viaje por trabajo varias veces (http://www.cityofallen.org/DocumentCenter/View/143). En dicha ciudad el servicio de recolección de la basura es prestado por la municipalidad, como en casi todos lados. Cada vecino recibe de la municipalidad, en caracter de préstamo, dos tachos de basura grandes, con rueditas (estimo que habrá un caso especial para edificios grandes y oficinas). Uno de los tachos es para basura y el otro para reciclables. Los tachos deben ser sacados a la vereda en el día y horario designado. Si lo sacás en otro horario, te multan, ya que el tacho lleva tu dirección.

Lo que es increíble es que en uno de los paises que más residuos genera es que la recolección de basura común es una vez por semana. La recolección de reciclables, por otra parte, es cada dos semanas.

En el caso de los residuos voluminosos, me he cansado de ver aquí, en Buenos Aires, cómo la gente saca colchones viejos, sillones, cocinas, lavarropas y los tira felizmente a la calle como si se tratara de un basural. En EE.UU. corresponde una buena multa para los infelices que hagan eso. Los residuos voluminosos como esos deben retirarse solamente por pedido y se recolectan solamente una vez al mes.

En otras ciudades de EE.UU., por ejemplo San Francisco, agregan un tacho más de basura para materia orgánica la cual se utiliza para generar fertilizantes.

Sin dudas, son cosas de las que podemos aprender.

Aclarando dudas sobre el impuesto a las Ganancias

Ante todo, quiero aclarar que no soy contador ni tengo la menor idea sobre impuestos. El presente post tiene como objetivo aclarar ciertos conceptos sobre el impuesto a las Ganancias que yo desconocía y que luego de investigarlo en Internet, me ayudó a entender mejor cómo se calcula el monto a pagar. Aclaro que puede tener errores, ya que la información que hay en Internet sobre esto es muy poca o demasiado técnica para mi comprensión. Solo espero que esto ayude un poco a entenderlo mejor.

Aclaro también que voy a hablar en particular del caso de Autónomos. Desconozco en detalle cómo es el caso de los empleados en relación de dependencia pero tengo entendido que lo que ellos pagan es menor, aunque los autónomos pueden hacer mayores deducciones.

El impuesto a las ganancias se calcula utilizando un aplicativo de la AFIP. Es un programa para Windows que se baja y corre como una aplicación local. En este aplicativo hay que introducir ciertos valores y sale lo que hay que pagar.

El primer paso es determinar el total de las ventas del año (todas las facturas que nosotros hicimos); esto definirá los ingresos. El siguiente paso es incluir todas las facturas de compras (todas las que nos entregaron), lo cual determinará los egresos. Hay que tener en cuenta que solo se deben considerar aquellas compras necesarias para sostener la continuidad de la actividad económica.

Si hacemos la diferencia entre los ingresos y los egreos obtenemos el resultado neto. Este numerito es el que, por lo general, utilizan los bancos para determinar nuestros ingresos netos para otorgarnos un crédito o una tarjeta de crédito. Por ejemplo, si cierta tarjeta de crédito que quieren sacar pide “ingresos mínimos 15.000 pesos mensuales”, deben dividir el resultado neto por 12 (meses), ya que eso es lo que el banco considerará.

Entonces, si por ejemplo tuvimos ventas por $500.000 y gastos por $300.000, nuestro resultado neto sería de $200.000.

Luego viene la parte complicada y, las deducciones. Hay diversos casos en los cuales se pueden aplicar deducciones al monto del resultado neto. Hay deducciones personales y deducciones generales.

Como deducciones generales tenemos:

  • Seguros de vida
  • Gastos de sepelio
  • Aportes a obras sociales
  • Servicio doméstico
  • Donaciones
  • Gastos médicos
  • Pagos al régimen de jubilación
  • Intereses de créditos hipotecarios
  • Aportes a Sociedades de Garantía Recíproca
  • y otros (ni idea qué más puede ser)

Sobre estos ítems sé que existen límites en cuanto a montos y/o porcentajes.

En cuanto a las deducciones personales, inciden las cargas de familia y el mínimo no imponible. Es aquí donde se consigan los montos que “se llevan” los familiares a cargo (hijos, cónyugue, padrres, etc.). Estos montos se suelen actualizar regularmente.

Por último tenemos el caso de las deducciones especiales. Este es un beneficio que es exclusivo de autónomos. Nuevamente, el monto se suele actualizar regularmente.

En la siguiente página se pueden ver tablas del año 2013 y algunos para atrás, de las deducciones admitidas http://www.impuestosimple.com.ar/informacionGral/impuestoGanancias/deduccionesIG.html.

Por ejemplo:

  • Mínimo no imponible: $15.552
  • Cónyugue: $17.280
  • 2 hijos: $17.280 (8640 x 2)
  • Deducción especial: $15.552
  • Pagos jubilación autónomos: $7.716 (643 x 12)
  • Total a deducir: $73.380

Con todos estos datos, del resultado neto menos todas las deducciones se llega a lo que se conoce como la ganancia neta sujeta a impuesto. Siguiendo con nuestro ejemplo, deduciendo los conceptos que ejemplificamos antes, estaríamos con una ganancia neta sujeta a impuesto de $126.620.

El siguiente paso será determinar el monto total que le debemos pagar a la AFIP. Esto se hace mediante la siguiente tabla:

Ganancia neta imponible acumulada Tabla I Tabala II Simplificada
MAS DE $ A $ PAGARÁN $ MÁS EL % SOBRE ELK EXCEDENTE DE $ (G = GANANCIA NETA IMPONIBLE PAGARÁN $
0 10.000 - 9 - (0.09 X G) -
10.000 20.000 900 14 10.000 (0.14 X G) - 500
20.000 30.000 2.300 19 20.000 (0.19 X G) - 1.500
30.000 60.000 4.200 23 30.000 (0.23 X G) - 2.700
60.000 90.000 11.100 27 60.000 (0.27 X G) - 5.100
90.000 120.000 19.200 31 90.000 (0.31 X G) - 8.700
120.000 En adelante 28.500 35 120.000 (0.35 X G) - 13.500

Como ven, con el resultado de nuestro ejemplo de $126.620, caeríamos en la última categoría (más de $120.000), con lo cual pagaríamos $28.500 más el 35% del excedente, es decir, el 35% de $6.620. En total nos daría que le debemos a la AFIP $30.817.

Si ven este número, tal vez los asuste, pero deben tener en cuenta que durante el año seguramente ya han pagado anticipos, los cuales se descuentan de su deuda. Lo mismo si tienen retenciones o percepciones. Y lo mismo si computan los pagos del “impuesto al cheque” (desconozco en qué porcentaje, pero no son para desperdiciar).

¿Y si hice viajes o compras en el exterior?

En el caso de los viajes al exterior o las compras en moneda extranjera, estas generaron percepciones ya sea por el 15%, 20% o 35%, según en la época en que fueron hechas. Este monto se descuenta también del total a pagar. Por lo que si el año pasado tuvieron pagos de anticipos por $20.000 y percepciones por viajes o compras en el exterior por $5.000, solo le estarán debiendo a la AFIP $5.817.

¿Por qué se dice que el impuesto a las ganancias no está actualizado?

Porque dejó de ser progresivo. Progresivo significa que, mientras más gano, es mayor el porcentaje de impuesto que pago. Eso puede evidenciarse en la serie de porcentajes de la tabla publicada que van del 9% al 35%, según la ganancia neta sujeta a impuesto. En definitiva, alguien con bajos ingresos caerá en el porcentaje del 9%, mientras que alguien con altos ingresos caerá en el 35%.

El problema es que esta tabla hace años que no se toca. Los anuncios que el gobierno hace sobre “retoques” en el impuesto a las ganancias tienen que ver únicamente con las subas en los mínimos no imponibles o las cargas familiares. Son subas que, como vimos, afectan el resultado neto final, pero ayudan muy poco a mantener el caracter progresivo del impuesto.

Para entender esto, hoy, y siguiendo con las deducciones de nuestro ejemplo, a partir de un resultado neto (ingresos menos egresos) de $193.380 (comparable con un ingreso neto de $16.000 por mes), ya entraría en la categoría más alta del impuesto. Esto quiere decir que paga el mismo porcentaje (35%) el que gana $16.000 por mes que el que gana $25.000 o $40.000 o $70.000.

Argentina economics for software services buyers

Yesterday, I received an email from an old client, who has hired full time engineers in Argentina, asking me about the economic situation of software outsourcing companies after the new government regulations. He was referring to the new argentinean government regulation for foreign money exchange. So, I gave him some background information.

Why so much USD in Argentina?

Argentineans, for years, were used to save in foreign currency, specially in US dollars, as a way to protect themselves from inflation and economic crisis. US dollars are also used by the Argentinean Central Bankto maintain and somehow control the value of our currency, the Peso. Argentina is the second country in the world after Rusia, with more US dollars outside USA. Another strange thing that happens here is that all real estate operations are made in USD. That doesn’t happen, for example, in our neighbor Brazil, where their currency, the Real is used exclusively for everything, and I think that is what we should do.

The recent economic crisis in Europe is making european companies here to transfer US dollars to Europe, to help their central branches. I’m not sure why, that is apparently not a good thing. Some private savers are also changing more pesos to USD because they fear of the European crisis.

All these scenarios made the government create a new regulation in which they demand that, whoever wants to change Pesos into USD, to prove how they obtain their money.

The issue is that a good part of the pesos which were changed into USD were not legally justified from people or companies who did not pay their taxes. So now, if they don’t have a legal way to demonstrate how they obtained the pesos, they are not allowed to buy USD.

For outsourcing companies doing their things within the law, this is not a problem. I can receive payments from foreign companies as usual and I could buy USD if I wanted.

What changes

As I said before, for companies doing things within the law, that is, paying their taxes, nothing changes. An argentinean company or individual has NO reason to demand more money from you because of this new regulation. Our costs did not go up because of this in any way.

The usual flow is that the outsourcing company emits a valid invoice (valid for the argentinean law) , client transfer the funds, usually via international bank transfer (SWIFT code), and the money is cleared in the company’s account, always in Pesos, which is our national currency.

If, for any reason, the company needs to buy foreign currency, they can do it without any problem, because they report their sales to the Tax Agency monthly.

It is true that providers using services like Xoom or Western Union received their payments in USD before the new regulations and no justification for the origin of the funds were asked for them. The difference now is that, if they want to continue receiving their funds in USD, they will have to prove the origin of the funds; if not, they will pay them in Pesos, at the official exchange rate.

The trick here was that those providers were declaring that the funds received were “familiar help”. That was definitely outside the law.

How to tell if you are hiring within the law

Now, if you are a foreign company hiring argentinean services you may be asking if you are hiring providers within the law.

If you are not hiring registered providers, that means you are paying less than the market value or that your providers are making more because they are not paying their taxes.

Even though you don’t need an invoice, it is your moral obligation to request one.

An argentinean invoice has some elements that will help you determine if it is legal or not.

CUIT

This is the tax identification number. It is a 11 digits number, usually represented as ##-########-#.

If the invoice of your provider does not include this number, you are not receiving a legal invoice and you are probably helping to tax evasion.

With this number, you can find out if you are hiring a provider who is registered in the tax agency. You could go to AFIP, click the Constancia de Inscripción link, and make a query using the CUIT (no dashes).

You could get two result types:

  1. If it says “Régimen Simplificado para Pequeños Contribuyentes” means he is registered in the simplified program for small taxpayers (commonly referred to as “Monotributo”), which is OK. But you should also check the category, which is a capital letter.

    In this page, you can see how much is the tax for each category (values expressed in Pesos). The first column shows you the category letter. The second, the top anual income for each category and the last two columns shows you the total tax they have to pay for services and goods respectively.

  2. If it doesn’t say “Régimen Simplificado para Pequeños Contribuyentes”, your provider is in the “General” program, which is more suitable for companies with an anual income of 46,000 USD or more. This program has more controls from the tax agency and taxpayers are forced to report monthly sales and spendings. They usually pay more in taxes (aprox. 30%), but they can deduct spendings.

Invoice letter

If the services provided are used outside Argentina, your provider should give you an E type invoice wether he is in the Monotributo program or not.

The difference between C and E invoices in Monotributo, for services, is formal. It doesn’t mean they pay different taxes with one invoice type or the other. So some providers could also give you a C type invoice but that should not be a problem.

You should not receive an A nor B invoice, unless you buy directly IN Argentina, because that means that you would be paying the sales tax (21%) and, as a foreign company, you should not pay it.

Transfer method

If you send the funds through international bank transfer, it is very likely that your providers will have to present the invoice that justifies those funds to the bank, to get the money cleared into their bank account.

If you are paying your programmers through services like Western Union or Xoom.com, and you are not asking your providers a valid invoice, you should know that these services do not demand to present an invoice to release the funds, so it is an easy method to skip paying taxes.

Argentinean inflation

Argentina, like many other countries in Latin America is experiencing a continuous growth since 2003. The collateral effect is inflation. That means that, each year, we need more Pesos to live.

Anual inflation in 2010, according to government is approximately 11%. But, to private consultants it is 25%. The trick is that not all the consultants reveal their measure methodology but government does. And government inflation is more country broad while private consultants focus more on big cities. An average between both values is acceptable.

If your provider express the prices in USD, he can make some difference with the exchange rate variation, but it is not enough to cover from inflation. For example, in the last year, USD went up 10%, wich is not enough to cover the average inflation.

In 2011 we might not experience as much of inflation as last year or, at least, not more. But beginning 2012, we will experience a higher cost in services like electricity, gas and water, specially in Buenos Aires and surroundings.

The case of my old customer

My opinion is that his providers were lying and trying to deceive him. They told him that they had to register as exporters and to pay more taxes. They pretended a raise of 30%, which is crazy in any industry.

The fact is that software providers do not need to register as exporters (that is for goods that go through customs), and they don’t have to pay more taxes than what they should be already paying from the beginning.

Probably, these providers realized that they won’t be able to be paid in US dollars anymore, because they are not producing invoices for their work or they are not properly registered and paying their taxes.

Why they would need US dollars? As I said at the beginning, argentineans are used to save in this currency, to protect from inflation or to buy a property. But it is also true that they can exchange the US dollars for the Pesos they need for living at a higher exchange rate than the official in the black market for, easily 15% or 20% more.

Use Cases vs. User Stories

No me parece que haya mucha diferencia entre una metodología dirigida por casos de uso (Use cases) o por historias de usuario (User Stories).

Por lo general, los casos de uso proveen una descripción más detallada “paso a paso” de las acciones que realiza un usuario del sistema para cumplir con su objetivo. Además, los casos de uso contemplan las extensiones, es decir, las diferentes variantes que pueden darse en el camino para alcanzar el objetivo como errores o algún desperfecto en algún sistema dependiente.

Pero es importante entender que no es necesario definir los casos de uso por completo al inicio del proyecto. Estos deben ser primero identificados, declarados y luego definirlos a medida que se avanza en las iteraciones del proyecto. En muchos proyectos me han pedido definir todos los casos de uso por anticipado y esta es una tarea realmente sin sentido.

Otro punto sobre el que se discute mucho es si los casos de uso deberían o no contener información sobre la interfaz de usuario. Mi opinión es que depende de dónde provengan. Si los casos de uso los escribe un analista en base a la información que obtiene del cliente, probablemente no sea necesario definir elementos de la UI. En cambio, en equipos de trabajo más chicos puede darse que la misma persona que define los casos de uso vaya a ser quien luego haga el trabajo de diseño o implementación. En este caso, definir aspectos de la UI puede ser una buena forma de ahorrarse trabajo.

Por último, y siguiendo todavía con los casos de uso, no siempre es necesario utilizar la famosa plantilla de Cockburn para definirlos. En ocasiones basta con una simple descripción, a menos que se requiera una funcionalidad muy específica.

Por el lado de las User Stories, una de sus principales ventajas es que las metodologías ágiles parten de que estas son escritas por el cliente. Para el cliente resulta mucho más natural escribir User Stories que casos de uso, aunque tan solo sean los títulos.

Si bien creo que la información que brindan las User Stories al desarrollador es similar a la que brinda un diagrama de casos de uso, no podemos pedirle al cliente que haga un diagrama. Las User Stories, por definición, se crean utilizando un lenguaje hablado natural, y ahí radica su ventaja que es la facilidad para su concepción.

Error Saving changes is not permitted en SQL Server

En el día de hoy me encontré por primera vez con algo totalmente nuevo para mí. Resulta que el Management Studio para SQL Server 2008 modificó la forma en que se guardan los cambios en la vista diseño de una tabla.

En algunos casos, Management Studio elimina totalmente una tabla y la vuelve a recrear, por ejemplo, cuando tiene que crear una columna en una ubicación específica. Esto es así desde versiones anteriores, pero aparentemente en esta versión 2008 decidieron ponerle una opción que impide esto, mostrando el siguiente mensaje:

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.

La solución es muy simple y solo consiste en dirigirse a[Tools/Options/Designers] y desmarcar el checkbox [Prevent saving changes that require table re-creation].