Skip to main content

Midway Through the Years

27 Aug 2019

954 words • 5 mins

Midway changed a lot from its humble beginnings as a simple prototype to the complex extension it is now. Let’s explore how it changed. Check out the latest version of the extension on the Chrome Web Store.

A Note on Versioning

While it might seem as though I am using Semantic Versioning (or SemVer as the developer community calls it), I actually simply increase the numbers based on how significant I feel the change to be, rather than simply incrementing a major number or minor number by 1.

The Initial Prototype (v1.3.15) - February 2018

Midway branding image with extension logo for v1.3.15

Yes, the initial prototype does not start from 0.0.0 or even 1.0.0, it starts at 1.3.15. Although it may seem unintuitive, it is actually because I’ve re-written my code several times and I didn’t feel like labeling it such a mundane 1.0.0. It’s a bit whack, but that’s ok.

But I digress.

Midway v1.3.15 timebox

At this point, Midway was a simple extension, merely displaying the end of the period in a little box in the corner, called the timebox. Although you could move the timebox out of the way, the position did not persist across tabs. This meant that every time you refreshed the page or when you opened a new tab, Midway’s timebox was back in the top left corner. In addition, the timebox lacked a close button, which proved annoying for some users, when Midway covered an important item on the page.

Midway v1.3.15 marketing slide 1 Midway v1.3.15 marketing slide 2 Midway v1.3.15 marketing slide 3 Midway v1.3.15 marketing slide 4

No longer just a prototype (v1.4.2) - October 2018

Midway branding image with extension logo for v1.4.2

With the introduction of Midway v1.4.2, Midway has greatly increased in both capability and complexity. One of the challenges in developing Midway was the fact that, due to a Chrome browser bug, Custom Elements were NOT supported when it is registered by an extension. As a result, Midway could not be isolated from its containing page. I ended up using a workaround: injecting a script onto the page that loaded code from Github. Unfortunately, it meant that Midway no longer worked offline, but since the users were almost always online, it wasn’t much of a problem.

Addressing one of the primary concerns of many users, Midway now persisted the timebox on the page. What that means is if you drag the timebox to the bottom right corner, it stays there, even if you switch tabs or reload the page. However, the implementation was a bit poor since it depended on time delays. As a result, sometimes the delays didn’t fire at the correct times, resulting in glitchy timebox persistence.

In addition, Midway now had the ability to hide the timebox. Previously, the only way to get rid of it was by dragging it to the edge of the screen, a suboptimal solution for many. Now, a simple close button will get rid of it.

Midway v1.4.2 marketing slide 1 Midway v1.4.2 marketing slide 2 Midway v1.4.2 marketing slide 3

The Latest Evolution (v3.0.0) - Aug 2019

Midway branding image with extension logo for v3.0.0 At last, the versioning is brought to a number that actually makes sense; it is the third revision of Midway! I probably should have made the version number v3.1.4 because it is whack (and who doesn’t want pi?), but I thought it would be confusing. Also, the changes didn’t really warrant that sort of number.

Anyhow, Midway has improved a lot with this version. Even its clock ticked forward a bit to represent a change of such magnitude:

Midway's clock now reads approximately 12:20

With this update, Midway’s timebox persistence was no longer buggy; the timebox stays right where you put it even if you reload or open another tab. In addition, glitches on sites such as the MyLearningPlan website were all fixed (due to better isolation between the extension and the website).

The Timebox

To improve User Experience (UX), Midway now includes additional contextual information to help users understand which period is currently being displayed. For instance, it now displays the current period start and end times, the current period name, and the number of minutes until the end of the period. By including them, users can understand intuitively what it means, without having to look at the support page.

Midway v3.0.0 marketing slide 1

Why did you choose this timebox format?

The current format of the timebox was not an arbitrary choice; rather, it was based emprically on a small focus group consisting of teachers and students.

Preferred timebox survey results

I chose the last option because of these reasons:

  1. It was popular (at least among the small sample)
  2. It included better contextual information than the next best option
  3. It was more explicit; it didn’t use abbreviations that may be hard for users to understand

Of course, the sample size isn’t particularly large to be entirely conclusive, but given the data I was able to collect, I believe that was the best decision.

Better controls

Midway v3.0.0 marketing slide 2

Midway now included dedicated buttons to re-position and toggle the timebox. This gave more control to users and was much more intuitive.

The Dashboard

Midway v3.0.0 marketing slide 3

Midway v3.0.0 marketing slide 4

The dashboard now shows absent teachers and school announcements, helping students and faculty stay in the know.

Better support for complex schedules

Midway v3.0.0 marketing slide 5

Midway’s schedules can now be updated remotely, allowing admins to add special schedules whenever it is necessary. The scheduling system was also re-worked to allow application of “patches” which can be applied to user schedules so that the Midway experience is customized for the user (this feature is disabled for all users except dev accounts).

Final Thoughts

Midway’s latest version is truly a departure from all previous versions. Though I may be biased, I think that Midway now looks much more professional than it did in years past. The User Experience (UX) is more refined; the graphic design is more refined; and the branding is more refined. In the coming years, I hope to develop Midway further, expanding it beyond its current userbase. If you are interested in trying out Midway, check it out on the Chrome Web Store.



Must-reads

Cover photo for Midway Through the Years

Midway Through the Years

Midway changed a lot from its humble beginnings as a simple prototype to the complex extension it is now. Let’s explore how it changed. Check out the latest version of the extension on the Chrome Web Store.
Cover photo for A Javascript Developer's Guide to Contributing to Firefox

A Javascript Developer's Guide to Contributing to Firefox

Note that while I’ve done my best to make sure the content here is correct, there may be slight inaccuracies. At time of publishing, there isn’t much documentation on the inner workings of modules in Firefox, but I’m planning on sending in a patch to the official Firefox docs.
Cover photo for What I learned winning 3rd place at StuyHacks IX: Misconceptions about Hackathons and Tips for Success

What I learned winning 3rd place at StuyHacks IX: Misconceptions about Hackathons and Tips for Success

I’m often surprised by the grand expectations that younger coders believe is necessary for success at Hackathon events. Here, in no particular order, are some of the most common misconceptions and tips I’ve learned.
Cover photo for How I Got Started With Contributing to Firefox

How I Got Started With Contributing to Firefox

I admit, I used to think contributing to Firefox was basically impossible, especially as someone who didn’t yet know Rust or C++. And even if I overcame this hurdle, I thought it was hard to get set up, difficult to find bugs that are well-scoped to what I can actually accomplish given my skillset, and challenging to understand the complex codebases that would be typical of large software projects. But I wanted to help. And after hacking Google Chrome, I realized that maybe I could, or at least I could try.