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 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.

Gamifying The Writing Process With Habitica

One of the (many) side-projects that John and I have been working on is gamifying the writing process. In particular, we’re interested in gamification that seeks to reinforce and build good habits that yield efficient writing, research, and revision.

This semester, the Writing Center on our campus engaged us in brainstorming the logistics, pedagogical implications, etc. of such a writing program. From conversations with them, John and I have pursued various tools and solutions. At the moment, we’re prototyping two different applications of gamifying the writing process. John has already written about one of these ideas—using automated word-counts to engage individuals in competing against themselves to encourage writing. Now I want to address the other prototype we’re developing.

We’ve been researching and using Habitica as a platform to facilitate a gamified writing program (learn more about Habitica here and here). In fact, writing this blog post fulfills a “daily” task for me in the very Habitica system we are prototyping!

Keegan's Habitca website daily todo list that highlights "writing for 10 minutes" and "write a blog post"
Keegan’s Habitica Writing Tasks

Anyways, yesterday I met with Annemarie Mulkey, an instructor in the english department who has participated in both GOBLIN and eXperience Play. I reached out to Annemarie because she has experience with Habitca, a background in English, and is a blast to work with! Since Annemarie uses Habitica to motivate her own productivity (even more broadly than writing), her perspective was phenomenal.

Eventually, we wound up brainstorming how to setup Habitica to gamify writing an undergraduate research paper. We decided the research paper was only going to be ~5 pages and be completed over 7 days. With these parameters set, here’s what we developed using Habitica in half an hour:

Whiteboard Brainstorming

Research Paper Challenge outlined on whiteboard

Resultant Habitica Challenge

Research Paper Challenge in Habitica includes many tasks to complete

Since Habitica possesses a feature called Challenges that allows users to add custom sets of tasks to their account, we used this mechanism as the means to facilitate the gamification of writing a research paper. The Habitica To-Do list we envisioned includes tasks like outlining, researching, and drafting the paper to serve as a set of goals for students working on their research paper.

Taking this a step further to encourage the practices that produce good writing and researching, Annemarie and I used the Habits and Dailies of Habitica to reward students for tasks like 30 minutes of uninterrupted reading/writing, exploring the citations of sources, and writing 1 page for the paper everyday. Together, these three components of our Habitica Challenge (To-Dos, Habits, and Dailies) divide up the process of writing a research paper into manageable pieces for undergraduate students, and award students who complete these tasks regularly with experience points and gold in Habitica.

If you want to dive deeper into the specifics of Habitica or our Challenge, either reach out to me with questions or signup for Habitica, send me your Habitica UserID so I can invite you to Annemarie and I’s party, and then join the custom Challenge we built.

Finally, we recognize that at face value, this prototype appears very systematic and would yield standardized writing. Therefore, using this in the classroom would require more explanation and emphasizing to students the flexibility of their writing process in conjunction with the framework we developed using a Habitica Challenge.

The featured image is provided CC0 by Olu Eletu via Unsplash.

My Vision (and Search) for a Connectivist Graduate Program

For the last year, I’ve been contemplating graduate school. I’m still researching and evaluating various programs around the world, but I wanted to take a second and reflect on what I desire from a graduate program. I have many answers to this question, but let me expand upon this idea:

I want a graduate degree program where students teach some of the courses in the curriculum.

I don’t believe this is too outlandish since I’m looking at programs in the field of education, possibly within instructional design. But I’ve had no luck uncovering such a program. So, for now, I’m going to dream. What would such a degree program look like?

Anatomy of a Connectivist Graduate Program

I envision a program founded upon connectivist learning philosophies and comprised of two components:

  1. A core set of curriculum that every student must complete. This is crucial for standardizing instruction for degree components like research methodologies and models/theories of the discipline.
  2. An additional set of courses led by students based on their own expertise. These are intended to be open-ended in regards to content and practice and would vary year to year based on the student body.

To me, a connectivist program necessitates a particular anatomy and entails thoughtful design. As an example, a degree like this would require a set cohort of students that progress through the curriculum together. Such a cohort would need to be comprised of diverse individuals from different backgrounds, possessing a variety of skills. To ensure such diversity, there’d need to be an application process that not only considers expertise, but also establishes cohesion in terms of student backgrounds within each cohort. In other words, this entire process requires careful design considerations.

If it was possible, there would still be several challenges to overcome.


The skills to thrive and succeed in a connectivist degree program are not the same skills present in typical educational environment. For instance, I anticipate humility would be a critical element of a connectivist degree for everyone involved. There’s a significant discomfort about not knowing the exact direction of a program as a student or as a teacher; and overcoming these feelings would require a strong emphasis on community and active, inclusive communication between all parties.

