Monday, July 21, 2014

In the Weeds

I've been spending the last few days in the weeds of Leaflet. For the full play-by-play, you can see the GitHub issue.

My Very Frustrating Day

Wednesday, July 16, 2014

Fastest Summer of My Life!

Time seems to be moving faster and faster. I can hardly believe it's time for another two-week report! I spent a lot of time chasing bugs but I'm making baby steps forward and learning a lot about how Rails and JavaScript work in live code.

Week 7: June 29 - July 5

Week 8: July 6 - July 13

  • And the code I've written was deemed not yet ready for prime time - it only works halfway at this point. I will resubmit after I get the code up to production standard.
  • After some useful feedback on the importance of submitting a pull request with only one commit (and some pointers to how-to's on rebasing to make that happen) and the helpfulness of of including *lots* of screenshots showing the software in action, I closed the pull request.
  • One (!!) of the aspects of this project that I have found especially challenging is finding my way through the blending of JavaScript and Rails code. I spent an inordinate amount of time this week chasing down what turned out to be a Javascript syntax error that was manifesting as a Rails error.
    • I've installed the "better_errors" gem to try to assist with errors like this - it will presumably be triggered if it is a true Rails error
    • I've also learned that if I make changes to the JavaScript portions of the code, I have to restart the server in order to see any changes. Most changes to the Ruby code automagically propagates without restarting the server.
  • Screenshots of my progress so far are on GitHub. Searching by year (2008 and 2009) will bring up the Burning Man map layers for those years and recenter the map to that area. Searching by any other year brings up with message that this is a work in progress. (It no longer crashes the map and brings up the dreaded Rails error screen, so there's some progress there!)

Wednesday, July 2, 2014

Hoping to Catch My Breath

I've been so immersed in my internship that I've been neglecting this poor blog. I'm still constantly surprised at how much longer seemingly simple tasks take. I'm very slowly getting familiar with the complexity of the OHM codebase. Here's a rundown of the last two weeks:

Week 5: June 16 - June 22

  • 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:
    • Capturing the start_year value entered from the TimeSlider
  • I found a new resource: a StackOverflow-style QA page for OSM
    • 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.
  • 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
  • Completed and submitted my mid-session evaluation.
    • 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.
    • 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.
  • I'm having a meeting with my mentor on Tuesday, and hopefully that will give me some grounding.
  • 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.
  • I made some baby steps toward success:

Thursday, June 19, 2014

Bi-Weekly Summary of a Rough Two Weeks

It's been a very busy last couple of weeks, unfortunately busy with roadblocks. Progress has been slow but I feel like I've been learning a lot about the OHM codebase and that this will help further down the line.

Week 3: June 2 to June 9[edit | edit source]

  1. Snagged TimeSlider code from website
  2. Continuing work on getting the slider integrated into the website and I'm learning:
    1. Building consensus can be hard - there are a lot of differing opinions over what the TimeSlider should look like and how it should function.
    2. 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 Guide to Erubis to try to lead the way.
  3. 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.
  4. I'm still working on getting the slider working but I've got the text fields showing, at least.
    1. They needed a lot of tweaking to fix and flex to the space of the site. My branch is posted on Github.
    2. 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:
    1. using the params and embedding if statements into the controller or
    2. capturing the name of the button that is clicked.
  3. 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.
  4. Received a last-minute invite to the OHM/OSM Hangout at the @SotMEU Conference on June 13th.
    1. The audio was very difficult to understand, but Susanna Ånäs pointed me to SK53 and Maps Matter Blog I spent a lot of time reading through to get more familiar with the history of the project.

Friday, May 30, 2014

A Quick Bi-Weekly Re-cap

Week 1: May 19 to May 25

  1. Researched history of OHM project in the mailing list archives and GitHub issues here and here.
  2. First OHM planning meeting on Google Hangouts, synopsis by Robert H. Warren posted at 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 client side rendering.

Week 2: May 26 to June 1 - DRAFT/WIP

  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 27 3PM UTC.
    1. We had a round of intros and some general questions
    2. Sumana Harihareswara is now the official "so where do we go after this is over" post-internship planning mentor
    3. Sumana also posted a link to a very helpful article on when to ask for help First You Must Try, Then You Must Ask.
  3. During this week's Google Hangout meeting with my mentor, we reviewed the task from last week and discussed next steps
    1. find a place for the TimeSlider on the OHM site
    2. 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)
  4. 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

Sunday, May 18, 2014

Seeking An Alternative to The JQuery UI Slider

I've spent most of the weekend digging around in the Open Streetmap code base on GitHub. If our first goal is to develop a slider that will fit in (over?) that code, I'd like to make sure that whatever we create will mesh nicely with what's already in that repository. If I'm reading this correctly, the code already includes JQuery via the jquery-rails gem. What it doesn't have is the JQuery UI. The initial slider(s) that I've been working with both depend on the JQuery UI module, so I went spelunking in the JQuery UI code.


There's got to be a better way.

Update (5/20/15): Yes, there is another way. Your mentor finds someone who enjoys the front end piece to build the slider!

Saturday, May 17, 2014

Signed, Sealed, Delivered

I'm yours for the summer, Outreach Project for Women :).

I just successfully (I hope ;) ) uploaded my signed contract for the OPW.