Interesting link on LMS vs. SNS

| No Comments
Interesting link from George Siemen's blog on the future of learning and whether it will involve LMS (Learning Management Systems) or SNS (Social Networking Services).

The Future of Learning:  LMS or SNS? 

George Siemen's is the founder of Connectivism:  A Learning Theory for the Digital Age


Future of eLearning Panel on Dec. 2 from 6 to 8 pm SHDH 109

| 3 Comments
One thing that came out of HigherEdCamp Philly was a hope of coming together on a more regular basis to discuss current trends in Higher Education.  There will be a panel discussion on December 2, 2009 6 - 8 pm in 109 SHDH.  Speakers from Penn State Great Valley, LaSalle, as well as someone who is involved in an open source eLearning platform will be on had to discuss the direction they see eLearning taking in the next few years. 

I hope you will take some time to join in the discussion. 

The HTTP Protocol and Redirection

| 2 Comments

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.

Protocols

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 we’ve 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.

Hypertext Transfer Protocol

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

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

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 — Informational
  • 2xx — Success
  • 3xx — Redirection
  • 4xx — Client error
  • 5xx — Server error

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

Redirection

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.

Server-side Scripting

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 don’t specify a status code to the server-side language, it will default to a temporary redirect, 302.

mod_rewrite

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 user’s 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]

Refresh Meta Tag, JavaScript, Frames

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.

Changing Penn wide mailing list email addresses

| No Comments

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.

 

Drum Roll Please....

| No Comments
I have fallen in love with a website:  2020 Forecast:  Creating the Future of Learning.  I started copying and pasting everything that I felt was important for this blog until I realized that I had copied and pasted so much of the website that it would just be easier and probably much more legal for me to direct people there via link. 

Look at this picture!!! It's beautiful in all of it's systemic multi-causal glory!!!  Click on it to see the full image. 

systemic_thinking_education.png

YES all of these things will be affecting learning in the years to come!! Click on each of them to learn more about these "drivers of change" ... and I promise it's good.

If you become a member (free) of their website you can print a free 2020 forecast. 

Here are some other links I've been perusing this morning, though the future of learning one is my favorite by far.

http://www.johnseelybrown.com/bigshiftwhyitmatters.pdf

 http://www.deloitte.com/view/en_US/us/article/cee9509246d52210VgnVCM200000bb42f00aRCRD.htm




**UPDATE**  This maintenance has been completed successfully, with the exception of one of the nodes of Alliance, where we had issues applying one patch.  All services are back online at this time, but we will be opening a support ticket with Microsoft in the morning, and scheduling future downtime to address the issues,

Date: Thursday, November 12th, 11:55pm – 2:00am (ending Friday morning)

Services Affected:

  • SQL services on ALLIANCE, REPUBLIC, and Execed-SP-SQL
  • Web services on Rio
  • Exchange mailboxes hosted on KITE, and KEY
  • File-sharing services on FILES
  • Accounts1 and Accounts2 (Live account creation and single sign-on)


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:

Matt Frew and Joe Cruz


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 wasn’t all facebook and naptime as you might suspect, although I did manage to sleep at least 10 hours each night.  I’ve 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 I’d 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 I’m walking around with three big gaping unmet needs for peace, order, and clarity – yet I suppose it’s 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 I’ve realized it’s a powerful one and if I don’t check up on it every now and then it can develop some pretty unproductive habits – yet there’s STILL so much I don’t know about myself and what I want.  It requires constant reevaluation and a persistence and willingness to change.  I’ve 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.  I’ve 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, I’d 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 it’s 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.  It’s funny that even when something can be better for us and even though we can mentally comprehend that it will be better, it still doesn’t make it any easier to make that change (immediately I think of addictions). 

I’ve been thinking about all of this as I plunge into Clark Aldrich’s 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 – it’s 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.   I’m 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 You’ll Ever Learn”.  How appropriate!! I can’t wait to check it out. 

