What is LRN? What are Webcomponents? Why is it the future?

If you’ve been paying attention to twitter, I’ve been rambling on and on about 1 thing lately. #Webcomponents / #Polymer. Depending on the tweet I use one or both. It’s not that I’ve left the #drupal community or converted elmsln over to a different platform; it’s that I’ve found a design paradigm that I can’t un-see.

Webcomponents

Let’s back up a bit.. What are Web Components? Webcomponents (of which you can find many on the webcomponents.org community site) are moving along as a recommended W3C specification (hasn’t 100% stabilized yet but it’s been in the works since about 2014 when Google really started pushing the idea and currently all major browsers can support them via polyfills or javascript filling the gaps). In other words, really smart people that meet to discuss the direction the web should go have said that all browsers should natively support the concept and are largely in agreement about the way to do it (very different from when they were proposed in 2014 with no route to implementation).

Webcomponents aren’t actually 1 standard, they are 4 standards that when paired together, make web components possible. If you are interested in the 4 specific standards you know how to google but TL;DR version:

  • Webcomponents are made up of Custom Elements that are Imported into the page
  • This is a fancy way of saying a <custom-html-tag-like-this> can be added to any webpage like this <link rel=”import” href=”../custom-html-tag-like-this/custom-html-tag-like-this.html”>
  • Modern browsers implement a “shadow dom” approach meaning that it renders the contents of custom-html-tag-like-this.html meaning that it doesn’t need a compiler like Angular or other web framework in order to render (which means much faster then them at doing so), then at run time sees the <custom-html-tag-like-this> tag and goes “Oh, I should throw this in its place!”. Shadow Dom also enables “scoped CSS” which basically means that elements present themselves exactly like they do in documentation as opposed to influenced by global CSS.
  • Browsers have all agreed (to varying degrees of implementation thus far) that these make sense
  • This isn’t really that different from the HTML5 <video> tag as far as how the browser processes that to build a player to run the video

What’s in a custom-html-tag-like-this.html file?

That’s the best part, everything required for just that single tag to do it’s magic. So you get a very clean file that has dependencies (since webcomponents can reference other webcomponents), css for this component, normal looking html (though it could also be other <custom-tags-that-you-made> since they stack just like normal HTML), and javascript to define custom properties and functions.

We’ve been working on many but I think lrndesign-blockquote is one of the most straight forward examples we’ve produced thus far. This allows us to wrap the <blockquote> element in a structured way so that we can provide new options / attributes. This will allow our end users the ability to write something like:

<lrndesign-blockquote decorate quote=”It was the best of times, it was the worst of times” citation=”An old dusty book”></lrndesign-blockquote>

and have it show up in the browser like it does here.

Polymer

So now that we have working knowledge of what a Webcomponent is we can jump ahead to Polymer. Polymer is a google backed community / open source project that effectively helps solve the chicken and egg issue of developing against new standards:

  • Chicken: Developers will only implement the standards browsers have
  • Egg: Browsers only implement the standards developers will use

To combat this (and provide general efficiency when building) Polymer has created what are known as Polyfills, or javascript that fills in the gaps in browsers to support different aspects of a specification. These Polyfills progressively enhance IE 11, Edge, Firefox, and Safari in order to make them able to support all aspects of the Webcomponent specification as best they can. The idea being that these training wheels can be taken off / modified as the other browsers implement the 4 parts of the webcomponent specification.

You didn’t mention Chrome or Opera

Correct, because all aspects are natively implemented in both which means your webcomponents you produce run crazy fast in Chrome and Opera, as if it’s no different from normal HTML!

Polymer also comes with a Command Line Interface and some other efficiencies when building webcomponents that make it much faster then building without. Basically a single command of polymer init in a blank folder asks you prompts and then starts downloading and positioning code in the right places.

Then running polymer serve –open and polymer will start a mini-webserver to serve up your element as a documentation site like this one. It’s pretty damn magic and incredibly easy to get oriented to.

So this is all on your generally less-technical ELMS:LN blog because…

Because we’re working actively on building out our own series of custom HTML elements intended for ELMS:LN but we are planning and developing them in a way that they will be usable by any educational or non-educational solution. These tags will all be open source individually and packaged in a way via our ontology that allows for remix and reuse in amazing ways.

LRN – Webcomponents for learning

