Sunday, April 27, 2014

The Last Officially Required Weekly Post

Hey again,

This is the last post that is required of this class. I hope that I was able to give a bit of insight of how the class was and how I felt during it. I haven't really gone back and looked through my posts yet, so I also hope that they follow some sort of order and sense and that my ideas came across to you as intended.

This past week we had a guest lecture as well as the first round of presentations in class. The presentations on our project do not have a set format, but I think the first couple of groups set some standards for the rest of us. My group met up for a bit today to talk about our slides and prepare for our presentation tomorrow.

I hoped to fill the rest of this last weekly post with a grand summary of this class and my experience in it, but I received some terrible news that a dear friend of mine was killed by a drunk driver two nights ago. Any drastic change like this puts life into a different perspective, and this has affected me strongly. I am here, ready to graduate, and make this major change in my life, and someone close to me has just lost theirs while walking across a street. As they say, "you just never know," and you really cannot. So, while this blog is dedicated to writing about the experience of going through CS373, some real life events have crept in and taken up much of my head-space. This is part of my experience, even though it is not directly related to the course, and that is always a possibility when it comes to school. To wrap up, I will write a few lines about this class, and take some time to reflect on my own.

Overall, this class was great, I learned a lot, got to work with some really smart people, and I can say that I am proud of the work I have done during this course. I even have something to show for it, which is rare in the early CS courses. I feel privileged to have had Dr. Downing as an instructor, not only in this class, but another as well. He is a great teacher, and always offers insight to us students. And the feedback and knowledge of the TAs in the class were helpful when I needed it. Thanks.

And, thank you for reading. I hope you have a great experience in this class too. Take it!

~Sophie

Sunday, April 20, 2014

Week 14 - IDB3

Hey,

It's Easter Sunday, and it's the day before the second to last week of classes. I know I should be talking more about the previous week, and I will, but I thought it might be nice to put this post into some temporal context. I'd like to detail here an overview of the process one specific feature that my team worked on to give a bit of insight of working on this project. If you are interested in learning more about the process, I believe we will be posting our technical report on our site in the future. Check it out -> http://blooming-shelf-7492.herokuapp.com/

This past Thursday, the third and final iteration of our latest project, SBIDB, was turned in. The turnin for this project gave us the first major Heroku issue that we have had thus far, and therefore we were unable to turn it in as a working project on time. My team, thank them mucho, met up on Friday to debug what the issue was. As it turns out, we were able to turn in our project from our last commit on the due date and still get graded from that point due to an obvious bug in our Heroku deployment. After all of the commits and headbanging, it is really confusing as to why the build did not work out from the start, but I am very glad that it is up and running and looking as we hoped it would. 

For this iteration, we were to implement a search functionality to our site to search through the contents of our database, and return contextualized relevant information via the search. At first, we attempted to use an add-on to Heroku, SearchBox Elasticsearch. To use this with Django, you use a modular search package called Haystack. Well, long story short, we had a bear of a time trying to get these to work together, with our code, and deploy correctly on Heroku, and in the end we scrapped it. We searched for another method of implementing this beyond using the ORM of Django for ourselves. 

We found another package called django-watson to search, and found this to work very simply out of the box for a simple search. Upon testing this search, however, we realized that this module, while its documentation described some functionality that we desired, did not seem to offer what we were looking for in terms of searching for ForeignKey relations in our Django models, and therefore our SQL database. This, along with creating search results that display multi-word OR results gave us some added trouble when needing to fulfill our requirements and get this project turned in. So, we modified the search to offer us both single results of each word searched as well as the built-in ANDed results from django-watson.

To take this part of the story back to the beginning, we also added a highlight function to our search to highlight the search terms on the search results page using a custom Django template filter. When implementing this functionality, we originally placed the code within the django-watson package, and realized that later, this would probably cause some issues with Heroku when rebuilding the virtual environment, so we moved the code into its own pseudo-package. Well, when we were at the final point of realizing that we had a problem with our turnin, we thought that this move, and implementation completely, is what caused our errors on the server. This last ditch effort was very frustrating as a team, and left many of us feeling pretty poorly about our final product. But at this point, again, I think this finally turned out to be just about exactly what we expected. 

All right, I'm out of here for this week. My team has a presentation to hammer out, and a test to start studying for.

See ya next time,

Sophie

Sunday, April 13, 2014

Week 13 - A Good Week

Hey again,

We are back on an off week this week. By that I mean that there is nothing due or overly pressing this week to be worried about. Now that we have been working on the IDB main project, we have had a biweekly stress meter that runs up and down depending on when the next iteration is due.

So this past week, my team and I took some time to go over the new requirements for this project and try and lay it out a bit more structured in terms of front-end/back-end/mixed teams to get some work done on the project while we all have such different schedules. I think this was a good way to start, though checking in over the course of the week has been less than informative. Nonetheless, I think we are doing ok on time. Of course, this project completes this coming Thursday, so I can expect that as that day grows closer, we will be ramping up with work.

As far as the class goes, this past week we went over some more SQL stuff, and some design patterns. We took a look at the singleton pattern the previous Friday and on Monday we went over Reflection in Java. Still waiting to get to the Python version of this though.

Wednesday we had a guest speaker/lecture about working in the industry. This was probably one of the best talks I have heard in a class since I have been in school here. The main reason for this is that Trung Vu, from The Zebra, went through his slides very quickly and then had a lengthy Q&A section, which turned out to be really informative and helpful. He had worked at three different sized and types of companies since graduating four years previously, which I feel shed some really good light on to what could be expected shortly after graduation. I especially liked the tips and hints he gave about prepping for interviews as well as how to feel about working and timing and estimation. It made the class feel really relevant, and put the Django stuff that we have been working on in perspective. Overall it was a pretty good week.

But, now I have some other things to do.

~Sophie

Sunday, April 6, 2014

Week 12 - Project 4 aka IDB v2

Hi again,

The 12th week of school is over!!! Extreme, though short lived joy must be expressed for the end of that week. I had two projects due and an exam this past week, and then an exam tomorrow that I should still be studying for right now. All of these deadlines made for a crazy busy week, not to mention the perhaps overly lax approach my group and I took on this second iteration of (SB)IDB.

I’ll be able to take a breath after tomorrow, only to begin working on the last part of this project right afterward. One good thing about this last project is that it’s deadline is two weeks before the end of classes. So, it will not coincide with deadlines for other classes, or any other tests really, which for me is quite nice.

I don’t really have much to talk about this week because much of the work that was done this week was so close in context to what happened last week, but we do have a requirement to meet so, the blog must go on.

One thing you may note if you read any of the other students’ blogs from this semester is that the deadline for this project was extended by a day, due to a misunderstanding/oversight on the spec. The spec for this project was therefore updated with a clear representation of what was due at a late hour, and most of us realized at that point that we had quite a bit of work ahead of us. This last adjustment was about the API. The last iteration of the project required that we have documentation for an API using apiary.io. One cool thing about Apiary is that it allows you to set up the API and run your tests against a mock server. One thing that is not cool about this, is that it is not a full implementation of the API for your app. So, you have this API documented, but have to then implement it using another method, and need to run your tests against the real API, which could lead to some inconsistencies that you later find need adjusted. In the end it worked out, but I give much credit for the API to one guy in our group, and would like to say thanks for that, Yoan! Sitting in the lab with him and writing tests against the API was really helpful in gaining a greater understanding of what was actually going on.

My last thought for this week, “Hope the grades go well this time.”

Until next week,

Sophie