The Future of Learning: LMS or SNS?
George Siemen's is the founder of Connectivism: A Learning Theory for the Digital Age.
In the midst of discussions with others about web development in general, I realized that many developers do not have a firm grasp of how redirection on the web really works. My hope is that individuals who want to learn, but are afraid to ask will read this post and come away with a better understanding of the HTTP protocol and redirection.
A protocol is nothing but a set of rules that are followed by two independent parties. For example, if I walk by you in the hallway, and weve met before, I might say, Hello. At that point, you might say the same thing in return, or possibly, Hi. You interpreted my initial input hello, and responded with hi. That exchange could be described as a protocol.
With regard to technology, a protocol is used to communicate between computers across a network. There are many established protocols already in existence. Many of them are documented in detail by the Internet Engineering Task Force. These documents are called RFCs. Examples of protocol RFCs are:
We make extensive use of these protocols every day most of the time using 3 or 4 at once. On most systems, when you enter a URL in a web browser you make use of HTTP, which uses TCP, which uses IP, which uses Ethernet.
Browsers send and receive data from web servers. The HTTP protocol is an application-layer language that helps browsers and web servers transfer data across the Internet. Two important components of this language are request methods and status codes.
Request methods are verbs for client/server communication over HTTP. They dictate what action is going to be imposed on a given resource. Most people are familiar with GET and POST. There are several others too:
HEAD Like GET but only returns headers, not the resource.PUT Uploads a representation of the resource.DELETE Deletes the resource.TRACE Echos back the received request.OPTIONS Returns HTTP methods the server supports.CONNECT Converts the request connection to a transparent TCP/IP tunnel.Of these, HEAD, GET, and POST are probably the most important and are implemented by almost all web servers.
Status codes are adjectives for client/server communication over HTTP. They give us additional information about a given resource. There are more status codes than methods, but they can be categorized into five categories:
1xx Informational2xx Success3xx Redirection4xx Client error5xx Server errorWhen things are going well, 200 is common. When things are not going to great, we usually see 404 or 500. With regard to redirection, special attention must be paid to 301 vs. 302. 301 implies Moved Permanently, while 302 translates into Found, or a temporary redirect.
In general, a common goal for web content providers is to get users the resource they requested, and if that is not available, provide them with some meaningful information so that they can adjust accordingly. There are several redirection techniques available to make web pages accessible via multiple URLs. Server-side techniques typically prevail because they allow us to make use of the HTTP status codes addressed above. Additionally, they give us the ability to make redirection completely transparent to the requestor.
Most server-side scripting languages allow you to append HTTP headers to a response before the response body. In raw PHP, this looks something like:
<?php header('Location: http://www.google.com', true, 301); ?>
The code above redirects users to the absolute URL http://www.google.com with a HTTP status code of 301. Most of the time, if you dont specify a status code to the server-side language, it will default to a temporary redirect, 302.
mod_rewrite is an Apache web server module that includes a regular expression based rewriting engine to modify requested URLs on the fly. A de facto standard, it is used primarily by web site maintainers when they are trying to create persistent or preserve existing URLs. mod_rewrite can generate HTTP redirects and produce completely transparent server-side redirection. The directive below listens for requests containing puppy.cfm and executes smalldog.aspx, while preserving puppy.cfm in the users address bar. This is done completely on the server-side, and uses no HTTP status codes.
RewriteRule ^puppy.cfm smalldog.aspx
The directive below reaches a similar end result, except that redirection is done via a HTTP 301 status code and smalldog.aspx replaces puppy.cfm in the address bar:
RewriteRule ^puppy.cfm smalldog.aspx [R=301,L]
These methods are client-side workarounds put in place to get around not having control over status codes. Along with not being as full-featured, client-side redirection solutions can distort browser navigation history, and have a negative impact on how search engines view and index your web site. A sound redirection strategy is aware of client-side techniques, but makes use of server-side scripting languages or URL rewriting engines whenever possible.
Since my guest student status is about to run out, I decided to finally tackle the problem of changing my e-mail address from learyk@sas (when I started as a student, I was also a School of Arts and Sciences employee) to learyk@wharton. The only important information I still get at my sas address is all of the SIG announcements, and I have missed a number of interesting topics because of this. I tried the usual unsubscribe command from the sas e-mail as well as subscribe from the wharton e-mail, but nothing seemed to happen.
Here's the procedure for anyone who has web-sig e-mails going to the wrong place:
Send the following command to listserv@lists.upenn.edu from your USERNAME@OLD_SCHOOL.upenn.edu account:
change * USERNAME@wharton.upenn.edu
You will then get an e-mail from each of the mailing lists you are subscribed to at your Wharton address, and you must then respond to confirm.
http://www.johnseelybrown.com/bigshiftwhyitmatters.pdf
Date: Thursday, November 12th,
11:55pm 2:00am (ending Friday morning)
Services Affected:
Procedure Description:
We will be applying the latest Microsoft out of band hotfixes to the production SQL Servers, RIO, Exchange servers, some Domain Controllers, and FILES.
Downtime for the Exchange servers and SQL clusters (Execed-sp-sql, ALLIANCE, REPUBLIC) should be limited to the duration of a failover, but several failovers/restarts will be required. RIO, the DCs, and FILES will take slightly longer for a restart.
We are reserving the entire window for testing, though the actual outage for individual services might be shorter.
Administrators On-Site or On-Call:
Today marks my return from the days of having nothing to
do but incessantly update my facebook status back into spending my time between
the hours of 9am and 5pm doing the work thang.
It wasnt all facebook and naptime as you might suspect, although I did
manage to sleep at least 10 hours each night.
Ive been spending a lot of personal time (probably wayyy too much time)
trying to reassess who I am as a person my goals, my *gasp* NEEDS, my skills,
etc. I suppose the looming prospect of
grad school will forever keep forcing me to ask myself what I want from this
world until I come to a somewhat rough sketch of how Id like my life to pan
out. But as Daniel Pink and many wise
gurus before him have kindly pointed out, the plan is often that there is no
plan!
This would all be well and good except that while doing
some personal evaluation of my own needs it turns out that my top three are a
need for peace, order, and clarity
(check out: coaching quizzes under free stuff and
choose the emotional index quiz). Here I
am on this blog always preaching about our dear friends, chaos and uncertainty,
and how we should embrace them with open arms while Im walking around with
three big gaping unmet needs for peace, order, and clarity yet I suppose its
another matter of perspective. I like
peace in my immediate vicinity (world peace would be lovely too), I like order
in my surroundings and even more preferably in my own head, and I like clarity
in my daily interactions and interpersonal relationships. Achieving the peace, order, and clarity that
I need for myself will help me better cope with the lack of peace, disorder,
and uncertainty that are a party of being a human.
What does this have to do with anything you might
ask? I spend a lot of time dusting and
cleaning in my brain because Ive realized its a powerful one and if I dont
check up on it every now and then it can develop some pretty unproductive
habits yet theres STILL so much I dont know about myself and what I
want. It requires constant reevaluation and
a persistence and willingness to change.
Ive realized it works best for me to have an elastic idea of myself and
my future goals something mutable, something that can be open (and possibly
subject to) change if necessary. The
funny thing is, the very core of my being despises change something I have
learned to live with. Ive accepted that
anytime change happens I will feel the instability of my own two feet and a
resistance and fear in my stomach. When
winter would rip away the comfort of fall clothing from my little hands as a
child, I insisted on wearing shorts and short-sleeves until I could no longer
stand it. When summer burst into my
world without my permission, Id continue to wear my winter coats until I sweated
my way into accepting the change. I did
not gracefully transition as a child and I do not gracefully transition as an
adult, but I continue to change because its as necessary as breathing.
I always see in other systems, this same resistance to
change and having been a person who has had difficulty changing my entire life
I feel compassion. I watch as the
education system parades around in its snow suit in the middle of July and I
think to myself we are not so different.
And I listen to all of the voices on the inside of the education system
re-evaluating it, trying to bring clarity to its purpose, and trying to force
it to change. Maybe it will be like me
maybe it will wait until its sweating to death in a down jacket in the middle
of the summer before it decides, hey maybe this could be different, easier,
even better. Its funny that even when
something can be better for us and even though we can mentally comprehend that
it will be better, it still doesnt make it any easier to make that change
(immediately I think of addictions).
Ive been thinking about all of this as I plunge into
Clark Aldrichs Simulations and Serious
Games: How the Most Valuable Content
Will Be Created in the Age Beyond Gutenberg to Google. He starts off by saying, this book is
nothing less than a manifesto intended to cast off the intellectual chains of
civilization to date. I like that its
a bold statement and I believe in the power of simulations from witnessing them
first hand. However, I also am all too
familiar with resistance to change. I
hope education catches on sooner rather than later to the power of some of the
tools in its grasps. Im looking
forward to reading this book too and will be sure to blog about my favorite
parts and passages.
In the meantime, I just so happened to glance at one of
my favorite sites to see what it had to offer (www.changethis.com ) and I came across a
manifesto entitled, Change
Master: Why Adapting is the Most Crucial
Skill Youll Ever Learn. How
appropriate!! I cant wait to check it out.
Join your intrepid Green IT Committee for an audio conference with Lorie Wigle on November 13th. Lorie is the General Manager of the Eco-Technology Program Office at the Intel Corporation and is the president of the Climate Savers Computing Initiative (CSCI). She will be sharing information about the CSCI and there will be ample time for Q&A.