We’ve prefixed these tags with three letters to make them very easy to read and say as a sentence: LRN. This also is abstracted from “education” so that we can share terminology and design needs with training and mooc communities of practice. You can see demonstrations of our current tags we’ve built through our webcomponents.org organization page.

lrn is broken into 4 levels of tags which you can read about in our ontology documents. These are:

  • lrn – an instructionally focused group of elements
  • lrndesign – a design focused group of elements
  • lrnsys – a behavior / system layer group of elements
  • hax – lrnsys tags which are more repurposable then even lrn so named differently

Together, we can build a well documented style guide for the expression of educational concepts that will have no system specific boundaries. These elements can be loaded into any system connected to the internet so long as the tag definitions are imported. In ELMS:LN we are obviously doing this via a Drupal integration, but there’s nothing stopping us (or you) from running these in any other solution you can come up with!

Design elements (lrndesign) are abstracted from logic (lrnsys) and purpose (lrn) driven elements. Instructors / instructional designers would then be able to write an html tag that has the exact purpose of what is instructionally significant about what they are trying to write instead of constant translation of concepts and assets to code tags. It also will allow us to build a method of content construction we are code naming HAX (short for headless authoring experience).

Video showing our shared future

This is a video I shot just as I was about to make a new webcomponent. It jumps in right at the point that I’ve copied an existing one and renamed it, so it’s a bit of jumping around talking through what works and how it works while at the same time me just coding / fixing some issues that pop up. We’re always looking for people to join us both as developers and idea people sharing how they could utilize something like this best for their needs. Let us know what you think!

Advertisements

University API Un-conference Debrief

I recently attended a new conference (well new to me anyway) called University API Un-conference. This is the 3rd time it’s run at BYU and is sponsored by the CIO / BYU Enterprise Architects group. They didn’t ask me to write this but in favor of transparency they sponsored me coming out to talk to expose attendees to the ideas driving ELMS, especially in areas of xAPI.

But anyway, I’ve been to plenty of “unconference”-ish events given that Drupal is usually pretty informal, hosting Birds of a Feather (BoF) rooms where anyone can write down a topic and meet informally. Room number, whiteboard, and go. I was pleasantly surprised by the quality of a facilitator lead unconference!

We started the day writing a brief topic descriptions on big sheets of paper, then we sat in a circle and gave like a 20 second pitch of what our topic idea was. Then we put them up on a board based on room and timeslot we wanted. It was an interesting collaboration and meet and greet in one. There were also ground rules associated with no worrying about who was in your session or how many and also not getting offended if people moved around.

Topics were all over the place. From university API (they have an API-frist architecture that all systems integrate with, it’s pretty incredible in and of itself), “help me learn about API” style working sessions, pet projects, LRS development, Swagger.io documentation talks, Event management APIs, ELMS / OER family of topics; really anything edtech builders it was there. As I expected, there were several past Apereo attendees / member organizations including Duke represented. I figured as much because I felt incredibly comfortable with the audience, people knew how to build things instead of just buy them, and the open culture really creates a vibe not present at some other edu events.

My big take aways:
– Swagger is something I really need to learn more about. BYU has a system similar to the elmsln read the docs integration where documentation can be ingested and replicated in a drupal site (funny, same workflow, same starting point, same endpoint, different bridge code to do it). It would really help us with our Polymer elements long term I think since it’s for building and documenting APIs clearly.
– Tone is incredibly important. During an OER discussion, I mentioned the notion of overthrowing past governence structures (said much more flippently then this even) and someone challenged me as to what I meant by it. She then described what she thought I was saying, which was the same thing basically but sounded way less threatening. This stuff only happen in Open and when all parties are willing to question and be questioned as equals.
– API centered design, several years after being put into practice, is something incredible to behold. Day 1, it can be painful and those painpoints were expressed, but now a few years out it’s rather amazing the kinds of integrations / solutions BYU can craft as a result of this approach.
– The idea of an “event” / “activity” API endpoint is something I’ve never thought of before and something they have working very well (even if it’s early on) at BYU. The idea is that any action that you want to track / report of any kind gets sent to an events endpoint. Anyone can create a type of event / action and supply the data to back it up
– Sovrin – I’ve never heard of it before but Sovrin the technology for global distributed identity (think blockchain but for identifying individuals securely across any solution out there) is a pretty awesome concept that’s gaining some traction. There were several discussions around the idea of Sovrin the technology and Sovereignty as individual student ownership of data and empowering students to be able to take their credentials / skills / badges with them. They are calling this Learner Profile and while it’s still in the early dreaming phases, I understand why we see eye to eye on so many things. Once you start thinking in terms of redecentralization, you can’t unthink it.
– I love hallway / lunch conversations. I met someone who had a PhD in the History of Technology; which is an STS topic that’s right up my alley from my Information Altruism work.
– Get off the island is more then just code – I was able to provide a unique perspective to attendees (and them to me) as a result of my bulk of experiences. Several times I referenced the Writing conference I attended (cause no one there did), Apereo / Sakai work (which I’ve been to and others have / use Sakai so shared experience from multiple perspectives), and being a hard-core Drupal developer when many people were sysops; which gives me a unique perspective from the “inside” of a very different open source community from the open culture of the event. Overall, this really validated that I need attend less Drupal events with people I’m immediately at ease with and instead try and search out these hidden gem events.

