From 6fa536f3268bf7bd4fd85df7fa78fbc4c67eaaa1 Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Sat, 20 Dec 2014 23:13:09 -0500 Subject: Working on some major changes --- projects/forest-printer-management/index.markdown | 28 +++++++++++++++++++++++ projects/helvetica/index.markdown | 28 +++++++++++++++++++++++ projects/index.html | 14 ++++++++---- projects/mdengine/index.markdown | 10 ++++++++ projects/unified-show-control/index.markdown | 12 ++++++++++ projects/viewtime/index.markdown | 21 +++++++++++++++++ 6 files changed, 109 insertions(+), 4 deletions(-) create mode 100644 projects/forest-printer-management/index.markdown create mode 100644 projects/helvetica/index.markdown create mode 100644 projects/mdengine/index.markdown create mode 100644 projects/unified-show-control/index.markdown create mode 100644 projects/viewtime/index.markdown (limited to 'projects') diff --git a/projects/forest-printer-management/index.markdown b/projects/forest-printer-management/index.markdown new file mode 100644 index 0000000..45faf05 --- /dev/null +++ b/projects/forest-printer-management/index.markdown @@ -0,0 +1,28 @@ +--- +layout: post +title: Forest™ Printer Management System +description: For my Software Engineering class, we built a printer management infrastructure. +date: 2014-04-28 00:00:00 +--- + +In the Fall 2013 semester, I took a Software Engineering class. After a few weeks studying about development lifecycles, scheduling techniques, and such, we split the class into groups to propose and develop large software projects. I joined the team that was building a system that would track printer usage, display status, and collect statistics. Having previously created [a printer status project](http://mathcs.muhlenberg.edu/~bb246500/printers/), I found the idea intriguing. + +Several of the team members had experience using GitHub, so we decided to [create an organization](https://github.com/printerSystemCSI210) to store documents and provide version control. We had the school Math/CS department web server running Apache available for web hosting. Additionally, I had experience with [Node.js](http://nodejs.org) running on [Heroku](https://www.heroku.com/), so we had that technology in our arsenal as well. + +One of the first challenges we encountered that would have an impact on our architecture was the fact that most printers do not have public IP addresses and thus would need to be queried from inside the local network, while we wanted the public-facing site to be accessible regardless of physical location. This led us to developing the concept of an API which would enable a master database to be queried and updated by various components. In developing an API-central infrastructure, we were also looking down th line towards supporting client-developed applications and native applications for various platforms (iOS, Android, Windows, OS X). + +

+ + Forest Interaction Diagram + +

+ +Our first task was to develop a data format and database schema. As we intended to use [actionhero](http://actionherojs.com) for the API server, we created a [schema for MongoDB](https://github.com/printerSystemCSI210/api-server/blob/master/initializers/_project.js) and a base [set of API commands](https://github.com/printerSystemCSI210/api-server/tree/master/actions) we would need to implement in order to get a framework of the service up and running. We [deployed this on Heroku](https://forest-api.herokuapp.com). + +Simultaneously, we began work on a [web frontend](https://github.com/printerSystemCSI210/frontend) [hosted on the Math/CS server](http://mathcs.muhlenberg.edu/~mb247142/forest/frontend/home.php) that would communicate with the API to display graphs using [chart.js](http://www.chartjs.org). You can make an account here and add printers, though the interface is probably still a bit buggy. + +Additionally, we created a [Ruby program](https://github.com/printerSystemCSI210/query-agent) that would be running on the local network and would pull printer addresses from the API and query their status and properties via SNMP and push this information back to the API at a specified interval. We began working on bundling the gem as a standalone application using [Omnibus](https://github.com/opscode/omnibus-ruby), but due to lack of time at the end of the semester, this was never completed. + +At the end of the semester, we had built three interacting components, each using a different technology (Node.js/Mongoose, PHP/Apache, Ruby). You can [read our final Venture Proposal (pdf)](/assets/pdf/forest_venture_proposal.pdf). While all of our components communicated over HTTP using JSON, it’s worth noting that actionhero supports socket connections over TCP/TLS, which would have been a better choice for some of our infrastructure in production. We decided to use HTTP since it was easier to deploy on Heroku’s free tier and easier to interact with without writing additional components in Ruby and PHP. + +We’ve talked about continuing to develop the project beyond the class, but no progress has really been made. It’s probably possible to get a working monitoring system up and running based off our code (which is [all on GitHub](https://github.com/printerSystemCSI210)), but it would require quite a bit of legwork as it currently stands. diff --git a/projects/helvetica/index.markdown b/projects/helvetica/index.markdown new file mode 100644 index 0000000..3b3454c --- /dev/null +++ b/projects/helvetica/index.markdown @@ -0,0 +1,28 @@ +--- +layout: post +title: Helvetica for Safari and Chrome +description: Those who believe the web should be made more beautiful will appreciate this extension for Safari and Google Chrome that makes all text display in Helvetica Neue (with regular old Helvetica as a backup). +date: 2013-12-13 00:00:00 +--- + +Those who believe the web should be made more beautiful will appreciate this extension for Safari and Google Chrome that makes all text display in Helvetica Neue (with regular old Helvetica as a backup). + +Installing Helvetica in Safari +------------------------------ + +* [Download Helvetica](http://updates.benburwell.com/safari/helvetica/latest.safariextz) to your computer. +* Click on the Downloads icon in the toolbar. +* Double-click on `helvetica.safariextz` to install. + +Installing Helvetica in Google Chrome +------------------------------------- + +* [Download Helvetica](http://updates.benburwell.com/chrome/helvetica/latest.crx) to your computer. +* Click the ![triple bar](/assets/images/icons/settings-icon.png) icon on the Chrome toolbar +* Select Tools > Extensions. +* Locate the extension file on your computer and drag the file onto the Extensions page. +* Review the list of permissions in the dialog that appears. If you would like to proceed, click Install. + +It’s not perfect; there will be some text that is not Helvetica since this is simply the application of a stylesheet. If a site is using significant amounts of JavaScript, some text may not be transformed. This will be corrected in later versions. + +For the most part, fonts will be replaced on sites that don’t have very specific typography. In general, you’ll find that sites that have put care into their typeface choices will have those choices preserved. diff --git a/projects/index.html b/projects/index.html index 2036787..f19f3c7 100644 --- a/projects/index.html +++ b/projects/index.html @@ -4,8 +4,14 @@ title: Ben Burwell’s Projects description: Projects I’ve done. --- -
- {% for post in site.categories.projects %} -

{{ post.title }}

- {% endfor %} +
+

ViewTime, a Browser Extension for YouTube™

+ +

Forest™ Printer Management System

+ +

MDEngine

+ +

Helvetica for Safari and Chrome

+ +

Unified Show Control

diff --git a/projects/mdengine/index.markdown b/projects/mdengine/index.markdown new file mode 100644 index 0000000..57433d2 --- /dev/null +++ b/projects/mdengine/index.markdown @@ -0,0 +1,10 @@ +--- +layout: post +title: MDEngine +description: A drag-and-drop PHP script enabling simple serving of rendered Markdown files. +date: 2013-12-13 00:00:00 +--- + +MDEngine was born of my need to serve static Markdown files simply and beautifully. I accomplished this by creating MDEngine, the PHP Markdown Engine. + +It’s extremely lightweight and takes the form of a small collection of files you can drop into any web directory served with Apache which will then serve all `.md` files as beautiful HTML. MDEngine is [available on GitHub](https://github.com/bburwell/mdengine). diff --git a/projects/unified-show-control/index.markdown b/projects/unified-show-control/index.markdown new file mode 100644 index 0000000..cbbaa74 --- /dev/null +++ b/projects/unified-show-control/index.markdown @@ -0,0 +1,12 @@ +--- +layout: post +title: Unified Show Control +description: A paper on unifying all aspects of theatrical show control. +date: 2013-01-13 00:00:00 +--- + +For my freshman writing seminar at Muhlenberg, I wrote a paper on a system I devised for controlling many different theatrical cueing consoles from one master console using MIDI Show Control (MSC). I called my system [Unified Show Control (pdf)](/assets/pdf/Unified_Show_Control.pdf). + +Shortly after finishing this project, I discovered that [QLab][] from Figure 53 already has MSC built into it. Though it was slightly disappointing, I was thrilled that my idea already exists, albeit in a slightly different form. + +[QLab]: http://figure53.com/qlab/ diff --git a/projects/viewtime/index.markdown b/projects/viewtime/index.markdown new file mode 100644 index 0000000..d16bc2d --- /dev/null +++ b/projects/viewtime/index.markdown @@ -0,0 +1,21 @@ +--- +layout: post +title: ViewTime, A Browser Extension for YouTube +description: ViewTime adds the amount of time a YouTube video has been played under its view count. +date: 2014-06-08 00:00:00 +image: http://www.benburwell.com/assets/images/viewtime-icon.png +chrome-webstore-item: jcplgieacjacdjabiiedcdfcpbgohbpp +--- + +It’s rather astonishing to consider the amount of time for which some viral videos have been watched. For example, Ylvis’ “The Fox” has been watched for nearly 3000 years. + +ViewTime is a plugin for Safari and Google Chrome that adds the duration the video has been played under its view count. + +Installation +------------ + +_Safari:_ [Download latest version](http://updates.benburwell.com/safari/viewtime/latest.safariextz) and double-click to install. + +_Chrome:_ Click to install or [view on the Chrome Webstore](https://chrome.google.com/webstore/detail/viewtime/jcplgieacjacdjabiiedcdfcpbgohbpp). + +![ViewTime example](/assets/images/viewtime-example.png) -- cgit v1.2.3