Wednesday, July 26, 2017

7/26

Today I'm a bit concerned with something involving PRIME. We have to reach 120 hours in order to get credit for the internship. However, a few days ago, Mrs. O'Loughlin sent all of us an email which included her saying that she would give everyone 20-25 free hours for attending the orientation and other events, meaning that my hours would then be at around 128, giving me more than enough that I need. However, when I emailed Mrs. O'Loughlin my logs from last week, she said the following:

Thanks Eric. If you work 32 hours this week, you will have put in 108 hours at your internship. Have you gone to any meetups or worked from home?

Mrs. O'Loughlin

Sent from my iPhone

I haven't done either of these things, but it seems to me that she should know that she's giving us 20 hours, and that would put me over the line. Weird.

Anyway, nothing new today. I kept working on my documentation. I also researched some interesting JavaScript stuff that I'll talk about on Friday.

7/25

There's not much to say for what I've done today. Finishing the documentation is what I'm working on by default, and I've got a long way to go. One thing that I've been investigating today is the power of auditing a vote. What I first thought that it was was a way for you to avoid your vote getting counted, but from what I'm discovering now it is a little more complex than that. It seems as though it also doubles as a way to check if your vote has been encrypted correctly, and there may be even more to it. I've made note of this in my documentation.

There really isn't much more to what I've done today. I'm hoping to finally finish my documentation tomorrow.

Monday, July 24, 2017

7/24

Mr. Elkner talked to all of us today about finishing the internship with a 'deliverable.' Obviously, this isn't much trouble for me considering the fact that I have spent a large amount of time writing this documentation that anyone will be able to read. Mr. Elkner also told me that I should email my documentation to Helios after I finish to gain recognition. However, I still have to actually finish it first, so I'm still working on improving and creating the final edit.

I ran through another election today just to make sure that everything I have is correct, and to make the necessary changes. I want to be sure that it's possible to use my documentation as a guide to create an elections if you have absolutely zero existing knowledge. Although I might have thought that I was finished last week, in reality, I was far from it.


Friday, July 21, 2017

7/21

Today, I'm still working on my documentation. I should be able to finish it today, and after that, Mr. Elkner told me that I should add it to the GitHub repo. I've never really used GitHub before so it'll be a learning experience for me, and I'm excited.

I got an email from German saying that we should test Helios more at 2:00, so that sounds like a good idea. German talked to me yesterday about deleting elections, which I don't think is possible, however I mentioned the archiving system, which I am still unsure about, so I hope we can investigate that today.

Nothing particularly eventful happened today, but I did get my documentation done! Here's the link to the Gist:  https://gist.github.com/ericsaenz/40ba8d373ae7cadda867b444f1ab6489

I'm still not sure what adding this to a repo would entail, but I'll probably find out next week.

Thursday, July 20, 2017

7/20

I'll begin today by working more on my Helios docs, which have a great deal to go before they are completed. However, at 1:30, I'm going to make an election and actually have some people vote on it this time.

Mr. Elkner just gave me a good suggestion- convert my Helios documentation to markdown. I've been reading up on markdown, and it's apparently just a simple language that converts easily to HTML, and is often used in tandem with GitHub. Working in markdown for the first time is very easy. I'm using a Github Gist, which I believe is essentially a quick way to write or paste some code, then upload it. Virtually all I have to change is putting asterisks around what I want to bold and making each section a header. In addition, I had to use <br> since lines are not automatically broken and use asterisks for bullet points. However, I'll save this as a draft since I'm not finished writing all the documentation yet.

I've made an incredibly important new election based on pizza toppings. 
I've made another less important poll based around random questions.

The tests went extremely well. German fixed both the creation error and the trustee error, so nothing of that sort was encountered in this run through.

I finished the day by continuing work on my documentation. Mr. Elkner told me that it would be a good idea to add it to GitHub, so I'll do that when I'm completely finished.

Tuesday, July 18, 2017

7/18

