summaryrefslogtreecommitdiff
path: root/content/entry/inception-rejecting-discord-drawio-and-visual-studio.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/entry/inception-rejecting-discord-drawio-and-visual-studio.md')
-rw-r--r--content/entry/inception-rejecting-discord-drawio-and-visual-studio.md10
1 files changed, 5 insertions, 5 deletions
diff --git a/content/entry/inception-rejecting-discord-drawio-and-visual-studio.md b/content/entry/inception-rejecting-discord-drawio-and-visual-studio.md
index 2436a99..94f6d9f 100644
--- a/content/entry/inception-rejecting-discord-drawio-and-visual-studio.md
+++ b/content/entry/inception-rejecting-discord-drawio-and-visual-studio.md
@@ -25,18 +25,18 @@ Project II was a similar story to project I except that I was in a group of thre
Again, it was awkward asking everyone to use Riot when they had never heard of it. I had a hard time finding a soft way to propose using it when I wasn't willing to accept a proprietary alternative. But my two group members were willing to use it. I again was able to convince them to exchange device keys in person for an encrypted room. So far, all was well.
### Documentation
-And so we began our documentation. This time, I was not our project lead. Another team member had more time to work on the project, so he took the initiative. He was very diligent and before we had even started writing code, we ended up with an estimate of close to eighty classes total. We had polished UML diagrams for all those classes including package diagrams and UML class diagrams and a three tier architecture established before a single line of code was written. I was very satisfied with that. For my diagrams, I used Dia[6] and my teammates used draw.io[7]. Dia was difficult and annoying to use as far as alignment goes. It might have been due to my inexperience never having used it before, but I used it anyway for freedom. Draw.io is not free software. It uses proprietary Javascript and requires a software license to purchase the app. Nevertheless my teammates were able to at least export their diagrams in png format so I could see them using free software. Our project lead claimed to have used Dia before and said it was too inconvenient usage-wise.
+And so we began our documentation. This time, I was not our project lead. Another team member had more time to work on the project, so he took the initiative. He was very diligent and before we had even started writing code, we ended up with an estimate of close to eighty classes total. We had polished UML diagrams for all those classes including package diagrams and UML class diagrams and a three tier architecture established before a single line of code was written. I was very satisfied with that. For my diagrams, I used Dia[6] and my teammates used draw.io[7]. Dia was difficult and annoying to use as far as alignment goes. It might have been due to my inexperience never having used it before, but I used it anyway for freedom. Draw.io is not free software. It uses proprietary JavaScript and requires a software license to purchase the app. Nevertheless my teammates were able to at least export their diagrams in png format so I could see them using free software. Our project lead claimed to have used Dia before and said it was too inconvenient usage-wise.
-The deliverables for the project were scheduled in such a way that we had to do all the documentation before starting the project, and continually revise documentation as the project went along. Our documentation was so effective that I trust we could've handed it to any other group in the class, and they would have been able to implement our entire design. Some of the documents were done using Google Docs regrettably. I strongly suggested using Sandstorm[8] instead since it is free software and doesn't require proprietary Javascript in the browser. That did not end up happening since I had other classes to worry about and we were crunched for time. If I could retake the class, I would have created a separate shared repo for documentation and used a word processor for editing instead. Our team lead did not see this as viable since he felt we needed to be able to see everyone else's changes in real time. There was a lot of talk about using Sandstorm, but I was never able to make it happen.
+The deliverables for the project were scheduled in such a way that we had to do all the documentation before starting the project, and continually revise documentation as the project went along. Our documentation was so effective that I trust we could've handed it to any other group in the class, and they would have been able to implement our entire design. Some of the documents were done using Google Docs regrettably. I strongly suggested using Sandstorm[8] instead since it is free software and doesn't require proprietary JavaScript in the browser. That did not end up happening since I had other classes to worry about and we were crunched for time. If I could retake the class, I would have created a separate shared repo for documentation and used a word processor for editing instead. Our team lead did not see this as viable since he felt we needed to be able to see everyone else's changes in real time. There was a lot of talk about using Sandstorm, but I was never able to make it happen.
-Another possible free software self-hosting alternative to Google Docs would have been an Etherpad[9] instance, but public Etherpad instances did not have the plugins necessary for nicely formatting documents unless I self-hosted and installed them myself. And I guess I didn't have the time to set up an instance or something. But I did put a few hours of work in trying to get it working. It was very discouraging to be working so hard on something very tangientially related to our actual project. I wasn't able to move the group toward using Etherpad either. I ultimately ran out of time trying to make it work. I was the one pushing to use something besides Google Docs mainly due to its proprietary Javascript.
+Another possible free software self-hosting alternative to Google Docs would have been an Etherpad[9] instance, but public Etherpad instances did not have the plugins necessary for nicely formatting documents unless I self-hosted and installed them myself. And I guess I didn't have the time to set up an instance or something. But I did put a few hours of work in trying to get it working. It was very discouraging to be working so hard on something very tangentially related to our actual project. I wasn't able to move the group toward using Etherpad either. I ultimately ran out of time trying to make it work. I was the one pushing to use something besides Google Docs mainly due to its proprietary JavaScript.
-After I had been defeated unable to move the group to something besides Google Docs, I gave in to using Google Docs which I was able to use anonymously without an account. I just used the shared link. But I still had to run the proprietary Javascript in the browser which I now regret giving in to. This failure was very discouraging and harmed my motivation for doing the project. I discussed this extensively with the project lead but we weren't able to bypass the issue. After this failure, I didn't know the worse was still yet to come.
+After I had been defeated unable to move the group to something besides Google Docs, I gave in to using Google Docs which I was able to use anonymously without an account. I just used the shared link. But I still had to run the proprietary JavaScript in the browser which I now regret giving in to. This failure was very discouraging and harmed my motivation for doing the project. I discussed this extensively with the project lead but we weren't able to bypass the issue. After this failure, I didn't know the worse was still yet to come.
### Testing Framework
We had to use a testing framework for the current project iteration to test our code. Of course our professor's hand-me-down specification and slides insisted that we use MSTest. I did some background research because it sounded proprietary. I found it was available for MonoDevelop, but when I went to install it, it asked me to read and sign a license agreement first. I believe it was proprietary based on the terms it was asking me to agree to when I tried to install it through MonoDevelop. I clicked decline. Instead of installing it, I dug in my heels and went to the professor after class. Regrettably, I did not mention the idea of free software very explicitly. Instead I talked about how I wasn't willing to agree to the terms so MonoDevelop could run the tests. He chuckled when I mentioned I wasn't using Visual Studio as the project requirements laid out, preparing for a potentially awkward conversation. And then when I mentioned not wanting to use the testing framework, he seemed perplexed. He told me I could write the unit tests and have a team member who has Visual Studio run them, thus bypassing agreeing to the license. This didn't satisfy me though, because it just passes the buck off to someone else. I definitely wasn't going to rely on my team members to agree to something I myself wouldn't. I let him know that I felt his idea didn't really solve the issue for me. I asked Professor X if I could use the NUnit testing framework instead, a libre library. He told me to ask the grader.
-So I emailed the grader explaining in detail my ethical concerns about MSTest. He got back to me promptly admitting that he did not know about the ethical issue and would be willing to accomodate me given that NUnit could work in Visual Studio. It could, so I wrote my tests for our code using NUnit. I even rewrote some of our tests that had been written in MSTest into NUnit to increase the freedom of our project which wasn't too difficult. I had successfully dodged what could have became a freedom issue. I also discussed this with our group. They continued writing the unit tests using MSTest.
+So I emailed the grader explaining in detail my ethical concerns about MSTest. He got back to me promptly admitting that he did not know about the ethical issue and would be willing to accommodate me given that NUnit could work in Visual Studio. It could, so I wrote my tests for our code using NUnit. I even rewrote some of our tests that had been written in MSTest into NUnit to increase the freedom of our project which wasn't too difficult. I had successfully dodged what could have became a freedom issue. I also discussed this with our group. They continued writing the unit tests using MSTest.
### IDE
I thought I would be able to use MonoDevelop as before without any issues. I had solved the issue of the testing framework. What more issues could arise? The database. The instructions for the database in the database tier of our three tier architecture were written to explain how to use the SQL database in Visual Studio. It used libraries that only worked in Visual Studio if I recall correctly. This caused an inner conflict for me. I had never failed a class before, but I knew the professor wasn't going to rewrite the specifications in the middle of the project and it would be too much for the grader to try to get something else working and too much for me to research another solution. I talked about this issue ad nauseum to our group lead, who was sympathetic but tried to still convince me to just write the database anyway. I wasn't able to get him to really make sense of the freedom issue despite sending supporting links from the FSF website to explain my position. After heated debate, we eventually came to the compromise that I would only work on the part of our program that did not include the database. I would work on the other two tiers; the controller and graphical interface. I now regard this compromise as a mistake.