I’ve been visiting an awesome community space in Oakland called The Omni Commons. While here I’ve been participating in some of their meetings and working groups. The other day some changes were requested to be made to the main website, I wanted to help out and decided to jump in!
The website has a repository on github.com which I forked and cloned down to my machine. It appears to be a straight forward HTML5 site but when I opened it in my browser none of the css files were rendering. I looked to see if maybe there was an issue with relative links to the resources but found no missing resources. Upon looking at the head I found no trace of any links to other resources only this cryptic include:
<!--#include virtual="/includes/nav.html" -->
The README.md file didn’t help at all (it was pretty much blank) and after some head scratching and some searching around I found out what this little bit of code is, a…
Server Side Include (SSI)
It is (according to Wikipedia) a simple interpreted server-side scripting language used almost exclusively for the Web.
I’d never heard of it but it seemed very cool and it is a nice little trick for including blocks of HTML code without having to rely on a modern website template engine which often requires having Ruby or Node or some other code base running. No this is old school, run directly through the web server, such as Apache.
It turns out that for SSI to work it has to be run on a server which is configured to render such files. I set up my virtual host and fired up the website once more.
No dice, the pages still weren’t rendering. I then found this tutorial from linuxtopia.org which describes how to configure the localhost to render includes. I then took to writing up some documentation in the README file of the project so that the next person who wanted to set up a local instance of the site knew what was going on. I’ve reproduced some of those instructions below.
Setting up Server Side Includes on Localhost
The Omni Commons website uses Server Side Includes (SSI) to pull in head, nav, and footer html from the /includes folder. So we need to set up your local environment to handle this. Much of the following information is taken from linuxtopia.org’s how to guide on apache ssi.
The SSI strings look like this:
<!--#include virtual="/includes/nav.html" -->
Once SSI is enabled this line will be replaced by the content of /includes/nav.html. This allows us to edit the nav once and have those changes appear on all pages with the above snippet.
The first thing to do is ensure that your server has the mod_include module installed and enabled.
The following instructions were tested on an Mac OS X (10.9) machine but should work on any Linux machine as well.
First we will examine the Apache Config file httpd.conf typically located at:
Make sure that the includes modual is present and active by searching for mod_include within the httpd.conf file, look for this line:
Pay attention to the line where +Includes has been added:
Options Indexes FollowSymLinks +Includes
Now we need to tell Apache to scan the proper files for includes. Typically, due to the extra server overhead, this is done only to files that are specified as having includes by using a special extension .shtml to indicate to the system that they should be scanned.
The OmniCommons website uses .html throughout, so we simply need to tell our local apache server to scan all .html files for includes.
Go back to your httpd.conf and find the line with #AddOutputFilter INCLUDES .shtml now add under that line:
AddOutputFilter INCLUDES .html
The hash (#) indicates that a line is commented out, because we want the config file to read our command we omit that hash. So this command is adding an output filter (AddOutputFilter) that applies Includes (INCLUDES) to all html files (.html).
You should now be able to visit your virtual host, in Drew’s case it is omnicommons.localhost.
Remember: The apache include will not run if you open the .html file directly in your browser, it must be served from the virtual host.
So I’ve traveled to Oakland and am staying in a Berkeley Coop called Lothlorian, which is a beautiful mess of 60 UC Berkeley students all living together in a cooperative style.
I’ve been spending quite a lot of time at this community space called the Omni Commons, which I’m sure I’ll write much more about in the coming weeks. Until then I just wanted to share that I’ve added our Change Up Meeting structure to the Omni Commons’ Wiki. Please give it a look and let me know if I can make it better in any ways. I hope to practice the game with the community a little bit before I leave so they might consider adopting it.
This weekend on the ALF Summer planning call we began talking about what the process for turning people into Agile Learning Facilitators (ALF) and how to establish schools as Agile Learning Centers (ALC).
This post will cover my ideas on these two subjects which are, in my mind, related. I’m going to focus on three ideas. Trademark and protecting the ALC “brand”, what an ALF is and what a process of “entitling” new ALFs should be, and the process for adding ALCs to our network.
At the core my feeling is that an ALF is simply an ALF if other ALFs say they are an ALF. Just as an ALC is an ALC because ALFs say it is an ALC.
Let’s unpack these acronyms!
Agile Learning Facilitator: This is a person who is trained in the methodology of Agile Learning. They are a member of the Agile Learning Centers network and part of the community of other ALFs. The title of ALF empowers that person to participate fully in the community: they are both the custodian and CEO of the ALC network. They are empowered to facilitate and Agile Learning Center.
Agile Learning Center: This is a school which is facilitated by an ALF using the ALC principles or accepted variations on those principles. An ALC can be a fully fledged school or a program within the context of a school or home school.
So, what if someone calls themselves an ALF or an ALC?
A trademark is any word, name, symbol, or design, or any combination thereof, used in commerce to identify and distinguish the goods of one manufacturer or seller from those of another and to indicate the source of the goods.
So there are two basic kinds of trademark. One is the ™ (trademark) symbol and the other is the ® (registered trademark) symbol.
Anyone can slap a trademark on their word, name, symbol, or design and signal to others that “this design object is ours!” So it’s a bit like licking your cookie so no one else eats it. It doesn’t offer many protections (it would seem, I’m no expert).
Trademark does not protect the company from another company that produces a similar product or uses a similar name. If such a thing were to happen, the original company would have to prove that it produced the name or design first, but still may not have a legal defense without a registration.
So we could start writing Agile Learning Centers™ all over the place but it doesn’t stop Agile Learning Core from becoming a thing. It then puts it on us to lawyer up and prove we were ALC first and they are trying to be ALC. It seems like a fine idea, giving us a little bit of protection, but (and I’m not a lawyer) I think that we could litigate in that situation anyways, ™ symbol or no.
The threat from without is much less of a worry than the threat from within.
I’ve seen this first hand as a “member” of Occupy Wall Street. Recently a twitter handle that represents OWS, a out reach resource, was litigated over by people who believed themselves to be the more authentic controller of that brand asset. This is a clear break down of the agreement around who is and is not “Occupy”. This from a movement with “official” documents reading:
“The people who are working together to create this movement are its sole and mutual caretakers. If you have chosen to devote resources to building this movement, especially your time and labor, then it is yours.”
Anyone could be “on the inside” of Occupy because anyone could simply start participating. ALC is in a similar situation. All of our knowledge is increasingly being documented to the point where someone could start an ALC all on their own. As such, our intention to make ALC open source becomes a means to fracture our network. All it would take is one divisive thing to break the whole network into factions. This is where I suspect the issue of trademark will enter: two factions of ALFs fighting over network resources such as the ALC brand, as opposed to someone from outside using the brand in a way that hurts us.
It is the use of these shared resources that make being accepted into the ALC network valuable. However the resources such as branding, which are easy to define and protect, are not the most valuable resource by far. It is the community of which you are a part which gives membership true value.
Therefore, the process of being accepted into the community holds much more importance than how to trademark and protect resources. I do think that developing a frame work for shared access to resources is an important process that needs to happen sooner than later, but it is outside the scope of this post.
Becoming an ALF
In James P. Carse’s book Finite and Infinite Games he describes titles as somethings we win from playing finite games. Much like Steve Lombardozzi might have the title of “Winner of the1987 World Serise” for playing a finite game of baseball, so too does an ALF play some kind of game to become an ALF. It is our job as ALFs to figure out what that game is.
I want to avoid answering that question. I think that it will never be answered. Nor do I really think it should have an answer. The game will change as the players change.
My proposal is to create not a set of requirements, but a protocol or set of conditions to becoming an ALF. It’s actually pretty simple. To become an ALF an existing ALF invites you to be an ALF.
The invite comes in the form of an endorsement. Ryan endorses Abby and the process begins. Abby is now a rising ALF, she becomes an ALF once she receives a threshold of endorsements. More endorsements means a more reputable ALF.
Endorsements could come with caveats, such as keeping trial status of Rising ALF for a period of time. As we define the benefits of full membership the role of trial membership will come into focus.
A key to this process is the ability to update or remove endorsements from an ALF. This is a method of ostracism, which I believe to be a very important tool for any group. The word ostracize comes from the procedure under the Athenian democracy in which any citizen could be expelled from the city-state of Athens for ten years. There was no recourse because it wasn’t a punishment, it was simply a command from the community.
The tool of ostracism could be used to remove, even temporarily, an ALF who was working themselves sick or who needed space from the community. It is the ability to remove that I find most important from all of my experience with collective intentional groups.
This is the basis of my entire proposal. ALFs become ALFs when other ALFs endorse them (through a blog post perhaps). Negative endorsements are weighed against positive ones if there is contention around a rising ALF and those endorsements can then be updated to reflect changes in a situation.
We could then set conditions to access certain resources. For instance, to be listed as an ALF on the website you might need 5 positive endorsements and no more than 2 negative ones.
Through this process we can introduce Agile Learning Centers.
What Makes an ALC?
I think that it is the ALFs that make the ALC, because the ALC is a school facilitated by an ALF(s) using our principles and tools. So any school that an ALF is running can be assumed to be an ALC, because we wouldn’t endorse an ALF whom we wouldn’t trust to run an ALC.
It would be possible, and probably desirable, for ALFs to endorse ALCs like they endorse other ALFs.
Then similar conditions could be set for listing on the website along with other resources.
To tie this all together I’ve drawn a diagram of how I see the ALC network right now:
The inner ring with red dots are the ALFs. There might be more rings within this circle that signify other roles and responsibilities, all which could be granted using endorsements. If everyone endorsed me to be the Agile King, then it would be.
The outer ring of the middle circle is for rising ALFs and interns. These could possibly be sub divided into people who want to be ALFs and people who simply want to work in ALCs.
The outer circles represent the ALCs each full of students and facilitators, some of which have outer rights (or bumps) with potential (or rising) students.
The ALCs with dashed lines are rising ALCs. I’ve automatically assumed that any school without an “official” ALF is simply a rising, or potential, ALC. This is predicated on my assumption that ALFs make ALCs.
As my diagram illustrates, the ALCs are anchored to the network by the ALFs. Each ALF who is accepted becomes one more anchor point where an ALC can bind to the network.
Membership to the network comes from being entitled as an Agile Learning Facilitator.
There are no “higher” levels of membership beyond ALF.
Persons are accepted as ALFs through peer endorsements.
Endorsements can be either positive or negative, no endorsements are seen as neutral.
Further roles and responsibilities are granted though conditions based on the content and number of endorsements.
ALCs are endorsed by ALFs.
Access to resources is granted to ALCs based on conditions relative to ALF endorsements.
Strengths of this process
Allows for independent evaluation of ALFs without requiring attendance to programs such as ALF summer. Any ALF can endorse another person at any time. Other ALFs can conduct interviews on their own time to formulate their own endorsements for the rising ALF.
The more a rising ALF participates with the community the better their chances of gaining endorsements.
Low level of process around inviting and empowering people to be ALFs.
Programs like ALF Summer give rising ALFs an opportunity to meet and interact with other ALFs. This strengthens community ties and provides space for current ALFs to have time with rising ALFs to create better endorsements.
Endorsements can change and give ALFs the ability to both add and remove ALFs from the network.
Endorsements can carry caveats such as trial periods or any other features. For instance Ryan might state that he endorses Abby but wants her to come to ALF summer before he is ready to accept her as a full fledged ALF.
Provides a measurable figure (positive/negative endorsements) to set certain condition thresholds.
Here are some example conditions that can be set for access to community resources.
To be a full ALF one must have at least 4 positive and 0 negative endorsements.
To participate in weekly ALF calls a person must have at least one positive endorsement.
To be listed in the ALC directory a school must have at least 1 ALF and no negative endorsements.
The obvious issue here for me is negative endorsements. Publicly stating that you don’t feel that someone belongs in a group is hard and feels bad. This, I feel, can be remedied with good communication. Rather that write a negative endorsement I might go to the person in question and let them know what my issues are with them and how they can work to turn my negative feelings into positive ones.
Also creating ways of publicly and privately endorsing people might be a way to help this process.
This also doesn’t completely alleviate the issues outlined above about schisms within our group. If we get to the point of such in-fighting it might be a sign of much larger issues. Being that we are building an open source educational methodology, we might want to take notes from the free software movement and promote forking.
If we design our resources in such a way that people can “fork” (or duplicate) our systems so as to take them in another direction, this would be ideal. We can then solve intractable disagreements by facilitating the duplication of systems for a “break away” group. This idea of forking is something I would like to explore in future posts.
I would appreciate feedback to evolve this idea. Are there any weaknesses you see in this plan? What are ways you would improve it? Please leave a comment or write another post linking back to this one with a response.