Green IT Audio Conference with Lorie Wigle, November 13

| No Comments

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.

  • Friday, November 13
  • 12:30 - 1:30 pm
  • JMHH F65
  • Open to all interested parties at Penn.

The DISMal Science of Custom Boot Images

| No Comments
One of the last major steps to restore Windows Deployment Services to production was to create a custom boot image. I was determined to bypass issues we experienced with the default boot.wim image where users reported show-stopping "Network Path Not Found" errors toward the end of the capture procedure, which resulted from a lack of supported NIC drivers in the WinPE image. I made a policy decision to include all custom drivers in one set of setup and capture images so that users exclusively see those two options at the boot menu.

Missing Tool FAIL

The world has changed since I first deployed WDS... First of all, I'm running the official RTM version of Windows 7 on my desktop, and secondly Windows 2008 R2 was released. Collectively, this is known as "the new efficiency." So, to get started I installed the Windows 7 version of the Windows Automated Installation Kit on my desktop. Next, I brought down the boot.wim file from the Sources folder on the Windows 2008 R2 install media. I went through and carefully documented the prep steps for adding custom drivers, and things were going smoothly until:

peimg /inf=c:\temp\drivers\*inf /image=C:\temp\mount


...after which I received the puzzling error:

'peimg' is not recognized as an internal or external command,
operable program or batch file.


I scoured the file system for peimg.exe only to find that it was no longer there. Some research yielded the fact that, as of WinPE 3 and the Windows 7 WAIK, image-servicing functions are the now the domain of DISM: Deployment Image Servicing and Management.

Supported Architecture FAIL

That is OK with me because I'm all for doing things the new way, especially if it is newly efficient in some nebulous indeterminate fashion. So, I studied the new syntax and eccentricities of DISM, and carefully documented it for my users. The procedure is fairly similar to that of ImageX:

  1. dism /Get-WimInfo /WimFile:C:\temp\customboot.wim - Retrieve the index number or name of the image that you wish to modify.
  2. dism /Mount-Wim /WimFile:C:\temp\customboot.wim /index:2 /MountDir:C:\temp\mount - Mount the image in a directory called C:\temp\mount.
  3. dism /image:c:\temp\mount /add-driver /driver:c:\temp\drivers /recurse - Add all .inf driver files contained in subfolders of c:\temp\drivers.
  4. dism /Unmount-Wim /MountDir:C:\temp\mount /Commit - Unmount the image, committing changes.
This was successful and I added the setup image to WDS and tested. To my dismay, I learned that, since Windows 2008 R2 is only supported on the x64 architecture, its boot.wim image is likewise x64 only, and I was unable to boot my x86 client from it.

Backward Compatibility FAIL

I persisted in my mission and obtained the boot.wim file from the Windows 2008 SP2 x86 install media. This time, when adding the drivers with DISM, I was greeted with a different error message:

Error: 50
DISM does not support servicing a Windows Vista RTM or earlier operating system
If the operating system is supported check that SSShim.DLL is present.
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log


Windows 2008, along with Vista SP1 and above, are documented as supported by DISM. The SSShim.dll file was definitely present, and was actively being referenced in the dism.log file. The relevant error in dism.log seemed to be the line:

DISM.EXE: Failed to get target image version. HRESULT=0x80070002

I tried using the boot.wim from the Windows 2008 non-SP2 x86 install disk and received the same error. I researched extensively on the web and only turned up one post which had one "me too" response. After a lot of work spinning my wheels, it was time to haul in the big guns and put in a case with MS Premier Support.

After confirming that I was using the correct syntax, the tech received some information from the engineers regarding limitations of DISM on Windows Vista SP1 and Windows Server 2008 pre-R2 images:
•    Only offline scenarios are supported.  (OK)
•    The Windows image that you are updating must be Vista SP1 or Server 2008.  (OK)
•    DISM must be run from a full operating system or from Windows PE. (OK)

