Prologue

“Something just flashes into your mind, so exciting, and you must out with it. If you stop to think it over, you spoil it all.”

L.M. Montgomery

I spent my three weeks off deliberating whether to take the class following DPS909. On the one hand, I enjoyed the experience it gave me…on the other, there weren’t a lot of projects I was interested in working on. While localization helped me last semester, it took a while to get pull requests accepted and there weren’t that many projects that I could find that still required Spanish translations.

Additionally, there isn’t really a way to improve the quality of my requests, other than through volume…and I have my limit when it comes to editing.

So I was at a cross roads. I already had the six courses required for my sixth semester. I already took a professional option course. I didn’t need to take another open source class, I could just move on and do open source on the side.

And then I showed up to the first class.

Half an hour in, I was registering myself in the course. What can I say other than humphd made a very convincing introduction to the course?

My goal for the semester would be to work on the front end of Telescope and use my creative skills so that the UI looks as best as it can.

Fast in every way that matters

“‘How did he happen to do that?’ I asked after a minute.
‘He just saw the opportunity.'”

F. Scott Fitzgerald

When I decided I wanted to work with the front end, I knew I wanted to use GatsbyJS. I had only done translation for it, but I wanted to use it and Telescope was the right opportunity for it.

GatsbyJS is a React-based framework that generates static sites. It utilizes popular web technologies such as Webpack, GraphQL, ES6+ JAvaScript, and CSS. This allows Gatsby to not have too much of a learning curve as it is made with technology that programmers are familiar with.

Gatsby also has a big community and plugins that allow us to use already made solutions rather than create our own for scratch.

Furthermore, as an increasingly popular framework I thought it would be good to implement it and use it. It felt like valuable experience and worthwhile for the project.

How I Learned to Stop Worrying and Created a Gatsby Site

“To learn something new, you need to try new things and not be afraid to be wrong.”

Roy T. Bennett

For the second week, I decided to learn the basics about making a Gatsby site in order to convince the rest of the team that Gatsby would be a good fit. The process what’s pretty easy, and while css is never entirely painless, I felt pretty good after making some quick sites. I go in to more detail in my blog post about creating Gatsby sites, which can be read by following the link in the title.

An Unexpected Journey

“The great enemy of communication, we find, is the illusion of it.”

William H. Whyte

The day was Wednesday and I was ready to add Gatsby to Telescope. A simple “Hello World” starter from the Gatsby docs would be more than enough to get the team started with the front-end. I figured a bunch of issues could be filled out after the blank slate was merged and I could get the ball rolling.

Having gone through all the issues during a triage meeting, I saw that there were a few contributors eager to help with the font-end and the UI. Issues #511, #512, and #513 made me optimistic about being able to have a good interface by the time release 0.5 came about. After all, the strength of open source was the numbers. The many can do more than the one.

It…didn’t quite worked out that way.

When I looked at the Telescope repo that Wednesday morning, I noticed someone else beat me to it. A pull request that read “Initial frontend work for GatsbyJS app.”

It was then when I first realized I needed to communicate more about what I was doing. I had realized some time before Wednesday that I needed to keep up with the conversations going on Telescope – as I had missed important discussions about how we wanted Telescope to look.

But just reading and giving your opinion is not enough. Communicating what you are doing and what you are going to do are also important.

This was only the beginning.

The initial template from the pull request looked like so:

While not the “Hello World” starter I had in mind, It looked like a good base to start with. Besides, I never told anyone how I planned to start the front-end. As far as I’m aware, there are no telepaths working on Telescope.

However, there were some changes requested and it did not pass the tests. This meant we could not merge the pr, which was disappointing as I wanted to work on the front-end ASAP. There was a week left for release 0.5 after all.

I regularly checked the pr hoping to see some changes, ready to review and merge, but nothing really happened until two days later.

It was Friday.

Seeing another comment made me happy. The too red x beside the title of the pr? Not so much.

While the pr had been updated, there was no response to any of the changes requested in regard to the failed tests. This was yet another failure in communication, but also one due to our lack of knowledge about ESlint. I’ll return to this point later, though.

The updates have been changes to UI, so now the interface looks like this:

telescope1

The weekend passed without any comment. And I admit, it is frustrating to look back and see how much time had passed, and how little I asked for updates on the UI. Because, not only was this putting us behind for release 0.5, what was I going to do for my release 0.5?

I couldn’t work on code that had yet to be merged. At least, when it came to the UI.

It wasn’t until Monday that I talked about the status of the pr and laid out a plan of action. It needed to be a priority – at 5 days, it was the oldest pr of the semester and it was halting the development of the front-end. Additionally, going forward, small issues would be issued to better utilize our contributors, and we’d use Adobe XD for prototyping and getting feedback on the designs.

When I checked the pull request later on Monday, more changes had been requested and the status remained red. Luckily, the changes were more nits that could be worked on later on.

On the Tuesday, @humphd filed an issue to “Add static route to serve new GatsbyJS front-end.” I signed on, and started working on it that afternoon. I was not sure what I needed to do, and the lack of a Gatsby site meant that I couldn’t quite test out what I was learning.

So I decided to make a test site to work on my issue, I had waited long enough. It was then when I finally realized why the other pr kept failing.

ESlint.

Telescope is the only project I’ve worked on that uses ESlint. All my test sites have been made without it, and I had never looked into what ESlint did or how it worked. What I’m saying is that it had never been and issue.

Until now.

So I filled and issue. I waited about 10 minutes, and then assigned the issue to myself. Might as well do something outside of my comfort zone, right?

You can read more about how I dealt with that in this link, and you can see my pull request in this link.

So after all that time, ESlint tests failed the pr because we hadn’t added a React plugin.

Finally, today, Friday January 24th, the pr was merged. Telescope has a new front-end!

2020/01/25 02:03:14 EST

The past three weeks flew by.

A blink, an another day passes by. It certainly doesn’t help having a computer that loves taking its time to run anything. Neither does scrolling through reddit, if I’m honest.

My contributions weren’t quite what I expected. Though I admit, I still learned quite a bit, though not all was technical knowledge. If anything, I now know how much time can be wasted through a lack of communication, or by not being on the same page.

We all have different priorities and different projects we want to work on, so not only is it necessary to speak up, it is necessary to make sure you are understood.

Also. Following up on people is better than just silently anguishing.

On the bright side, I feel fairly comfortable working with Gatsby and I’m not afraid of touching the ESlint file anymore.

However, there is a lot for me to work on for the next release.

It’s fine :’)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s