Friday, October 24, 2014

Week 7: October 19th to October 25th

What I Did This Week:

- Studied PyTest and UnitTest more. In particular, I learned about the importance of fixtures.
- Consulted Freeseer documentation for contributors on Testing. Also consulted PR #619 and other sources on how Testing is currently done in Freeseer.
- Learned how profiles are created -- in particular, studied Profiles.py, including Profile and ProfileManager classes -- to understand how fixtures use them.

What I Plan to Do Next Week:

- Determine what, in practical terms, has to be tested in order to check whether my new functions in TalkEditor.py work as promised. (For that matter, how do I know if the test itself is valid?)
- Figure out how to write tests that involve a Table View.

Problems:

- Last week I was very sick: this week, I wasn't sick, but I was very busy, and I'll continue to be busy over the weekend. The SFU Choir has a retreat this weekend (9:00 AM Saturday straight to 5:00 PM Sunday), and there has been a surprising amount of preparation to do in the week leading up to it. For that reason, I will not be present at the Sunday Hangout.

Sunday, October 19, 2014

Week 6: October 14th to October 18th

What I Did This Week:

- Finished PR #605
- Studied ConfigToolWidget and a bit about how layouts and resizing works in Qt.
- Opened Issue 630 and PR 631, to create tests for my changes to the TalkEditor
- Studied PyTest and UnitTest
- Updated my Project Proposal to reflect my slight change in plans (specifically, my sudden interest in unit tests)

What I Plan to Do Next Week:

- Work on PR 631.
- In the process, learn more about PyTest and unit testing in general

Problems, past and upcoming:

- I've been very sick this week. It didn't help that I had a midterm and a couple assignments due this week. But I survived, and managed to get some stuff done this week.
- Next week, on Saturday and Sunday, I will be attending the Simon Fraser University Choir Retreat -- I am the Bass section leader, so it is important that I show up for this overnight trip. This means I will definitely miss the Sunday hangout (that's partly why I wanted to volunteer to take minutes this week -- I knew I wouldn't get a chance on the 26th)
- I was planning to meet with Ted Kirkpatrick (the professor representing UCOSP at SFU) this week, but I (unfortunately?) found myself with a ticket to see a lecture by the Dalai Lama on Tuesday at the same time. Whether we reschedule, or I just send him an e-mail update, remains to be seen.

Discussion:

Some people are embarrassed by things they wrote when they were 14 years old. I'm embarrassed by things I wrote a month ago.