Validation
I don’t require it, but wow does it feel good sometimes. It was very nice to be some place with people I didn’t know, who didn’t know me or my work, and have them see the totality of the work our team has been doing (both PSU college centric and ELMS:LN developer centric) and be floored by it. It’s funny, I kept saying how blown away I was with the level of open culture exhibited and the API infrastructure they all were apart of, while at the same time people kept telling me my work was the first sign of a way forward beyond the thinking of the LMS without breaking the student / faculty cognitive load issue of multiple solutions. I had a couple people tell me this was the first tangible example of a NGDLE they had ever seen and I had many long conversations
Other things:
– People are looking for what OERSchema provides but not realizing it. In describing the problem it solves and demo’ing it to a small group they were very impressed with the idea. Always fun to present someone else’s work and have it validated.
– We’re on the right track with Polymer, BYU’s been doing it with different components in the form of straight up webcomponents for some time and have been happy with the results.
– ELMS:LN is maturing to a point that I can present the idea at a high level and delve into the trenches and not have to hide anything along the way

Going forward / Next steps
– Hopefully we can get another voice from Duke to vouch for us to the Open Apereo foundation board of organizations. We need 1 more voice to say ELMSLN should be accepted into their incubation program. This would help the project gain visibility but more importantly provide our community mentorship in what practices we could be doing a better job of with getting people on-boarded and sustain efforts.
– We need to do a better job justifying xAPI in the age of Caliper among some people, but because of our worldview with regards to data (anything is a course, anything an action, anything learning, not just what happens in higher education LMSs) xAPI will always be more flexible. It might be messier, but it’s going to always allow for more flexibility in design over Caliper. This isn’t to say we shouldn’t be open to supporting Caliper, but it might be more of a filter that converts xAPI statements into Caliper ones based on skimming off the ELMSLN context properties we’ll mixing into xAPI to extend it.
– Standards all the things; We need to work more on the external tool integration aspect as well as supporting LMS APIs natively. This would be the next step in suggesting this system is higher then the LMS in what it can do and what it’s meant to provide as an ecosystem driven experience.
– Libraries need an OER hub / routing solution: Members of Duke & BYU had an interesting perspective on the OERSchema / Git ingestion workflow for markdown files. What if a library was the curation engine for OER to vet it for quality, and then much like an old library, provided an open bookshelf of sorts that people could checkout the books from. In this connotation, checking out a book would be cloning the repo so now you have a copy. This would allow distribution and help ensure knowledge never dissipates (a critique Michael Collins has of Database driven / single point blogging platforms / silos). OERSchema becomes icing on the cake as it would incentivize faculty to not just tell people to draw from an online text but allow them to legally and easily pull the book apart and remix it into new forms

Overall this was an awesome event and everyone was very approachable. Thank you all so much more having me and I can’t recommend this event enough and hope it comes out East Coast (Duke tossed out the idea of hosting toward the end of the year which I’d be up for coming down to).

Growth

I’ve written before about the journey I’m on. How I see our work, where I think it’s going and some of where it’s been. Call it high altitude, conference high, I don’t know what; but I had to do stream of consciousness for the thoughts in my head. This is what spilled out, turned into paragraph form instead of 140 characters at a time

I was in deep thought / meditation / prayer one day in 2014. I said, my work life has no real purpose, the thing I do every day at work, it’s just that, work. It only benefits a few 100 people, which is neat; I contribute code, help people in small ways which is great, but not lasting.