Additionally, I foresee accreditation being a serious stumbling-block. In fact, I proposed a “core set of curriculum that every student must complete” as a solution to this challenge. Program viability depends on the consistency of educational quality and rigor from year to year for each cohort. Accreditation is a conversation well beyond what I wish to tackle in this post but it remains a significant challenge. (Not to mention, I don’t have the answer to accreditation anyways.)

With these two challenges, I hope that I’ve illustrated the complexity of design for such a program to exist—intention and care in developing a connectivist graduate degree are imperative. Still, I am determined! If we are to produce the next generation of educators, critical instructional designers, etc., we need to utilize the educational philosophies we champion in the designs of our programs themselves.


Since I’m still dreaming here, I want to explore a couple of my favorite questions.

What courses would I want to teach?

This is one of my favorite questions in the context of a connectivist graduate program!

One course that I’d love to facilitate would involve exploring productivity using affordable. I know this may sound a little out-there, but I imagine a course where everyone is limited to $300 worth of technology and must participate with minimal computing devices—including designing instruction to operate on inexpensive technologies. Specifically, I’m interested in engaging others in curriculum around $100 laptops, $50 phones, or $50 tablets? What does a Domain of One’s Own project look like under these parameters? A portion of this curriculum would focus on socioeconomic barriers and issues related to digital redlining.

Another course I’d love to teach would focus on interests that I’ve explored in both GOBLIN and XP—I’d love to teach a course about digital storytelling, game design, and what games have to teach us about learning. I see many opportunities to engage others with information literacy, media literacy, and various digital literacies while participating in experiential learning and exploring creative expressions. Ideally, part of this course would involve developing games and discussing them as transformative experiences with opportunities to pursue action research and/or academic research.

What courses would I want to take?

On the flip-side of teaching in a connectivist graduate program, there are many topics I’d love to explore.

For example, I’d love to learn more about practical use cases of APIs in the classroom and beyond. From personal workflow automation to manipulating sets of data across the web, a practical API course sounds phenomenal. I’d imagine course projects would range from building APIs to utilizing public APIs and engaging in the conversations of the future of APIs in education.

Also, I’d love a course on “crowdsourcing” and how it can be implemented instructionally into courses and/or research. Topics like large scale community driven problem solving and hosting crowdfunding campaigns for social work. These projects would make for some spectacular curriculum in my mind. Crowdsourcing as an instructional tool is not typical and I see a lot of potential around a such a course since there are a multitude of directions and applications for the idea.

Looking Forward

I know this post presents small and specific examples as part of gross oversimplifications of larger ideas. But I write because I see value in a connectivist approach to graduate education. I provided examples of student-led courses because they demonstrate to me the strength of connectivim and highlight where traditional curriculum falls short. Student-led courses can be built on personal passions and current conversations. A dynamic program might be tailored to the participants, current technologies, and cutting edge scholarship; not to mention, scaffold greater transference of connectivist (etc.) theories to practice!

At the end of the day, the core of my dream—what I value most in my education:

  1. The opportunity to be viewed as an aspiring scholar, rather than just a student;
  2. A program that practices what it preaches, instead of defaulting to lecture and discussion of readings;
  3. The promise of growth and not feeling indoctrinated into standardizations of thought;
  4. Connecting with a community that involves and cares about everyones struggles, development, and experience.

That is why I’m envisioning a degree program constructed with connectivist learning philosophies because we should make our programs reflective of the educational ideas we champion.

Before I close, I want to take a moment and shoutout to Martha Burtis & Sean Michale Morris for their recent talks on Critical Instructional Design:

Although the topics from their presentation does not necessarily relate to the content I cover, their words were an “inspiration catalyst” for me to finish writing this post, which began a few months ago.

Anyways, what are your thoughts on a connectivist graduate program? Is it possible? What are the risks? What are the benefits? Am I crazy? 🙂 Let me know.

The featured image is provided CC0 by Baim Hanif 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!

Anatomy of Slaying GOBLINs – #OpenEd16 Presentation

Last week, John and I gave one of my favorite presentations while at #OpenEd16. We spoke about our game-based professional development program, GOBLIN. During our 25 minute presentation, we combined role-play, gameplay, storytelling, and discussion to emulate the experience of participating in a session of GOBLIN.


To add subtle hype to our final-day-of-the-conference session, we distributed a few sightings of the GOBLIN via twitter:

These “sightings” aimed to invoke curiosity and set the tone for our presentation. John and I intended to paint the attendees of #OpenEd16 as warriors we’d gathered to consult and help us defeat the mighty GOBLIN. As soon as the session started, the role-play was already in full swing. John and I introduced ourselves as the Guru’s of these lands, seeking aid from valiant warriors. We were not disappointed.

