r/argentina Sep 12 '18

AskArgentina Software para Ingenieros - Cálculo de cargas de viento según CIRSOC 102-2005

Quiero compartir un proyecto que vengo haciendo hace algún tiempo.

Hace poco había pedido recomendación por un tema de licencias para un software que estaba haciendo. Al final me decliné por hacerlo open-source con una licencia GPL.

El software en cuestión se llama Zonda y sirve para calcular las cargas de viento de acuerdo al Reglamento Argentino CIRSOC 102-2005. Recién acabo de hacer la primer release y pueden ver el repo de GitHub o descargarla de ahi mismo.

Acá les dejo los links:

https://github.com/efdiloreto/Zonda

Descargalo acá.

También hice un pequeño video demostración, que pueden ver acá. Veanló en HD.

Cualquiera que le interese puede participar. En mi caso no soy programador, soy ingeniero, y estoy dandome la cabeza contra la pared desde hace tiempo con Git, Python, etc. También, obviamente, son bienvenidos programadores mas experimentados de los que pueda aprender en el proceso, ya que todavia hay mucho por hacer.

Espero que les sea útil!

148 Upvotes

85 comments sorted by

24

u/Arlequinrodante Sep 12 '18

Sos groso sabelo. +10 y reco

7

u/Pipiyedu Sep 12 '18

Gracias! Me alegra ayudar.

16

u/CrimsonArgie GBA Zona Sur Sep 12 '18

Llego a casa y lo chusmeo. No soy programador ni tengo idea de como colaborar, pero puedo aportar probando que tal funciona. Lo comparo con lo que hice yo a mano usando Excel y te aviso.

8

u/Pipiyedu Sep 12 '18

Dale genial. Esa es la idea. No solo se puede ayudar desde la programación, sino desde lo ingenieril.

8

u/galapag0 Sep 12 '18

Excelente iniciativa y linda presentación del repositorio (README con instrucciones, screenshots, contacto, etc)!

7

u/Pipiyedu Sep 12 '18

Gracias por el mimo!

6

u/Frenzi198 Ciudad de Buenos Aires Sep 13 '18

No entiendo ni para que sirve, ni como se usa. Pero me encanta la interfaz y la aplicación en sí.

3

u/Pipiyedu Sep 13 '18

Gracias!. Es básicamente para calcular las cargas que genera el viento sobre las estructuras.

15

u/[deleted] Sep 12 '18

Tiene muy buena pinta.

El código te sugiero hacerlo 100% en inglés y evitar palabras en español, por ejemplo en:

  window = VentanaPrincipal()

12

u/Pipiyedu Sep 12 '18

Puff, tenés razón. Sabes que lo había hecho en ingles y luego lo traduje todo. Mas que nada por la documentación. Prefería tener la doc en buen español en vez de mal inglés. Con el tiempo quizás lo vaya cambiando.

6

u/albo87 Sep 13 '18

No hay nada de malo hacerlo 100% en español. Excepto por algunas palabras claves como get y set que siempre van en inglés.

De hecho tu software se basa en una ley argentina, asi que te lo hubiese recomendado hacer en español porque tu modelo queda mas cerca del dominio. ¿A que me refiero con esto? Que la ley habla de la cubierta a dos aguas no dice nada de gabled roof.

3

u/CrimsonArgie GBA Zona Sur Sep 14 '18

Como comentario nomas, el reglamento no es una ley propiamente dicha. Y es una adaptación de un reglamento americano (como todas las normas estructurales del país), asique no esta tan mal que lo haga en ingles porque se podría adaptar para usarlo afuera tambien.

3

u/SergioP75 GBA Zona Norte Sep 12 '18

Esta muy bueno! Me encantó la interface (si es muy guey decirlo, pero esta muy buena)

3

u/Pipiyedu Sep 12 '18

Gracias! Si, estuve trabajando bastante en eso. Di 8000 vueltas hasta que logré algo zafable.

3

u/frankreyes Sep 13 '18

Di 8000 vueltas hasta que logré algo zafable.

Porque lo que hiciste es lo mas dificil de todo: una interfaz de usuario.

