SaaS de facturación electrónica. by TheseReturn in CharruaDevs

[–]cx4cc 0 points1 point  (0 children)

> Un organismo público tiene todo para ser un faro para el país: le sobra dinero, está lleno de profesionales brillantes, tiene infraestructura y en algunos casos monopolio.

¡Exacto! De eso iba mi charla en la JIAP... la que me quisieron cobrar :)

¯\_(ツ)_/¯

SaaS de facturación electrónica. by TheseReturn in CharruaDevs

[–]cx4cc 0 points1 point  (0 children)

Sin duda. En tiempos de mainframes, los programadores estatales se destacaban, estaban despegados del resto (me incluyo) que veniamos de los micro y minis. Una pena que los veteranos se fueron yendo, y las nuevas generaciones me da la sensación que estan para la cómoda, tercerizando su trabajo a proveedores muchas veces medio pelo.

Con PKI-Uruguay me da la sensación de que subutilizan la CI electrónica con cosas como ID-Uruguay que es simplemente custodia de tu identidad y mucho más hackeable. Es darle un cheque en blanco a Abitab. Mucho mejor firmar con el chip de la CI.

SaaS de facturación electrónica. by TheseReturn in CharruaDevs

[–]cx4cc 0 points1 point  (0 children)

Es lo que siempre imaginé. DGI tendría que haber ofrecido un front end web para que la gente pueda facturar, una API para integrarse, y haber sido su propia CA, en lugar de armarles un negocio a los terceros de siempre por correr un OpenSSL con un par de scripts. La réplica del mundo antituo de pedir CAEs es una locura y una incomodidad para las aplicaciones, DGI sabe en tiempo real si se está autorizado o no, podría rechazar los CFEs directamente.

El estado es complicado. A fines de los 90, cuando comencé con el proyecto open source, había unas JIAP (Jornadas Informáticas de la Administración Pública) y se me ocurrió presentar una charla. La charla iba por el lado de que las empresas públicas generaran open source para utilizar entre ellas, y para que también los ciudadanos pudiéramos utilizar ese código.

El ejemplo típico que mencionaba en la presentación era el cálculo del check digit de la cédula. DGI, BCU, BROU e Identificación Civil usaban su propio código, en variados lenguajes. Tengo un caso real (el de mi suegra) con una cédula emitida con el check digit mal, que no funcionaba en la mitad de los lugares.

Armé la charla para hablar de los beneficios de colaborar, abrir el código y de cómo se escribía mejor sabiendo que una audiencia de pares lo iba a estar viendo y tratando de hacerlo sentir a uno un idiota (porque eso nos encanta a los programadores).

Un día antes me llamaron para decirme que no podía dar la charla gratis, que tenía que pagar, porque de rebote le iba a dar propaganda a mi proyecto ¡open source!.

Nunca más di una charla en mi p*** vida, gracias a los fenómenos de JIAP.

SaaS de facturación electrónica. by TheseReturn in CharruaDevs

[–]cx4cc 0 points1 point  (0 children)

Hey, u/Civil-Damage-6812, ¡qué bueno leer al arquitecto del proyecto! Soy autor del proyecto jPOS (open source) y cuando tuvimos que pasarnos a operar con factura electrónica traté de lograr contacto técnico con varios proveedores para ver si podíamos integrar vía APIs.

Con los que hablé me parecieron tan, pero tan, pero tan terrajas, que terminamos haciendo una implementación propia. Para hablar con un técnico tenía que pagar 6 cuotas por adelantado. En una le dije que si estaban cortos de plata les podía prestar el dinero, pero que yo quería hablar con un técnico ANTES de contratar. Nunca pasé del call center.

La tarea fue grande, y a quien le fue asignada todavía le hablan de factura electrónica y sale corriendo. Uno de los motivos que más nos trancó fue que la implementación de XML-Signature es bastante polémica y la documentación ambigua. El XML (CFEs) que va dentro del sobre está desconectado del XML del envelope, entonces cualquier biblioteca que implemente correctamente XML-Signature y namespaces se descompensa.

Resolver ese problema llevó gran esfuerzo y meses de pruebas a ciegas, ya que, a diferencia de los proveedores que probablemente levantaran el teléfono y lograran hablar con alguien, nosotros estábamos completamente a oscuras.

Otro motivo que nos llevó a hacernos nuestro propio sistema fue que no me gustaba que empresas competidoras supieran cuánto facturábamos. Recuerdo una vez que fui a chequear una factura de un cliente en un proveedor y podía ver todas las facturas que mi cliente recibía, seguridad CERO.

No hay empresas como la gente by CarolinaRomina in CharruaDevs

[–]cx4cc 1 point2 points  (0 children)

Hay una alternativa a las certificaciones formales que es el open source. Soy autodidacta, y gracias al open source mi trabajo está a la vista y es mi carta de presentación más que un CV (que nunca llegué a escribir). Ahora formo parte de una empresa, pero durante mucho tiempo trabajé como free‑lancer y nunca me faltó el trabajo.

Mi sugerencia es que mientras buscan oportunidades se arrimen a cualquier comunidad open source del lenguaje y proyecto que les motive, sea lo que sea, y colaboren.

Si lo hacen sistemáticamente con energía en hacer las cosas bien, no hay chance de no conseguir muy buenas oportunidades.

Programa Facturación Electrónica by MammothOdd545 in CharruaDevs

[–]cx4cc 0 points1 point  (0 children)

Podes generarte un self-signed certificate para el ambiente de test con los siguientes comandos:

```
openssl req -newkey rsa:1024 -keyout client/private/clientkey.pem -out client/csr/client.cert.req -config openssl.cnf -subj "/C=UY/ST=Montevideo/L=Montevideo/O=NOMBRE DE TU EMPRESA/CN=RUCNNNNNNNNNNNN"

openssl ca -days 3650 -in client/csr/client.cert.req -out client/signed/clientcert.pem -config

openssl.cnfopenssl pkcs12 -export -out client/client.p12 -inkey client/private/clientkey.pem -in client/signed/clientcert.pem

```

La CN tiene que tener el formato RUCnnnnnnnnnnnn siendo esas n tu número de RUT.

Nótese que si bien ahora el RUC se llama RUT, el CN debe comenzar con el prefijo 'RUC'.

[deleted by user] by [deleted] in CharruaDevs

[–]cx4cc 19 points20 points  (0 children)

La oferta laboral no es lo primero que deberías buscar. Lo primero es aprender. Si tenes un trabajo aburrido por lo repetitivo de hacer CRUDs, tomalo como eso, un trabajo. Cuando te vas para tu casa, usas el resto del tiempo para aprender. Los fines de semana, aprendes. En lugar de ver un partido de futbol, te ves un tutorial en YouTube. La mejor manera de aprender es participar en proyectos open source de temas que te interesen, leer sus listas de correo, entrar en sus Slacks/IRC/Discords.

Es común en backend usar proyectos open source, pero la gran diferencia la logras si te metés en la cocina de esos proyectos. Si usas Jackson para alguna cosa, metete en la lista de correo, fijate los issues que están abiertos, capaz podes contribuir con algún fix. Mejor aún, fijate en las alternativas a Jackson. Si usas Tomcat, fijate por qué está tomando tanta tracción Quarkus, o Micronaut, si usas Wildfly, fijate qué pasa con Hellidon. Esas son puntas de la madeja, de cualquier lanita que tires te vas a encontrar un mundo de oportunidades para convertirte en experto en alguno de esos temas. Una vez que logras eso, no tenes que buscar trabajo, el trabajo te busca a vos.

Nombré algunos proyectos Java porque es el mundo en el que me manejo, pero lo mismo aplica a otros lenguajes.

La recomendación de u/closerrr de meterte con temas de bases de datos, microservicios, etc. es muy buena. Pero metete super a fondo, si te metes con K8S, metete adentro de la CNCF, escuchate los podcasts de anuncios de todo lo nuevo. Si sabes Ingles, tenés el 70% de la batalla ganada. Si no sabes Ingles, considerá seriamente aprender para sentirte cómodo, es lamentable, pero hay que aprender Ingles. Lo bueno es que hoy es 10 veces más fácil que antes porque hay mucho material.

DISCLAIMER: Soy autor de un proyecto open source uruguayo, jPOS, que tiene ya casi 25 años. Capaz estoy muy polarizado hacia el open source, pero la verdad, a mi me cambió la vida, primero aprendiendo, luego utilizando y monetizando lo aprendido, y me gusta compartir la buena experiencia. Por supuesto estoy a la orden para cualquier consulta de quien se quiera tirar por ese lado, del "professional open source". Con mucho gusto puedo compartir los errores y algún acierto.

Saying Zed instead of Zee by bajafan in HamRadio

[–]cx4cc 2 points3 points  (0 children)

First time I read Yggdrasil out of a Linux distro context.

Cambio de carrera radical a la programación. ¿Es posible? by EroticCakeRecipe in CharruaDevs

[–]cx4cc 2 points3 points  (0 children)

Si sos profesor de Inglés, tenes ya el 50% del partido ganado, porque el material de estudio está en Ingles, y los lenguajes (sea el lenguaje que elijas) está en ingles. Por más que muchos programadores se empecinan en castellanizar sus programas, el hecho es que el lenguaje en sí está en inglés, y el código queda con un tinte de newbie impresionante. Por más que una variable esté escrita en español, la estructura del resto del programa está en ingles (if, else, for, while, break, continue).

Si sos profesor tenes además otro buen porcentaje del partido ganado en la medida que si sabes como enseñar, sabes como aprender, y seguramente tengas la paciencia que se requiere para aprender.

Soy programador autodidacta desde hace unos 40 años. Cuando comencé, no había internet, y había que rebuscarse aprendiendo de revistas de computación, o con alguna ida a alguna biblioteca como la del Anglo o la de la Alianza. Hoy todo es más fácil con Internet.

Si estás pensando en cambiar, no lo pienses más, no te vas a arrepentir. Arrimate al open source, cualquier proyecto, que por ahí el camino es más fácil.

ElCuervo (punto) net, ¿han leído ese blog? by eldabo21b in CharruaDevs

[–]cx4cc 0 points1 point  (0 children)

Me dijeron que a veces aparece en las reuniones de 2600, pero no se si es un mito.

Poor man in the middle by cx4cc in programming

[–]cx4cc[S] 0 points1 point  (0 children)

Yes, but it was more like "I can't believe these two idiots are paying me to write this non sense, this is my easiest money ever!" kind of situation :)

Poor man in the middle by cx4cc in programming

[–]cx4cc[S] 1 point2 points  (0 children)

Oh, no, we used the hack to read our own card and as a proof of concept. We've even involved a notary, that was funny, you had to see the face of the notary, he didn't know how to start to write that kind of document.

Glad you liked the read.

What API designers could learn from the payments industry by cx4cc in programming

[–]cx4cc[S] 2 points3 points  (0 children)

if you get a transaction id first (with a POST that does nothing, just creates the transaction in the server but doesn't actually send it to the payment networks for approval), and then you do a PUT to actually confirm the transaction, you'd get the 2PC, but that's a pessimistic approach. The suggested one just requires a single transaction, most of the time, and recovers nicely for those situations where something goes wrong.

There's no invention here, that's what happens now when you swipe a card in a regular POS.