One of John and I’s worries of the extensive role-play in our presentation was soliciting buy-in from participants. If role-play is not fun, coherent, or accessible, then it will not be well received—and like GOBLIN, we had crafted role-play into our presentation and staked success on this design. Fortunately, we were relieved at the laugher and feedback from Twitter inspired by our approach. We’d put a significant amount of thought and craftsmanship into how role-play would be integrated into our session and the results were fantastic:

My favorite line to deliver was about the computers, tablets, and smartphones of the participants:

These comments were not inconsequential. They allowed John and I to layer and tailor our own ideas over the real world. We were framing tasks in new light—breathing perspectives and meaning into normally trivial endeavors. In practice, John and I capitalized on the world we created with a short research game.


With our fantasy universe was established, we engaged participants in a simple game. The task was to submit open resources like images, video, or software to goblin.education/opened16. This crowdsourcing of information inflicted damage upon the GOBLIN. The more resources procured, the more points removed from the GOBLIN’s health bar:

Gif of GOBLIN being damaged by recourse submissions

There were so many people attempting to submit resources simultaneously that we crashed the website for a couple minutes! (Which was fine as we only need to demonstrate the concept of the game.) Nevertheless, thanks Lee! 😉


Cartoon campfire

Following the game, we launched into the history of GOBLIN. I framed this story in the context that John and I had encountered this menace before and needed to inform these warriors of the GOBLIN’s origin. This weaving of role-play and reality sure made for some memorable storytelling!

The birth of GOBLIN is quite simple; it arose from a single question:

This question drove the development of GOBLIN. We wrestled with it as developers/instructors and we used it as a point of engagement for our faculty.

In addition to this foundational question, John and I practice experiential pedagogies, and pragmatically, this means we use the concepts we’re teaching in the design of the instruction:

In practice, this meant we:

Once we established these two core ideas in the genesis of GOBLIN, we explained our development process and how open educational resources enabled us to build character cards for the table-top, D20 based RPG named GOBLIN.

But the GOBLIN game was merely a primer for discussion of pedagogical concepts like scaffolding, overcoming failure, and gamification (etc.). These discussions and the exorbitant amount of optional homework completed by faculty were where we engaged participants in professional development. Together, these aspects of GOBLIN resulted in the highest attendance of any faculty learning community we’ve ever facilitated (even ones where iPads were given as part of their involvement)!

However, the story is not all fun and games. GOBLIN suffered from a lack of equal representation among the characters. For instance, it was difficult to find open female artwork that was not heavily sexualized. John and I made it a point to diversify our characters as much as possible. We used labels to imply gender ambiguous artwork was female and ensured that no more than half of the characters where explicitly male. But even with our attempts, we still received feedback that greater diversity should be present. We agree and plan to keep working at improving this weakness of our program.

Slide from GOBLIN presentation showing female character and implied female character, sorceress.
Female rogue and implied female character, sorceress.


Fortunately, we concluded our presentation in several minutes of open discussion and talked about these shortcomings with the attendees. There were some great suggestions to engage art students at the university in producing open artwork for GOBLIN.

Others spoke about artwork and their fear of competing against high budget games. John and I let the discussion evolve naturally and many great points arose from these statements:

To wrap it all together, Erika Bullock gave a testimony as a student who participated in developing games for class assignments. She attested to the potential of learning inherent in that design process and her comments encouraged instructors to consider the value of games as instructional opportunities.

What a great time of discussion we had. John and I enjoy crowdsourcing ideas from the discussions we host in GOBLIN or in presentations about GOBLIN. Learning is best as a communal experience. 🙂


Presenting at #OpenEd16 was a phenomenal experience. The opportunity to share ideas and work with many of the people I look up to is a fantastic “right of passage.” Like Terry said in his #OpenEd16 reflection, “It is VERY satisfying, when you get up the nerve to tell [your edu heroes] you admire their work…to see them seem genuinely grateful for the praise and interested in who you are.” I couldn’t have asked for a greater audience and location.

One component of the presentation that folks might not have been aware of at the time, is that the entire presentation was a reflection of a GOBLIN session. We used a game to set the stage and add context to the discussion we wanted to facilitate. There were some extra components since it was a presentation, like the dive into GOBLIN history and the how the building process was impacted by open resources. But overall, very similar structure between GOBLIN and this presentation about GOBLIN. #meta

From the feedback we received and the questions following our presentation, I’d call the session a success. I made a lot of connections with folks interested in GOBLIN and look forward to the working with them.

As a reminder, GOBLIN is built using open materials and is also licensed openly for you to take it, adapt it, use it, and expand it. If you want some assistance with the materials, let us know. Be aware that we’re still building pieces of the GOBLIN  website and improving implementation and distribution.

Also, if you want a copy of our slides, here you go:

Finally, if there’s one way our presentation will be remembered, I’m glad it’s because we gifted D20 dice as swag. 😀

The featured image is included with Mark Morvant’s permission.