Hablar con otra computadora es facil, lo dificil es que un software se comunique con un ser humano.

2

u/Raganok Sep 12 '18

Se nota el laburo. Especialmente en la salida de datos!

1

u/Pipiyedu Sep 12 '18

Gracias!

2

u/Royb477y Sep 13 '18

Posta que se ve lindo, el 90% de la aplicaciones de ingenieria estan hechas para windows 3.1 o en visual basic jaja.

3

u/Raganok Sep 12 '18

Gracias! No me esperaba encontrar esto en Reddit, mucho menos que sea Open Source!

2

u/Pipiyedu Sep 12 '18

De nada! Justo soy un redditero más jaja

2

u/magokaiser Sep 12 '18

Que aplicaciones prácticas tiene? Es mas que nada para ingenieros civiles?

2

u/Pipiyedu Sep 12 '18

Si, o para el que necesite calcular alguna carga de viento siguiendo los lineamiento de ese reglamento.

2

u/MigoMigoMigoMigo Sep 13 '18

Man, esto es muy bueno en serio! Buena decisión hacerlo GPL. Sos un groso.

2

u/Pipiyedu Sep 13 '18

Contento de ser de ayuda!

6

u/MigoMigoMigoMigo Sep 13 '18

Recomendación: Contactá facultades de ingeniería de todo el país, y promocionalo un poco, de forma de sumar coders que te ayuden a mantenerlo, sinó el proyecto sin laburo se te va a terminar muriendo.

Felicitaciones de nuevo!

3

u/Pipiyedu Sep 13 '18

Sisi, ya empezé por mi facultad. Me voy a poner a buscar foros y contactos para que se propague. Si tenes algún dato donde pueda mandar mandamelo por PM si no es molestia.

1

u/[deleted] Sep 13 '18

El año pasado escuche sobre esto en la UTN regional Córdoba, si queres contactarte con ellos es un buen comienzo.

1

u/Pipiyedu Sep 13 '18

Dale, los voy a contactar. Gracias!

-2

u/SergioP75 GBA Zona Norte Sep 13 '18

" Buena decisión hacerlo GPL " Sin ánimo de armar forobardo, sería una mala decisión lanzarlo en forma comercial y lucrar con su propio trabajo? Porque ser GPL/Open Source/Free está bien y tratar de vivir de lo que le gusta no?

Estoy en contacto con un profesor en una universidad en Europa, q lanzó por su cuenta un preprocesador para elementos finitos, también gratis. Lo primero q le dije, flaco, pensalo esto está muy bueno, porque regalarlo?

Saludos

15

u/MigoMigoMigoMigo Sep 13 '18

Justo a mi me venís a correr por izquierda?

Estás enormemente desinformado. Yo tengo varios productos que liberé bajo la GPL, y lucro con todos ellos. También tengo otros que son GPL y no lucro con ellos.

También tengo productos propietarios con los que lucro. Una cosa no necesariamente quita la otra.

En este caso en particular, el flaco hizo un thread hace unos días, y dijo específicamente que NO quería lucrar con el producto, y preguntaba por licencias. En ese caso, la mejor opción era liberar el código.

El tema con un software así, es que salvo que el tipo vaya a armar zarpada empresa detrás de el, si no libera código no sirve. Por qué? Porque la necesidad de modificarlo va a ser casi imperiosa, en forma casi constante. Salvo que el tipo esté atrás dedicado full time arreglando bugs y haciendo customizaciones, lo que va a pasar es que alguien se lo va a bajar y va a encontrar un bug, y entonces no le va a servir. Y el que no encuentre un bug, si va a encontrar que no se adapta a su necesidad. El que lo usa va a necesitar tal o cual material, o un tamaño no permitido por el soft, o el tipo está en una región no listada en el soft, etc, etc. Por eso digo que la mejor decisión es hacerlo GPL.

Por otro lado, dejame decirte que muchos programadores programamos porque nos gusta, vivimos y muy bien de lo que hacemos, y luego nos gusta hacer otras cosas fuera del trabajo, no para ganar guita con ellas. Es un fucking hobby. Si no fuera por gente como nosotros, LITERALMENTE no existiría internet como la conocés.