Today, I'm continuing on my project to document Helios. The first strange thing that I'll jot down is that I get an error page when I try to add Helios as a trustee. In addition, it's impossible to get to your election page after creating an election, meaning you have to go through the home or admin page to get to it. Today, another intern in the PRIME program has joined me on the Helios project. As German hasn't appeared yet today, all she has been doing has been learning about Helios and has created some test elections. Something that this other intern did was create a question that has 3 as its minimum answers and 1 as its maximum, which, strangely enough, did not induce an error. That is, until I actually tried to vote it said election, when my vote could not even go through because I hadn't selected enough answers. Right there is two possible ways that Helios should reject a question: If the maximum possible selections is larger than the minimum, and if the minimum is larger than the total amount of possible answers.

German hasn't been online yet today, however I don't think he's really needed, aside from being more knowledgeable about Helios than me. We have enough people to test elections and with admin access there's not much that I'm not able to do. However, as I'm busy writing the docs, I don't really have anything that I can tell her to do besides learn and mess around with Helios.

German came online, and I'm talking to him about some of the errors I've been finding with Helios. However, he says that he's not the right person to ask, so I've compiled a list of errors/bugs at the bottom of my documentation so that I'll have them for later.

I've written a lot on my documentation today. On Thursday, I'll finish the trustee instructions and move on to the voter instructions. Also on Thursday, I'll finally create an election that the six of us here can vote on.

 Here's my progress so far: https://docs.google.com/document/d/1hiGP8tRGXHVu6DmnlfVKjIGxE-cPzGOuG3FhQrVj7fQ/edit



Monday, July 17, 2017

7/17

Mr. Elkner's comments and what he told me in person today has given me some good ideas on what to write for my PRIME essay that is due on Wednesday. Since I don't have much to do in regards to Helios right at this moment, I'll try writing a draft, and I'll paste it here when I'm done.
The internship that I am at is likely the most unexpected of the PRIME sites. Although we were originally going to work at the Patent and Trademark Office, unfortunately that plan wasn’t able to come to fruition. Instead, I, along with three other students, have been working with NOVA Web Development, an IT business that offers web design assistance, at the Arlington Career Center. For the majority of the internship, I have been researching Helios voting, a system that provides a way to create online elections that are secure, private, and verifiable by using advanced cryptography that hides each vote until the total is tallied, meaning that deciphering an individual’s vote is virtually impossible. Although NOVA’s Helios project is in its infancy, it eventually hopes to offer assistance with it to its clients.
Something important that this experience has taught me is that, when working a job, everything is not laid out in a perfect schedule. Here at the Career Center, my work depends on communication with other NOVA Web Development members through IRC, (Internet Relay Chat) so sometimes I have a lot of work on my plate, while at other times, whether it be because someone that I am working with is offline or has a different schedule, I am forced to look for other worthwhile projects to work on. Not only has it been a learning experience based on testing Helios and other topics that Mr. Elkner discusses with us, but I have taken home valuable workplace skills.
I think it took me longer to sand it down to exactly 250 words than to write the actual essay.

Today when I arrived, Mr. Elkner told me that I was going to start with virtual machines this week. At noon, he said that he's going to set it up on my computer. From what I know, we are going to use something called CiviCRM in order to bulk email voters in a Helios election, since the current server does not have that functionality. As it's not quite noon yet, I decided to check up on NOVA Web's Helios page. It seems that the HTML layout has been updated, so it now looks a bit different. In addition, it seems that an election has been created and has been featured on the front page. Four people have voted on it, however I cannot check who as each name still shows up as "User." I believe that I'm supposed to be the fifth voter, but I'll ask German when he gets online later today.

Another interesting thought that Mr. Elkner made me aware of is that there's not very good documentation about Helios, aside from, obviously, the source code, which not everyone is able to read. An interesting project might be to write some instruction for the system, but I'm not sure if I'm familiar enough with it to actually do that yet.

Ultimately, however, I think I'm ready to start writing it, however I'll need additional help along the way. Here's the link to my work so far: https://docs.google.com/document/d/1hiGP8tRGXHVu6DmnlfVKjIGxE-cPzGOuG3FhQrVj7fQ/edit?usp=sharing