•    Only Package Manager features are available – the new functionality in DISM, such as adding and removing drivers without an answer file, or enumerating packages and drivers, will not translate to package manager syntax. (FAIL)

Answer File FAIL

The phrase "adding and removing drivers without an answer file" in the tech's response was intriguing to me because it implied that the operation may be possible using an answer file. I dug in and researched what this would entail.

Like the Sysprep unattend xml answer file, it is created using Windows System Image Manager from the WAIK.  After you have pointed the file to the locations of your drivers and generated the file, you mount the image and run the command:

dism /Image:C:\temp\mount /Apply-Unattend:C:\temp\unattend.xml

Sadly, after another significant time investment, this operation resulted in the same error 50.

Conclusion

In summary, I discovered that unless the Windows 7 WAIK is changed in a future update, it will be necessary to continue to run the Vista SP1 WAIK in parallel in order to add custom NIC drivers to x86 boot images using peimg.  I was told by Microsoft that other customers have noticed this problem, and that my feedback would be forwarded to the product team for consideration in a future release.

That being said, this situation has made me consider the need to create and maintain separate x64 platform boot images and client OS system images in Windows Deployment Services. For three years, since Core2Duo hit the market and became standard, x64 has been available to the desktop user and it is really no longer in an "experimental" stage. Most of the common software packages and drivers which were slow to support x64 are now compliant (though, you should do a reality check of your specific users' software needs before deploying.) If the direction of Windows 2008 R2 can be interpreted as an early indicator of the future of the desktop OS market, we as IT professionals should be prepared -- and prepare our users -- for the inevitable.















 




Purpose

| No Comments
The theme of my life over the past few weeks has been purpose/meaning!  I've been consumed with finding purpose/meaning in everything - and not on purpose either (ha ha)!!  I've attended quarterly meetings where we ponder and discuss the purpose of Wharton Computing as an organization and how we contribute to Wharton as a whole.  I've attended scenario planning meetings where we brainstorm the future purpose of the Learning Lab.  I've been trying to figure out the higher purpose of technology in higher education for some time now.  On a daily basis, I try to find meaning and purpose in my life and experiences all the while knowing that maybe some things lack purpose and happen as completely chaotic/random events.  But as the main lesson from Joseph Conrad's Heart of Darkness constantly reminds me, some people need their illusions to feel safe and sane.  As for me?  I cling to the illusion of purpose.  It makes me feel useful and helps me make sense of a complex world and we humans just love to make sense of things!! 

"You're not going to find the meaning of life hidden under a rock written by someone else.  You'll only find it by giving meaning to life from inside yourself." (Dr. Robert Firestone).  Purpose provides direction and direction provides goals towards which the present moment can be used efficiently to strive towards.  Yet purpose is so hard to define and sometimes the act of defining purpose puts boundaries on an idea that might be better served as boundless.  I think of things like myself, and technology in higher education, and even the Learning Lab as entities with great potential yet we're not quite sure of the purpose yet and maybe we're somewhat afraid to define that purpose because we're afraid to limit something or even worse, we're afraid to choose the wrong purpose.  How does one solve this problem?

Again I find myself answering this question like a Psychologist or even like a Spiritual adviser or something - I'm sorry, it's who I am - this is why I blog instead of give motivational speeches.  In a blog at any point the reader can choose to walk away - not that this doesn't happen in live speeches but I think someone might be a little bit more hesitant to leave in face to face interactions. 

I think to truly think of purpose there are certain things we must cultivate in the process - self awareness, acceptance of fear, a realization of potential, and maybe the ability to see how  your purpose may fit into a larger purpose that is bigger than you.  This whole "purpose" tirade was topped off by my mom's email to me which included a link to the following blog:  Great Health in Tough Times:  The Power of Purpose.  Read it from the bottom up.  If you're more of the evidence based/empirical/scientific type - read it with a grain of salt and an open mind.  On that note, I'm gonna go contemplate some purpose!