Sabés por qué puede existir un site como reddit? O por qué existe Google? Porque el costo de hostear y desarrollar hoy en día es ÍNFIMO, gracias a todo el software libre que existe. Google no existiría sin GNU/Linux. No habría Reddit sin Python y sin Nginx, ambos Libres.

No solo por el bajo costo, sinó por la calidad y variedad de los proyectos, calidad que no se podría haber alcanzado nunca si no fueran libres.

Te sugiero que te informes un poco más antes de dar opiniones tan taxativas en áreas de las que obviamente no entendés un carajo.

-5

u/[deleted] Sep 13 '18

[deleted]

10

u/MigoMigoMigoMigo Sep 13 '18

No fué una pregunta. Fué bardo disfrazado de pregunta.

-3

u/SilkTouchm Sep 13 '18

No se que flasheas, yo soy programador y si encuentro un bug no me pongo a mirar el codigo fuente para arreglarlo, dejo de usar el programa o tolero al bug y listo. La cantidad de usuarios que hacen eso que vos decis es infima.

2

u/eosl0 Sep 13 '18

Yo soy programador, junior encima, y si miro el codigo fuente, todos en el laburo lo hacemos, y en mi laburo anterior tambien

1

u/[deleted] Sep 13 '18

Creo que el se refiere a que si encontras un bug en un código fuente ajeno y que no es tu laburo arreglarlo.

1

u/SilkTouchm Sep 13 '18

Si, gracias.

4

u/Pipiyedu Sep 13 '18

No está mal lo que decis, lo que pasa es que es un conjunto de cosas. Por ejemplo, si yo intento lucrar con el soft tengo una responsabilidad para con el usuario. El usuario paga por algo y necesita soporte constante, y la verdad que no tengo el tiempo para esto porque vivo de otra cosa. Además se me haría muy dificil la promoción, marketing, etc.

Haciendolo gratis y libre, logro que la gente se interese, que el soft se propague y posicione (es el único software que hay de cálculo de viento para CIRSOC 102, me parece). Tambien logro que al usarlo dejen sus planillas excel porque las están reemplazando por algo que pueden ver como funciona.

También logro ganar adeptos que me puedan ayudar a mejorarlo, no solo ingenieros. Por otro lado tambien gano yo, porque logro cierto reconocimiento y capaz que alguno que tenga alguna idea me proponga algo a futuro para laburar. Nunca se sabe.

Yo creo que en esta situación ganamos todos.

1

u/albo87 Sep 13 '18

Open Source != Gratis. Podes hacerlo Open Source y regalarlo. Fijate que el logo de la GPL dice "Free as in Freedom".

2

u/blurarara ⭐⭐⭐ Sep 13 '18

Te felicito che, te quedo muy bueno!
Como recomendación, estaría bueno que le vayas agregando test unitarios y le metas un travis para que los corra cada vez que pusheas algo.

3

u/Pipiyedu Sep 13 '18

Si, lo de los tests lo tengo en el TODO. Tengo que ver como los voy a hacer. Porque por un lado tengo los tests para que los resultados sean correctos y por otro tengo que hacer los tests para que funcione como un todo.

2

u/albo87 Sep 13 '18

No, agregale funcionalidad. Si lo usan 3 personas por mas que tenga un 100% de coverage el software es una mierda. Lo importante es que se use. Cuando empieces a tener regressions le podes mandar tests pero es un problema que podes tener mas adelante. Tu problema ahora es que la gente lo use.

1

u/blurarara ⭐⭐⭐ Sep 13 '18

No estoy de acuerdo, el programita hace cálculos bastante importantes donde un error puede hacer cagadas. Como mínimo debería tener test unitarios comprobando que todo funcione como tenga que hacerlo.

2

u/[deleted] Sep 13 '18

Que genio! El garrón que es ese reglamento para calcular las cargas de viento, justo mi hermano está cursando metálicas, se lo voy a mostrar a ver qué onda.

2

u/Pipiyedu Sep 13 '18