When I wrote my Project Proposal (see: https://docs.google.com/document/d/1D98OpJsXvnOMHOWmZkRnb5Xp26Upv2jfMaMP3VYP3WQ) I guess I was thinking "Documentation! I'm good at writing stuff, so yeah, let's do that!" As it turns out, I did some coding, and it turns out I kind of like it -- the experience reminded me of why I enjoy programming in the first place.

When I wrote my project proposal, I was working under the assumption that I would fail at everything I tried. I still think that that's a good way to plan things: people are terrible planners, and it's impossible to predict how a program will evolve, so if you assume you'll come across huge roadblocks every step of the way, you'll come pretty close to predicting your progress on average. In that respect, I think my project proposal comes pretty close to a realistic timeline of what I wanted to do at the time. What I didn't expect was how much my interests would change. I still believe in good documentation, but now that I've had a taste of coding, I want more. That surprised me.

In the interest of keeping my promises, I will keep doing the documentation-related things I mentioned in my Project Proposal (which, when you get right down to it, doesn't add up to a whole lot of time). I'll have time to pursue my other interests within the project as well.

Monday, October 13, 2014

Week 5: October 5th to October 13th

What I Did This Week:

- Opened issue #618, involving using quotation marks in various fields in the Talk Editor.
- Discussed changes in PR #605 with Dennis Ideler, e.g. UI changes.
- Studied the Config Tool ant the Qt functions involved with it.
- Looked at the Get Started guide; didn't find anything worth changing at this time.

What I Plan to Do Next Week:

- Continue perfecting PR #605.
- Do some research on how installation works in general, i.e. what's the difference between the Freeseer that gets installed, and the Freeseer we run from the source? I suspect this information will be valuable to me long after I leave this project.
- See if I can get some basic understanding of the code the other students are working on.

Problems, past and upcoming:

- There were some disagreements about what the UI should look like when the user switches from one talk to another without saving the current talk. However, I believe we have reached a consensus about what it should look like now.
- In the past week, I had a number of assignments to do and meetings to go to, as well as a whole Thanksgiving weekend to prepare for and attend. This week, I still have some assignments to do and some midterms to study for. I believe I have kept my head above water so far. This week might not be my most productive. Time in itself is not too much of a problem -- I can easily put in 10 hours, but if I'm working on other things, the hours might not be as focused and productive as I'd like them to be.
- Due to a previous commitment, I will not be able to attend the October 26th hangout.

Discussion:

Not much to talk about this week.

Saturday, October 4, 2014

Week 4: September 28th to October 4th

What I Did This Week

- Clarified my knowledge about talkeditor.py in written form.
- Learned about QModelIndex and understanding the apply_changes and update_talk methods in talkeditor.py.
- Learned about QPersistentModelIndex, added click_talk method to talkeditor.py. Made PR #605.
- Learned about the Diff utility, so I would have a better idea of how Git worked. Added functional save/discard/cancel window to Talk Editor. Learned how long it takes for commits to be pushed and tested.
- Took screenshot of save/discard/cancel window for PR #605. Finished functionality for save/discard/cancel prompt, including having the prompt come up when the user decides to add a new talk. Learned how to set Gedit up so that pressing "tab" creates 4 spaces instead of a tab character, thus potentially saving me dozens of seconds of time in the near future.

What I Plan to Do Next Week

- Finish whatever changes I will inevitably need to make in PR #605.
- Take another look at the Getting Started page, with reference to the checklist in Issue #442. Consider possible changes to be made, with a focus on making the instructions clear and simple.
- As long as I'm on a roll with the Talk Editor, see if I can get anywhere in solving Issue #532 (Talks should not be unselected after being modified through the table view).

Expected Problems

- The coming weekend is Thanksgiving, and I'll be traveling to celebrate with my family. I am probably not the only one facing this conflict.
- I have a bunch of assignments due in the coming weeks -- I will work hard to balance the work in my different courses so that I don't fall too far behind in any of them, including this one, but it will be difficult.

Discussion

Whenever I write one of these blog posts, I make sure to look at my past blog posts as well as my Project Proposal to get some idea of what direction I'm headed.

Last week, I said that I would look at talkeditor.py and see how far I could get in solving #501. I think I did pretty well -- whether my solution is approved or not remains to be seen, but as far as I can tell, the solution does everything I intended for it to do. The solution came together much more quickly than I expected it to. Remarkably, in the schedule in my Project Proposal, this was the week I half-jokingly said I would have a "magical epiphany" which would solve whatever issue I was working on, and it seems like that's almost what happened. That said, I know I need to be prepared for the possibility that my changes aren't very good or that they conflict with other people's work -- this can be a harsh business sometimes.

I suppose it would have been nice if I had done a bit more communication with my team mates. I want to make sure I know what they're working on, so that I don't step on their toes -- and similarly, I'm starting to see why it's important to let them know what I'm working on, so they don't step on my toes. As far as I can tell, no major conflicts have come up so far, but I want to make sure it stays that way.

Apparently midterm evaluations are coming up. It's hard to enjoy being evaluated, as much as I know it has to be done. All I can say is, I have tried as hard as I can to be productive while keeping my blood pressure at a reasonable level. I am aware that my progress might seem slow, but the fact is that I have made progress. At the beginning of the semester, I was intimidated the prospect of editing preexisting code, and I had no idea how to use Git or any of the Python modules involved with Freeseer. Now I have some idea how to use Git, I have some familiarity with Qt, and I've made some of my own changes to the code with no sign of stopping.