Why I March

“Wake up America!  Wake up!”  For we cannot stop, and we will not and cannot be patient. – John Lewis, 28 August 1963

It’s been a day of reading, reflecting, writing, and vlogging:

Women’s March Oklahoma – Photo Story

This slideshow requires JavaScript.

Women’s March Oklahoma – Video Story

Hacking My Apple TV

Sometimes I have way too much fun. I recently acquired a 1st gen. Apple TV and wanted to breath some new life into it. So, I decided to remove its extremely outdated operating system (version 3.0.2) and replace it with something that actually allows media streaming. I decided to start with OSMC and followed this excellent video guide:

The installation process was smooth for the most part—I only had one snag during setup. The most updated version of OSMC from November was not installing properly, so I repeated the steps outlined in the video using the October build of OSMC and succeed. (I tried to update the October version to the November one later, but that update failed so I’ll stick with the older version for now.)

November built of OSMC failing to install properly on Gen 1 Apple TV displays a white sad face on blue background
OSMC Installation Failing 1st Time
OSMC linux operating system installing on Gen 1 Apple TV
OSMC Installation Succeeding 2nd Time

At this point, most people stop with an awesome Kodi enabled Apple TV but I wanted much more from this Debian 8.6 Linux computer! In accordance with the recommendations from the aforementioned video guide, I installed LXDE as the desktop interface. It was at this point that I started dreaming of all the things I could do with my new linux computer!

Apple TV As A Computer

First, I installed a web browser. Learning to use the “apt-get” command from forums, I installed Firefox ESR and explored my first text-based web browser, Lynx. It was a spectacular experience to see what the web looks like when images, videos, and advertisements are stripped away and words are all that remain.

OU Create loaded in Lynx text-based web browser shows only words of the website
OU Create in the Lynx text-based web browser

Next, I built a Twine game from my Apple TV and used the notes from eXperience Play to add some style to my simple game. Once it was built I decided to upload and host the HTML game on my OU Create domain.

ATV game built in Twine and hosted at atv.keeganslw.com
Twine game made on Apple TV now available at atv.keeganslw.com

Eventually, I decided to load office software onto my Apple TV to create some documents. To install LibreOffice, I had to learn how to setup backports by creating text files in the command line using:

nano /etc/apt/sources.list.d/filename.list

But after some tinkering and patience, I was able to install LibreOffice onto the Apple TV. With this software, I composed my first document from the Apple TV.

LibreOffice running on Apple TV.
LibreOffice running on my Apple TV

After playing around with Debian Linux for a few hours, I started to push my goals even further. I wanted to see what it would take to turn my Apple TV into a web server. 🙂

Apple TV As A Web Server

There was a phenomenal guide on setting up a LAMP environment in Debian that I followed to transform my Apple TV into a server. However, I had trouble getting MariaDB MySQL to install properly. Since I wasn’t determined to install any web apps that used MySQL, I didn’t sweat this problem and turned my attention towards the more crucial Apache2 and PHP5 and started getting more ambitious.

First, I discovered I could host the Apple TV-made Twine game on the Apple TV itself by placing the HTML file in the web root directory that Apache had generated (in my case /var/www/html). THIS WORKED PERFECTLY. In other words, files located in the computer folder “html” (that is located in the folder “www” that is located in the folder “var”) on the Apple TV were now accessible to other computers on my home network. This meant I was able to navigate to the IP address of my Apple TV using my iPad to access the Twine game.

ATV game built in Twine and hosted on the Apple TV
Same Twine game now hosted on the Apple TV

In fact, any device on my home network can navigate to http://10.0.1.30/twine.html and access the html file that was being hosted by my new LAP (Linux, Apache, PHP) server. Yet this game was only simple HTML and I wanted to take the Apple TV even further.

So, I started exploring web apps since some flat-file CMS like Grav don’t require MySQL to operate, I started exploring what it would take to run a Grav website from my Apple TV. I spent a while reading and researching the requirements like editing the apache2.conf file to allow .htaccess to function and installing different PHP components. However, after I looked at my watch and saw 8 hours had past since I started this adventure, I decided it was time to take a break… 🙂