In that quiet. I found clarity. I found a design for what I should be doing, abstraction beyond abstraction. Designing for the unknown and encouraging the unknown, designing to be able to capture and sustain innovative efforts instead of losing them in one-offs and white-boards. A problem that everyone seemed to articulate but no one could recognize an answer it. I said this doesn’t exist, and I couldn’t unseen the picture in my head. A series of interconnection following the same pattern. A fractal in my mind.

I had to pursue it. I drove myself into the ground physically working towards it while trying to be a good husband and father to two under age three; struggling to be a good family member in the ways I knew how. The parent dilemma as I’ve been told it’s called. The vision was a huge time blackhole.. and the more I talked about it, the more I realized no one got it. I was alone in my own head, no one to look to for advise, no one to collaborate with, no one to encourage my idea. They couldn’t see the picture in my head or understand why as a concept it would be useful.

I had a talk accepted at a small event in Ohio, 100s of miles from where I work. I was really excited to talk about this idea and show, something, anything that would start to demonstrate it. My heart sank as only 5 people we in attendance for that talk, 2 of them people from back home that were good friends of mine. I swallowed and said “screw it, it’s still worth it” and laid out the vision, starting with my moral obligation to my kids to build a better world in whatever way I knew how.

And for the first time in a year, they got it. People I knew and had been explaining this to for months finally had their eyes opened to what I was trying to express. This was early 2014. Later that year, I had a talk accepted at DrupalCon (1st time ever). I laid this concept out and the state it was in. There were 100 ~ 120 people there, and there was interest and some excitement… but nothing happened.

I got accepted to OpenEd 2014. I presented on this idea as being key to laying the groundwork for open publishing systems, an OER factory and the way of liberating our institutions knowledge silos while achieving their public-good mission we are all put in place to serve. A friend from twitter tweeted “LOOK AT THE PASSION” as I was practically brought to tears describing the thing in my head to a group of people that would be eager to hear about it. I had a few questions, some good ideas and enough energy to generally sustain me emotionally afterwards. But still. Nothing happened.

I dug deeper then I knew I could and took my game to another level as a developer. I went from being a simple Drupal developer with dozens of contributions to a Full-stack developer versed in Javascript, CSS, Bash, Drupal, PHP, GIT, and any library I could get my hands on that I knew I’d have to figure out in order to achieve my dream. My friends started to notice the change in me. That this incredibly unserious, sarcastic late 20s colleague, wasn’t just working to get the job done; he believed in something. And finally, after years in the dark and almost 2 years of rambling about this vision… something happened.

My friends and colleagues started to believe in what I was talking about. They saw how passionate I had become about not just code and donation of effort. They brought their code, their time, their ideas, their take on what I was doing, and together, we all started to make it our own. They started looking into jobs they could take where the jobs could be accomplished using the approach I was talking about. At times, they took opportunities paying less money and having less job security to get a chance at working on this vision. They started working after hours, nights, weekend commits would roll in, issues would be discussed at social gatherings. And not only did the vision become shared, but our friendships grew stronger. “They” don’t work for Me or “My” project, we work toward our shared vision of the world we can make possible. Better, together, forever open source.

From those days, and meetings and blog posts, and videos, and code commits, we started to slowly attract adopters. People could see not only that this was an interesting idea, and that they wanted to play with it, but that they actually could play with it. The vision was becoming a real, tangible thing. No longer a dream in my head, our diagrams on our whiteboard, but a real thing people could touch and experience, people who had no idea what it was starting to grasp the concept in less and less time. My tone changed, my duration of session to get to the payoff changed. Hour long talks could be consolidated into 30 minutes, then 10, then 5, and now an elevator pitch with visualization to back it up.

Excited, I submitted for OpenEd as did a friend, but we got rejected. And for the first time ever, I said “I love and support this event, I’m going anyway” (something difficult to justify financially to the same degree as presenting as unfortunate reality). I listened attentively, picked up new ideas, new ways of speaking, new design patterns / use-cases I hadn’t thought of and others that were validated by going. The whole time I worked. And people in the audience, a solid mix of builders and users of OER, kept peaking over my shoulder, saying “Ooo.. what’s that?” seeing a terminal window, code, and a webpage that looked like something worth OOO’ing about.