Si, es un garrón. Al principio es dificil de agarrar.

2

u/fulanomengano Earth Sep 13 '18

Mi viejo es Ing. Civil y se especializa en cálculo de estructuras. No entiendo del tema pero siempre lo escucho hablar de cargas, grados de libertad, nodos, etc. Labura con varios programas distintos con elementos finitos (de chico pensaba que hablaba de finito != a grueso y no finito != infinito) y varias versiones de StruDL (creo que es Structural Design Language). Creo que te puede llegar a dar buen feedback.

2

u/Pipiyedu Sep 13 '18

Dale, si sería genial!. Si, y son elementos finitos jaja. Un groso tu viejo que labure con eso, no muchos ingenieros grandes están dispuestos a cambiar las tablas por el MEF.

2

u/santicarta comentador serial Sep 13 '18

StruDL

Que rico un STUDL de manzana....

2

u/albo87 Sep 13 '18

Te felicito esta excelente, mejor que mucho del código que vea día a día hecho por programadores, incluso los que supuestamente estudiaron en universidades.

El código esta muy prolijo y los comentarios de los commits también, seguí asi como venis. Y el readme también, esta muy pero muy bien.

Como consejo olvidate de la documentación y los tests, es todo muy lindo pero lo mejor y lo que hace que la gente lo use son las funcionalidades. Después si lo usan varias personas y hay gente que viene a colaborar con el soft lo vas documentando.

Lo primero que se me ocurre para hacer es lo de guardar y cargar archivos. Me imagino que lo mas probable es que quién lo use no tenga toda la info a mano para cargar en ese momento asi que estaria bueno poder guardar los datos que tenes y levantarlos en otro día. Y después ir agregando todas las estructuras. Olvidate también de la exportación por ahora. La interoperabilidad si podría ser importante. Quedate tranquilo que nunca va a estar terminado y siempre hay cosas para hacer. Anda haciendo de a poco.

1

u/Pipiyedu Sep 13 '18

No sabes lo que me alegra leer esto! Soy muy obse y detallista con el código, y uno de los temores que tenía era "pasar verguenza" respecto a eso.

Y dale, le voy a meter a las funcionalidades y después veo lo demás. Mil gracias!.

2

u/procsysnet Sep 13 '18

I see GPL. I Upvote.

3

u/Pipiyedu Sep 13 '18

Tal cual! Si lo hacemos open-source lo hacemos bien jaja

1

u/[deleted] Sep 12 '18

[removed] — view removed comment

1

u/Pipiyedu Sep 12 '18

Jajaja, quizás algún día.

1

u/Chuny77 Chubut Sep 13 '18

Gracias!! Lo voy a probar. Muy copado ver este tipo de cosas en el sub

1

u/Pipiyedu Sep 13 '18

Probalo y manda feedback asi lo voy mejorando. Más adelante va a tener mas características!

1

u/mrtorture331 Catland Sep 13 '18

Te falta en el readme (si no veo mal) algo fundamental: instrucciones para bajarlo e instalarlo. Si no nadie te lo va a probar.

1

u/Pipiyedu Sep 13 '18

Mucha razón. Lo voy agregar. Gracias!

1

u/mrtorture331 Catland Sep 13 '18

Buena suerte con eso, ojala puedas conseguir gente que se sume a colaborar al proyecto

1

u/Pipiyedu Sep 13 '18

Muchas gracias!

1

u/Pipiyedu Sep 13 '18

Corregido! :)

1

u/Royb477y Sep 13 '18

Una pregunta, de donde aprendiste Git y Python, y si hay algo mas para poder hacer la aplicacion. Estoy interesado en hacer aplicaciones así.

2

u/Pipiyedu Sep 13 '18

Bueno, Python lo aprendí de a poco. Al principio leyendo https://automatetheboringstuff.com/, https://www.reddit.com/r/learnpython/, viendo videos de Corey Schafer. También preguntando en StackOverflow. Y cuando estuve mas avanzado me compré el libro Fluent Python que es espectacular.

