Pre-Homestretch Homestrech

May 8, 2014

There’s no time of year quite like this. Spring is in the fullest of swings here in the swampy enclave of New York we call RIT, and nothing says Spring like “software sprinting.” Many associate Spring with baseball matches, grilling sessions, and a statistically significant increase in the presence of beautiful women. Of course, RIT has no shortage of any of those, (despite popular rumors to the contrary), but we also have some things few other places do…

Of course, hand-in-hand with that sort of notoriety is the hard work students here endure in the pursuit of their degrees. We are currently in the final week of classes. Project due dates approach with rapidity unforeseen by anyone. Semesters suck. SIS sucks. Finals loom. So what better way to relieve the stress than some good old fashioned coding?

Oh, actually, this is an assignment for a class. But I just said it was stress-relieving! Ah, that’s the hypocritical beauty of coding. It’s work, but it’s also fun! So the assignment is to originate 10 tickets on GitHub and close 5 of them. Let’s get crackin’ then:

1. Implement recording of temperatures (in-glass)

The main selling (Haha, selling. Because it’s free.) point of in-glass is live temperature monitoring via the web. Another handy feature, though, is the generation of temperature logs. It would sure be nice to be able to see the what the temperature was at a particular time in the past, assuming the in-glass node was running at that time.

2. Add support for multiple devices (in-glass)

The neatest thing about USB ports is that there are usually more than one of them on a mainboard. Noting that, in-glass should support more than one TEMPer thermometer.

3. Make settings menu unit switching instant (in-glass)

Perhaps, in some less-civilized countries, they use silly logical systems to measure things. Systems that are so logical, we can’t really come up with a good reason to not switch to it (other than budgetary concerns). I’m of-course referring to centigrade, a.k.a. celsius, a.k.a. Canadian Mercury. I recognize that some of those kind people may use in-glass, so we should support that unit of temperature. We already had an option to switch units (and it remembers what unit you picked for next time, because localStorage). But that required a manual refresh, and those are so 2006. Clicking a temperature preference should instantly switch the displayed temperature accordingly.

4. Add graphing functionality (in-glass)

We mentioned earlier that we’d like to be able to record the temperatures. Computers geeks such as myself have no trouble reading sparse log files, but what about John Everyman, a.k.a. The End User? We should read in recent temperature data and graph it all pretty-like.

5. Add documentation (catbug)

What’s software without documentation? Still software, but it raises the barrier to entry significantly. I cannot recall how many programs I’ve wanted to use that I couldn’t because the documentation was shit. Yes, I said shit. A lot of documentation is shit. But my catbug library doesn’t even have any. I gotta change that.

6. Add about page (in-glass)

I mean, we deserve some credit here.

7. Add documentation (in-glass)

Our README is saying “write me!”

8. Return object (catbug)

In catbug’s current state, a string representing the content of the response is the only thing the callback method returns. There is a lack of other potentially useful information, like the HTTP Status Code, content-type, and so on. Ideally, the method should return an object containing these things as properties, instead of a straight string.

9. Implement auto-refreshing interface (in-glass)

Ajax is so cool. So cool it doesn’t even actually do what it stands for, which is Asynchronous JavaScript and XML. It does the first three quarters of those words frequently. Asynchronous, check. JavaScript, check. And, check. But XML? XML is derpy. It’s all verbose and stuff. JSON is better. But nobody wants to say “Ajaj,” so we’ll keep calling it “Ajax.” We should have a checkbox that will retrieve the current temperature (which in-glass serves as JSON) and update accordingly, at whatever interval they please.

10. Implement CSS3 transform scaling on slides (Swipe.js)

Swipe is a fantastic library for touch-scrolling. While carousels are a less-than-desirable user experience, there are certain situations in which they are an efficient way of conveying important information. Swipe slides the image nicely, but it would be really neat if the images were scaled down and faded when being “slid,” to give the user more feedback that they’re interacting with the element.

Leave a Reply

Your email address will not be published. Required fields are marked *