Then, I sat in a session by people I respected a lot at a technical level. A random person in the audience asked a question about LRS technology. The answer, while valid, wasn’t really in depth. He seemed genuinely interested in seeing an LRS. So, as an LRS is part of ELMSLN (via Learning Locker though any will work), I walked over and asked if he’d like to see the one we use. As I started to show him learning locker and where our statements came from, he kept saying “No no, wait, what’s that, show me that system”, referring to ELMS:LN. I detoured a bit, showing him ELMS integration w/ Learning Locker via xAPI, how well that works, how early we were in doing it but that it’s the way forward. He gave me his card, said we needed to talk some time (a line I’ve heard too many times to ever get excited about beyond validation in that moment of work).

And an email showed up a day later, asking to do a little Skype call. Cool I thought, I’m always happy to show people Learning Locker.

We got on the call, and then another with more people, because little did I know, I wasn’t there to show them learning locker, the CIO’s office of BYU was extremely interested in ELMS:LN and my design methodology as it related to xAPI for distributed learning profiles. We discussed how we all envisioned using a distributed series of solutions controlled by the institution (or at times, not, just recommended) and developers to improve upon, bend and eventually break the LMS paradigm of singular, giant systems into a lego grid. We talked xAPI and how it’s critical in achieving this objective.

Someone got it. From no one in months, to someone in seconds. They got the approach and wanted me to show other people, so I just attended BYU’s UniversityAPI Unconference. It was a pretty incredible experience which I’ll do a separate debrief on because it’s a great event and I learned a lot.

For me though, to be presenting to members of BYU, Duke and other institutions, and have it be about the big picture (I talk on the minutia of Drupal usually) it’s a dream come true. I feel like my life’s work is starting to stick, because I laid down my shields, contribute openly, pursue contributors openly, build others up, help and reach out to anyone I can and try to get them using Drupal, Open Source, and maybe, someday, ELMS:LN to achieve the mindset that we have about education and it’s influence on society through technology.

We’re at a tipping point, I can feel the wave of emotion that comes with that tip. We’re not just onto something, we can demonstrate worth and it makes me want to NEVER discourage a big idea ever again. No matter what it is, if you can dream it, if you can stick with it,you can do it. This is fuel as much for you the reader, as it is for me, as it is a life lesson for my children when they get older.

Be. Just Be.
Be laughed at. Be ignored. Be told to shut up. Be told it’ll never work. Be told no one will get it. Be told you can’t make the world a better place. Be told “no open source project has ever been successful when originating in Higher Education”. Be told no one will adopt Drupal, let alone ELMS:LN. Be hated. Frowned upon. Misunderstood.

Just be, who your God, your worldview, your community, your industry, NEEDS YOU TO BE. And nothing less. Ignore the doubters, the naysays, the negativity. Because if people are telling you it’s impossible, in the age of singularity, automation and mass creativity at scales the world has never seen before, then you know you must be onto something.

Seek out those who build you up, distance yourself from those who tear you down, but always be willing with open arms to welcome them back in. Don’t scoff. Don’t “I told you so” or “That’s what I’ve been saying”. Just smile, be happy that they’ve escaped the trappings of their mind to see the world you are expressing (again, no matter what that world is).

We don’t just have code. We have an idea; and to quote V, from V for Vendetta; “Idea’s Mr. Creedy… Are bullet proof”. You can speak anything into existence if you just keep believing in it. Don’t back down, don’t let the negativity of this world, of the social media sphere, or your community get you down.

I am incredibly humbled today and ready to take a much needed break to think and reset. When I return, I’ll be refreshed and ready to keep setting the road ablaze with potential. We are… ELMS Learning Network. And we’d love to have you join us to build a better world! One line of code, one conversation, one course, one solution, one learning, one smile at a time, we will build a better world.

A reaction to “A Spartan LMS”

Original post: http://learningnuggets.ca/ed-tech-thinks/a-spartan-lms

My response below (this may be my new blogging style, reacting to the rest of the world w/ commentary, other person provides the prompt, and then I can word vomit :))

 

So to do the twitter thing: “This.”

This post is great, I love how you’re viewing the LMS as something that needs to be fragmented because of reasons of ownership, pushing boundaries, and the fact that CMS (which I’ll call Domain of One’s own in this case) based technologies can replace so much of the BS in LMSs without the cruft.