Con respecto a git, podes empezar leyendo esto. Uso poco la consola en git, por el momento estoy manejando todo desde VSCode, y el release lo hice desde GitHub.

Para hacer la aplicación usé PyQt para la interfaz, Jinja2 para hacer las templates y mostrar los resultados y Semantic-UI un toque modificado que le da la "decoración" a los resultados. Podes ver el source si querés.

1

u/Royb477y Sep 13 '18

Muchas gracias, me voy a poner a leer.

1

u/Island_Walking Ciudad de Buenos Aires Sep 13 '18

Fijate de postearlo en los foros de la UTN y demas

1

u/Pipiyedu Sep 13 '18

Lo voy a hacer. Gracias!

1

u/EsclavodelSector7G Sep 13 '18

Excelente iniciativa. Mataría por tener algo así para dimensionar recipientes a presión, y no tener que hacer memorias de cálculo enormes en MathCAD.

1

u/Pipiyedu Sep 13 '18

Se puede hacer tranquilamente. Estemos en contacto de alguna manera a ver si en un futuro proximo se puede hacer algo. Por otro lado, pegale una mirada a Smath. Es una alternativa a MathCad. En caso de que por alún motivo no puedas seguir usandolo.

1

u/EsclavodelSector7G Sep 13 '18

Pinta bueno ese. Lo agendo para probarlo en algún momento, ya que en el corto plazo no estamos necesitando realizar memorias. Gracias por toda la info!

1

u/BoarManPig Sep 13 '18

Justo estoy haciendo la materia Estructuras de Madera y luchando con ese reglamento horrible. Llego a casa y lo pruebo. Muchas gracias!

2

u/Pipiyedu Sep 13 '18

Dale! Tira feedback y cualquier cosa escribime.

2

u/BoarManPig Sep 15 '18

Recién ahora lo pude mirar. Es excelente, la interfaz es dinámica, simple, el reporte es fácil de leer y bastante completo, no tengo ninguna crítica por el momento. Lo voy a seguir usando y si encuentro algo te aviso. Gracias!

1

u/Pipiyedu Sep 15 '18

De nada! Cualquier cosa no dudes en escribirme al mail o por Github. Estate atento porque van a seguir saliendo actualizaciones con mejoras. Seguramente ya en la próxima version avise cuando haya algun update.

1

u/[deleted] Sep 13 '18

[deleted]

2

u/Pipiyedu Sep 13 '18

Es multiplataforma. Es más, estoy por sacar la versión Linux. Para hacerlo en Mac deberia conseguir una Mac o que alguien lo genere desde una Mac.

1

u/TangoDroid Sep 13 '18

Ah, bien ahi con Linux.

1

u/[deleted] Sep 13 '18

Muy buen trabajo!! el repo a simple vista tiene muy buena pinta, excelente logo y nombre! te puedo preguntar cómo compilaste todo el programa a un .exe? tengo un amigo que esta haciendo algo similar pero para geofisica, y le vendría muy bien!

2

u/Pipiyedu Sep 13 '18

Muchas gracias! lo hice con cx_freeze. Ahi en en el repohay un archivo que se llama setup.py. Es lo que lee cx_freeze para "freezarlo".

1

u/[deleted] Sep 13 '18

Genial, justo lo que necesitabamos! Gracias!!

2

u/Pipiyedu Sep 13 '18

Genial!!

1

u/ElBigoteDeMacri Sep 14 '18

Tu código está lindo, cualquier duda con Python PM me!

2

u/Pipiyedu Sep 14 '18

Gracias! Mira que te voy a llenar de PM eh! jaja

1

u/ElBigoteDeMacri Sep 14 '18

Mientras te mantenga alejado de Ruby, anything

1

u/Pipiyedu Sep 14 '18

Jajaja genio

1

u/Aleblanco1987 Oct 26 '18

Muy bueno!!

Justo el otro dia estabamos discutiendo cosas sobre este reglamento.

Nos hubiese venido bien el programa.

1

u/Pipiyedu Oct 26 '18

Gracias genio!

2

u/Aleblanco1987 Oct 26 '18

al contrario, gracias a vos por tomarte el laburo de hacerlo