User:JaimeLyn/Weekly Reports

These are weekly reports on the Historical_OpenStreetMap FOSS OPW project for User:JaimeLyn

My OPW-related blog posts can be viewed on Blogger.

Community Bonding Period

 * 1) Most of this has been done through the mailing list.

Lessons learned since 21 April

 * 1) Started from scratch in using IRC. Picked up the basics here and here
 * 2) There is an overwhelming amount of information about both the OHM project and MediaWiki in general on the web, which makes Googling for links problematic at best (and hair-tearing at second best). I've learned to use this page as a key to some of the more frequently needed resources.

Communication Plan

 * 1) Our team uses the Historical Mailing list, Google Hangouts and IRC #ohm
 * 2) I will complete weekly progress reports here with frequent check-ins to my mentor via Hangouts and/or IRC.

Deliverables
The MVP: Integrate the time slider created by ConorMc (need user page to properly cite) into the Rails_Port webpage codebase.

The second half of the internship will be spent integrating the slider into the map renderer.

Week 1: May 19 to May 25

 * 1) Researched history of OHM project in archives and GitHub issues here and here.
 * 2) First OHM planning meeting on Google Hangouts, synopsis by Robert H. Warren posted on User/JaimeLyn/Weekly_Reports/May 22 OHM Hangout Synopsis
 * 3) Added to Github OHM organziation and (scarily) given push access.
 * 4) Assigned and began work on microtask of investigating methods for client-side rendering

Week 2: May 26 to June 1

 * 1) Went spelunking through the OHM Rails Port to find where to place the slider (and was later introduced to (and made a small link fix within) the official OHM UI wiki page
 * 2) Attended #OPW IRC chat for OPW Interns on May 27th, 3PM UTC.
 * 3) We had a round of intros and some general questions
 * 4) Sumana Harihareswara is now the official "so where do we go after this is over" post-internship planning mentor
 * 5) Sumana also posted a link to a very helpful article on when to ask for help First You Must Try, Then You Must Ask
 * 6) During this week's Google Hangout meeting with mentor, reviewed task from last week and discussed next steps
 * 7) find a place for the TimeSlider on the OHM site
 * 8) start finding a way to make input from the TimeSlider feed into the website and request the tiles needed (this one's a higher level task and will break out into other pieces)
 * 9) I posted mockups of two different ideas for TimeSlider placement:


 * 1) within the header of the site
 * 2) attached to the search box on the site

Week 3: June 2 to June 9

 * 1) Snagged TimeSlider code from themusictree.net website
 * 2) Continuing work on getting the slider integrated into the website and I'm learning:
 * 3) Building consensus can be hard - there are a lot of differing opinions over what the TimeSlider should look like and how it should function.
 * 4) While I know Rails, finding one's way around a new code base can be tricky, to say the least. I'm using the Rails UI Wiki page and this little guide to Erubis to try to lead the way.
 * 5) I've been very surprised at how much of the logic of the site is in JavaScript. The other Rails projects I've dug into have been mostly Rails with a little JavaScript for buttons and hover effects. This project is a JavaScript project wrapped in a Rails app. I'm still getting a handle of its complexity.
 * 6) I'm still working on getting the slider working but I've got the text fields showing, at least.
 * 7) They needed a lot of tweaking to fix and flex to the space of the site. My branch is posted on GitHub.
 * 8) I have hit a major roadblock with the bottom half of the slider. The divs generated in the JavaScript portions are not rendering on the site. I've used console.logs throughout, testing to be sure that the script is running but I have not yet found the problem. I'm reaching out to my mentor for some assistance for what else to try to find the answer. I've exhausted my ideas. (None thus far have worked.)

Week 4: June 9 - June 15

 * 1) After consultation with my mentor, we were both stumped so we reached out to the author of the slider for tips and toward the end of the week, we finally synced and got the slider working! The slider required a change from rendering a single object to iterating through a group of divs to create the sliders.
 * 2) While I was waiting to work with the slider-creator, I started investigating methods for having a form in Rails have two separate actions, depending on the button clicked. It's apparently a little non-REST-full, but there are some REST-like options:
 * 3) using the params and embedding if statements into the controller or
 * 4) capturing the name of the button that is clicked.
 * 5) I also cast about for other options that might be more understandable for me (this was a plan Z option, in case I never was able to connect with the original author.) I found a few nice options including nouislider
 * 6) Received a last-minute invite to the OHM/OSM Hangout at the @SotMEU Conference on June 13th.
 * 7) The audio was very difficult to understand, but Susanna Ånäs pointed me to SK53's Maps Matter Blog. I spent a lot of time reading through to get more familiar with the history of the project.

Week 5: June 16 - June 22

 * 1) I spent far too long this week chasing Heroku errors in an attempt to get a live version of my time_slider2 branch online. After an IRC chat with my mentor, I cut my losses and moved on to the next task:
 * 2) Capturing the start_year value entered from the TimeSlider
 * 3) I found a new resource: a StackOverflow-style QA page for OSM.
 * 4) Regrettably, this resource seems focused on map-editing users. It did help me discover when I was headed (meandering?) down the wrong track with the router file in Rails and needed to pivot and work on the router.js file.
 * 5) This was a real Edison week. I found a dozen different ways that don't work. Still at it.

Week 6: June 23 - June 29 - DRAFT/WIP

 * 1) Completed and submitted my mid-session evaluation.
 * 2) I'm not where I thought I would be at this point in the session. There is a tremendous difference between the code used in tutorials and student-level projects and the real, live code that lives out in the wild.
 * 3) It's more than just the complexity (although the huge leap in complexity would be more than enough to stymie me!) There are unfamiliar conventions and blending of platforms that still surprise me. (I'm still getting caught flat-footed and discovering that the code I'm writing in Rails needs to be ripped out and put into the JavaScript portions of the code base.) I will learn.
 * 4) I'm having a meeting with my mentor on Tuesday, and hopefully that will give me some grounding.
 * 5) I'm making an effort to commit more often and to push up my commits to my branch more regularly. I've been fearful about doing so but last week, I caught myself trying the same failed function twice. Having all of my commits with failures noted well help stop me from doing that in the future.