To the point of throwing the baby out with the bathwater (and past arguments of walled gardens vs completely open spaces) I’d like to propose this analogy. Envision the baby in the baby tub. Instead of throwing them out, when the baby grows and matures and there isn’t the same fear of drowning, we submerge the smaller baby tub into a larger bathtub. We do both at the same time for a time to get the baby acclimated to the new environment and the new freedoms of this larger space. We don’t immediately remove the baby tub or throw away the water from this tub, but we submerge it in a larger pool.

This larger body of water slowly, naturally, becomes one with the body of water in the smaller baby tub. Once the child is comfortable with the larger tub, they eventually exit of their own free will and eventually, we don’t need the baby tub.

In this worldview, I see the LMSs of the past 20 years to be that baby tub. A relic of the training wheels of online education. A forum system that needed to exist because well, our learners and instructors had no knowledge of the world. But as we’ve gotten our feet wet in the larger ecosystem of the web, we’ve lost the need for these training wheels. We’ve outgrown them.

So, how best to react when administrations and IT silos for 2 decades have handcuffed our institutions with purchasing decisions which are great for “good enough” but not for Great? Well, we need to take this baby pool submerged into the larger body of the web approach. This is where systems like ELMSLN come in (my baby). We know that you need an LMS (for now) and we structure ourselves in such a way that we assume that we’re going to be integrating with lots of things. We do this, while simultaneously besting the last 20 years piece by piece (which trust me, ain’t hard to do w/ most of the vendors out there).

So the question isn’t do we walk entirely, it’s what’s the course we can chart to make a clean break (some day)? I view elms:ln as part of a journey with the higher educational industrial complex. If it wants to survive the coming singularity, IoT revolution, app-ification of knowledge and eventual commoditization of “learning”, then it needs to lay down the vision of how to get off our single solutions before the baby outgrows the baby tub and has no need for tubs at all but instead gets up, plugs into Google “How do I do my job today?” and goes off to work; never having experienced tubs at all.