What’s Next For The Apple TV?

I want to finish getting Grav running on my new web server, but I’ll need to do a bit more research before another Apple TV journey. Also, I’m exploring a firewall exception and mapping port 80 in my router to grant users access to my Apple TV web server outside of my home.

Finally, I’m considering installing node.js and trying to get a copy of Ghost running. This may be feasible as opposed to running something like Sandstorm.io or Gitlab, with the measly 256MB of RAM on an Apple TV.

WHY? Why Not?

If you played the Twine game I keep referencing, you’ve already witnessed me questioning my intentions. Why the heck did I spend all day turning a media player into a computer and then into a server? I may sarcastically reply with “why not?” but the real reason is for the fun of learning. Today, I taught myself loads of awesome stuff! From heavy usage of the Debian command line to Apache2 as a web server to how the web works at a file and IP address level—these days of experimentation, building, and re-building help me understand technology and its role in our lives. For me this was more than an exercise in learning, this was an opportunity to discover how and why I’d bring the web into my own classroom.

The featured image is provided CC0 by Ilya Pavlov via Unsplash.

DIY Instructional Video Consultation

In the spirit of John's recent post-per-consultation (PPC) to broadcast valuable information from our consultations at the Center for Teaching Excellence, I am writing my first PPC.

I just met with Mark Norris, a professor of linguistics who recently participated in John & I’s eXperience Play faculty learning community. (Check out the game Mark created here!)

Anyways, Mark is interested in creating instructional videos for his students. Specifically, he wants to show students his problem solving process and explain the reasoning behind every step. This sounded like a fantastic opportunity to provide extra instruction for students who need to focus on certain concepts.

I was excited to see Mark had already experimented with instructional videos, because this helped me understand what Mark wanted to produce for his students:

In the name of features and consistency of quality, I recommended Mark consider digital annotation for his instructional videos. Such tools offer the ability write on documents, expand the annotation space at will, and streamline the video editing workflow. After some discussion, and checking what equipment was available for checkout, I offered Mark two methods for producing digital whiteboard videos: (1) iPad Pro with Apple pencil and Explain Everything Classic, (2) Surface tablet with stylus and Open Sankoré. Mark chose the former and we started exploring what annotated instructional videos would look like when produced from an iPad Pro. Combined with a high-end Blue Spark Digital microphone, Mark now has all the tools he needs to produce some excellent resources for his students.

Working with Mark was phenomenal because I love interacting with faculty who are passionate about teaching and are always exploring how to best engage their students. In other words, I’m excited to see what Mark produces in the coming months!

eXperience Polish

If you are interested in participating in eXperience Play (XP) remotely, I am going to provide a to-do list of items each week. These to-do lists will include a variety of tasks such as playing games, reflecting, blogging, and portions of game development. If you complete all five to-do lists, you will produce an educational text-based game in five weeks. For more information on this professional development, read this blog post, visit the eXperience Play website, or contact me via Twitter or email.

This post corresponds with the fourth session of XP.

Part 1 – Game Development

1. Review the following Twine Syntaxes and guides:

Add Media (Etc.) With These Twine Syntaxes
Change Your Twine Game's Appearance with CSS
Free Images, Additional Guides, & Resources

2. Using the above syntaxes, guides, and everything you have learned in the past few weeks, continue working on your game until it’s complete.

For reference, here’s an example Twine game from a participant of XP:

Example Twine Game, units, made by an XP participant

3. Find someone to play your completed game and give you feedback. Use this opportunity to make more revisions. Again, I’d recommend getting reviews from individuals in your vicinity since your game is stored locally on your computer for now.

Part 2 – Professional Development

4. Write a blog post about your experience building your game using the following prompt:

Blog Prompt
  • Document how your game has changed from last week. I encourage you to include a screenshot of your final product.
  • Reflect and write about how peer-review and feedback has impacted your game’s design.
  • Research and define “Peer-Peer Learning” in your own words.

Get your Twine game as closed to complete as possible by October 3rd.  Share screenshots of your progress with me via Twitter or email or reach out with any questions.

The featured image is provided CC0 by John Hult via Unsplash.