I’m not on your blog to pitch a product, I’m here to pitch the same world view you are espousing here (which is awesome). How can we best chart a course to an lms-less world (https://btopro.wordpress.com/2011/06/08/envisioning-a-lms-less-university/)? We’d love to have navigators like you join us in this vision to save (via improvement) the educational establishment we’ve all known and love.

A response to `Of OER and Platforms: Five Years Later`

Original post: https://opencontent.org/blog/archives/4892

I didn’t want this to get lost in the comments section but I found this post by David Wiley spot on, especially in his dissection of the LMS in the comments. As long as the LMS is still a dumping ground of stuff as opposed to a link farm out to innovation, it will never be innovation.

My response down in the comments, cleaned up to be a stand alone post:

Hollowing out the LMS is the only road they have towards innovation; if one of those common launch points was an OER provider that could be at least slightly more useful but I agree that when faculty treat their course as more of a website (via Paul Hibbitts GravCMS approach — http://www.hibbittsdesign.org/blog/) it’s the way forward.

Dr. Chuck is working on Tsugi to app-ify the LMS and unbundle it as well, which could make OER proliferation more possible at the system level. In this model, Sakai and other systems are effectively hollowed out *by design* via LTI launches, content item launches, and the items pulled in (innovations) are small decoupled stand alone applications —  https://www.tsugi.org/

I also have my own methodology in the game that sees the LMS fragmented (architecturally) so that policy can be crafted in a way that allows open aspects of course (content) to be open while closed experiences (private student – teacher engagements) can happen securely along side. We are building a self-federated ecosystem meaning any new part of the system can talk to any other new part of the system once it shows up. So we’re always able to account for the NextBigThing (n+1 thinking) in education or build new things the market hasn’t conceived. https://www.elmsln.org/

All three of these approaches are signs of the Next Generation Digital Learning Environment (NGDLE) which is NOT a product but a mindset and a way of implementing education online, which I think will directly result in greater adoption (or at least production as Open first) of OER. When systems are unbundle, ownership and privacy can be unbundled as well, leading to more robust, reusable solutions.

Speaking of unbundling, make sure to checkout OERSchema which ELMSLN seeks to use as a way of allowing Markdown Files (pure, portable, open by default) from Github to be able to populate and flush out content, interactions and more in ELMSLN (or any system).

Pointillism

I’ve been battling a lot of demons recently. You know them, they are the same 3 that we in open source and community work so often face. FUD – Fear, Uncertainty, Doubt. Certain events had led me to this point. Being generally overwhelmed by the pressures that increased success and scope of work bring, I keep focusing on the things left undone, unfinished, broken and still on the white-board; when something hit me the other day.

Daemons of progress

Fear – We won’t finish this, we’ll never finish this. What if it’s wrong? What if it doesn’t do what I think it will? What if I’ve sacrificed thousands of hours of my children’s childhood for something unattainable.

Uncertainty – We’re down a developer, will we get this back on track, how will we replace this need and keep moving forward. What’s awaiting me via email today to derail all progress?

Doubt – This will never catch on. What am I doing with my life. What’s the point. No one gets it. Who cares.

Standing too close

2016-12-31_10-33-46

Pointillism is an art form in which hundreds of thousands tiny dots form a painting. These dots when viewed to closely, just look like noise; a chaotic mess of tiny brush strokes, each with minor variations in color perhaps, but at the same time too similar to really tell what it is.

2016-12-31_10-33-56

As we back up from the painting slightly we still see chaos, a pattern but yet still chaos of blotches thrown upon the canvas.

2016-12-31_10-34-04

Public Domain, Wikipedia

It is only when we truly step away from the canvas that we see it’s true form; the clear picture of what it is we are trying to paint, one dot at a time.

This is elms learning network, from my perspective as the developer. I can see what we’re going for but sometimes I’m so focused on the dots that I miss the big picture of what this really means for well, education. When something is your life’s work, it can be hard to look back on something while building it. Much in the same way we get lost in the whirlwind of building a family, a career, a life so much so that day to day at times can seem routinized, almost mundane; but when we look back on memories, moments in time, we see how special what we have truly is.

At the end of the year, like any year, I’m usually shot; emotionally and physically. I need a reboot, and I got one in a way I didn’t expect. I watched myself. While trying to put together a talk for some conferences, I wanted to see the way I talked about the platform the last time I submitted a talk there (2014). Drupalcon 2014 ELMSLN talk

What I saw I almost couldn’t believe.

As I rambled for 20 minutes, trying to be funny (emphasis on trying), I start demo’ing this crazy thing I’m talking about. It includes no less then 5 different interfaces, all at different states. A build breaks during the demonstration. It’s UI patterns are non-existent, just an idea, a lot of urls, broken builds, no UX, no users. Just an idea being put forth by a crazy person that couldn’t understand why no one got it. Duh, I don’t know how to use it at this point.

What I needed

I got. I needed to see that what we’re doing now is the dots. We’re changing the hue of our dots, we’re sharpening the image a pixel point at a time, but the picture is becoming a lot clearer if we’d only step away from it. As I compiled these highlights below, I am humbled and grateful for the contributions of our budding community. One thing becomes clear as we step away from our dots: We’re killing it!

  • We gained another full time developer on the platform (which, we’ll be refilling in 2017) bringing us up to 3 internally + several IDs across units influencing / bug testing + 2 part time student developers. (in 2014 this was 1 + 2 ids)
  • Buttercups in the UK is hiring a PHP / Drupal developer to help support and build out ELMSLN further for them. (in 2014, this wasn’t a thing)
  • We had 13 different people make core commits to ELMS:LN this year, 5 from primary core devs, 2 from faculty, 2 from IDs, 4 from Drupal developers during sprints (in 2014, there were 4 total)
  • There have been 18 point releases this year, up from 2 the previous year, seeing us go from 0.0.2 to 0.6.3 with 0.6.4 (more bug fixes) & 0.7.0 (stable studio) expected early in 2017.
  • We closed (an insane) 1,215 issues in 2016 and at present have 114 issues open!!
  • We adopted MaterializeCSS as our design framework and unified all themes in our network under this brand (previously we had no design standard) and applied it successfully to all systems in the network
  • We adopted xAPI to start doing learner analytic tracking across all content and starting to visualize it for faculty and staff, as well as doing survey and self-check tracking.
  • We had a faculty member get ELMS setup on his own and talking to Learning Locker to start doing response tracking in H5P!
  • We’re now able to ingest markdown / flat file content and turn it into outlines of material (this is rather insane)!
  • There were 3 ELMSLN Sprints at different Drupalcamps this year (PA, Ohio, and NJ)
  • ELMSLN was presented at 6 different events, did a major drupal podcast interview and was presented in 2 webinars. It’s also already got 3 accepted talks for next year at major education events (2 at Educause ELI, another to be announced soon), an invite to be announced soon to speak at a major FOSS supporting university, and 2 webinars planned.
  • We built multiple accessibility tools, including a voice based navigation system (crazy)
  • We stabilized and moved into production our Media and Interact solutions, moved into beta Studio and are far along into building quiz / testing capabilities for the assessment system.
  • We built 2 core APIs, one for scaling back-end jobs / internal processes and one for Angular / JS based app development
  • We had 2 commits to Drupal core accepted from testing and feedback in use in ELMSLN!
  • We’ve got one deployment on EC2 that’s got 40k users!

As I step back now, I see the picture we’re building together, and it’s pretty amazing. All we have to do is keep going, keep making things easier to use with more capabilities, keep pushing the envelop and keep pushing forward because the only thing we have to fear is FUD itself.

Happy new year! Let’s make 2017 brighter, bolder, and more usable then last year (and the one after, and the one after…)!!!

We can no longer turn our nose to an industry

I sat quietly, removed from the rest. I didn’t fit in. I didn’t know if I had any ability to fit in; I don’t speak the same language. The language of a rhetorical academic (even that I’m sure is used incorrectly). And so, out of my element (by choice) I sat and listened to an amazing speaker discuss his journey from insider to… outsider. This is the issue of a cross-sectional as well as those who both need and can generate new technologies; living on the bridge between universes (but that’s a good thing).

I sat, listening to the keynote address the crowd as if they were family. He was one of them. He came from them, he had been where they had been and been in their community for some time. He had ascended the ivory tower, to which I’m sure some showed scorn (after all, pure research is why we get into this gig). He then related this fact (that they probably hate him for doing so) to friendly chuckles.

He then started to talk about how he built a product that some of them used and that while this was an idea that he had been working on within an institutional organization, that the structure itself would never allow it to overtake the corporate stronghold of a single player in the industry. He then said that they considered making what they were doing open source, but that it could never been open source and be successful because no open source solution has ever started in academia and been successful (a point that I reject but still).

Feeling the mood shift in the room when he talked about having to incorporate, he stopped and said what was pure gold for me (not exactly quoting):

I see how you responded when I said we had to build a company. It’s antithetical to how we academics want to operate. But I’m actually trying to do something. We can all complain about how much we hate _________ and turn our noses up and feel good about ourselves. We can skip using that product and encourage our peers to do so as well, but guess what; All your universities and college are still paying them. So they’ll still suck, and they’ll exist forever. So this is me taking a stand, because we need more options.

Some of this is that it was several months ago at Computers & Writing 2016 that I heard this talk ( I believe) so the quote is off; but much of the context remains. If no one stands up. If everyone simply scoffs at what has become the status quo and doesn’t provide a challenge to it; it will remain the status quo. And we’ll feel great, wow will we feel great. We hate “the man” and we rail against the system of control that our lesser colleagues just can’t see through. But we do nothing to provide them with a different solution.

In technology, much like in politics, you don’t catch flys with vinegar. You don’t win people to your system, your way of thinking or your way that you know leads them to freedom by being an ass and simply thumbing your nose at the establishment.

Don’t do what simply feels good. Do as Alinsky said

Do one of three things. One,go find a wailing wall and feel sorry for yourselves.Two,go psycho and start bombing-but this will only swing people to the right. Three,learn a lesson. Go home,organize, build power and at the next convention, you be the delegates.

Real change doesn’t come through violence, hate, anger, or self-loathing. Real change comes through building community, organizing, and doing whatever it takes to become the thing that the next generation will grow to hate: the establishment.

The only way to usurp the establishment is to become that which you hate. If you desire change more then you desire winning, you know what to do. Polish, refine, always accepting feedback, always improving, always accepting any minor victory and not focusing on the lost battles, always accepting the new, always accepting.

Quit writing about how badly edtech needs change or how bad players in the industry are. Quit talking about what a cash cow this market is (looking at you TechCrunch), all the while decrying that the educational industrial complex as too expensive and too often missing the mark. These wailing walls do us no good but sure feel nice to relate to.

Go home, organize, build power. I have for some time now… and while it takes me from my family and friends, while it shifts my focus to commits instead of conversations, while it is devastatingly lonely at times to feel as I feel and work as I work towards unachievable goals… we are building something. Because while I used to be just I or the royal we… there is we now. And soon, we will be that much stronger; together.

Join us. The future wants your help. It needs your help.