Title: Classes
Date: 2014-02-15
Author: David Evans
Summary: Videos

   <table width="100%" align="left" border=0 cellspacing=3 cellpadding=6>
   <tr>
   <td valign="top" width="34%" bgcolor="#ffc">
   <div class="hanging">
[**Class 1: What is an Operating System?**](|filename|../classes/class1/class1.md)  
   </div><div class="hanging">
[What is an Operating System?](http://www.youtube.com/watch?v=ycpSnZN-c_Q&list=PLvpsxlEF9cP2hCgWeSjVLIG-2QrMzq6Ma&index=1) (9:16)  
   </div><div class="hanging">
[Does it have an Operating System?](http://www.youtube.com/watch?v=4YFjWAUtkqo&list=PLvpsxlEF9cP2hCgWeSjVLIG-2QrMzq6Ma&index=2) (12:49)  
   </div><div class="hanging">
[Operating Systems: Course Overview](http://www.youtube.com/watch?v=cJbIXG50RCE&list=PLvpsxlEF9cP2hCgWeSjVLIG-2QrMzq6Ma&index=3) (15:34)  
   </div><div class="hanging">
[Introducing Rust](http://www.youtube.com/watch?v=oD1_3iL12mU&list=PLvpsxlEF9cP2hCgWeSjVLIG-2QrMzq6Ma&index=4) (18:27) 
   </div>

   <div class="hanging">
[**Class 3: Zero to a Billion in 4.86 Years**](|filename|../classes/class3/class3.md)  
   </div><div class="hanging">
[Zero to a Billion in 4.86 Years](http://www.youtube.com/watch?v=Vi2q9zUHSKc&list=PLvpsxlEF9cP2OYcIJXbA-JcOq8aC5ThHd&index=1) (3:22)   
   </div><div class="hanging">
[From Chimps to Universal Machines](http://www.youtube.com/watch?v=do_LfNgiIGY&list=PLvpsxlEF9cP2OYcIJXbA-JcOq8aC5ThHd&index=2) (4:56)  
   </div><div class="hanging">
[The Race to Practical Machines](http://www.youtube.com/watch?v=M5EbgsvYWAc&list=PLvpsxlEF9cP2OYcIJXbA-JcOq8aC5ThHd&index=3) (9:20)  
   </div><div class="hanging">
[The First Real Operating Systems](http://www.youtube.com/watch?v=yk0c3yqR4k0&list=PLvpsxlEF9cP2OYcIJXbA-JcOq8aC5ThHd&index=4) (11:27)  
   </div><div class="hanging">
[From Multics to Android](http://www.youtube.com/watch?v=MKvKre0b2GM&list=PLvpsxlEF9cP2OYcIJXbA-JcOq8aC5ThHd&index=5) (15:43)
   </div>

   <div class="hanging">
[**Class 4: Once Upon a Process**](|filename|../classes/class4/class4.md): [Videos](http://www.youtube.com/playlist?list=PLvpsxlEF9cP0wwqwprCmebP6S6OrLhU6o)  
   </div><div class="hanging">
[Once Upon a Process](http://www.youtube.com/watch?v=0PUVy92eCnI&list=PLvpsxlEF9cP0wwqwprCmebP6S6OrLhU6o&index=1) (7:32)  
   </div><div class="hanging">
[Rust Expressions and Higher-Order Functions](http://www.youtube.com/watch?v=lDXLmtDfPDE&list=PLvpsxlEF9cP0wwqwprCmebP6S6OrLhU6o&index=2) (17:24)  
   </div><div class="hanging">
[How to Share a Processor - Preemptive Scheduling](http://www.youtube.com/watch?v=1hDCouuvers&list=PLvpsxlEF9cP0wwqwprCmebP6S6OrLhU6o&index=3) (20:49)  
   </div>

   <div class="hanging">
[**Class 5: Gash Has No Privileges (Shells and Processes)**](|filename|../classes/class5/class5.md)  
   </div><div class="hanging">
[Privileged Instructions](http://www.youtube.com/watch?v=Lv1yUAqNwwU&list=PLvpsxlEF9cP24xi9Y5SDmlZiy-tv9VdWX&index=1) (15:05)  
   </div><div class="hanging">
[Virtualizing Machines](http://www.youtube.com/watch?v=vRNTEtIGGmg&list=PLvpsxlEF9cP24xi9Y5SDmlZiy-tv9VdWX&index=2) (5:13)  
   </div><div class="hanging">
[How Many Processes Should a Web Browser Create?](http://www.youtube.com/watch?v=6UL9Y46V1xk&list=PLvpsxlEF9cP24xi9Y5SDmlZiy-tv9VdWX&index=3) (9:10)  
   </div><div class="hanging">
[Good Auld Shell (gash) Demo](http://www.youtube.com/watch?v=GtPWXuBMJYA&list=PLvpsxlEF9cP24xi9Y5SDmlZiy-tv9VdWX&index=4) (16:54)  
   </div>

   <div class="hanging">
[**Class 6: Making a Process (Virtualizing Memory)**](|filename|../classes/class6/class6.md)  
   </div><div class="hanging">
[PS2 Tips: Background Processes, Interrupts](http://www.youtube.com/watch?v=zhctErV4LSo&list=PLvpsxlEF9cP3uR3DaskKygs0ToPGQktak&index=1) (17:45)  
   </div><div class="hanging">
[How to Make a Process](http://www.youtube.com/watch?v=JR3MfAqFvWo&list=PLvpsxlEF9cP3uR3DaskKygs0ToPGQktak&index=2) (7:44)  
   </div><div class="hanging">
[Virtual Memory in MULTICS](http://www.youtube.com/watch?v=cwv9dvZuPzc&list=PLvpsxlEF9cP3uR3DaskKygs0ToPGQktak&index=3) (4:23)  
   </div><div class="hanging">
[Virtual Memory in the x86](http://www.youtube.com/watch?v=jkGZDb3100Q&list=PLvpsxlEF9cP3uR3DaskKygs0ToPGQktak&index=4) (16:27)  
   </div>
   
   <div class="hanging">
[**Class 7: Double Faults  (Multi-Level Pages, Page Faults and Segmentation Faults)**](|filename|../classes/class7/class7.md)  
   </div><div class="hanging">
[Modern Page Tables: Multi-Level Paging](http://www.youtube.com/watch?v=pCgw4Pe-5jo&list=PLvpsxlEF9cP0jykL_SWvKctreVfprFE1L&index=1) (17:23)  
   </div><div class="hanging">
[Segmentation Faults and Page Faults](http://www.youtube.com/watch?v=fPLmJv2rFok&list=PLvpsxlEF9cP0jykL_SWvKctreVfprFE1L&index=2) (5:28)  
   </div><div class="hanging">
[More on Segmentation Faults](http://www.youtube.com/watch?v=xPw--i4NcNI&list=PLvpsxlEF9cP0jykL_SWvKctreVfprFE1L&index=3) (4:37)  
   </div><div class="hanging">
[Processes, Threads, and Tasks](http://www.youtube.com/watch?v=RZGjMKysP-0&list=PLvpsxlEF9cP0jykL_SWvKctreVfprFE1L&index=4) (10:43)
   </div>

   <div class="hanging">
[**Class 8: Memory Management**](|filename|../classes/class8/class8.md)  
   </div><div class="hanging">
[Exam Review: gash in Ring 3, sudo](http://www.youtube.com/watch?v=a9XTzWuR2PI&feature=share&list=PLvpsxlEF9cP294pMPOE0WT9oYnV8xX0f7) (5:48)  
   </div><div class="hanging">
[Concurrent Collatz Challenge](http://www.youtube.com/watch?v=jtKpIcZW-nc&feature=share&list=PLvpsxlEF9cP294pMPOE0WT9oYnV8xX0f7&index=1) (5:48)  
   </div><div class="hanging">
[Memory Management in C](http://www.youtube.com/watch?v=_AGdMz08T1s&feature=share&list=PLvpsxlEF9cP294pMPOE0WT9oYnV8xX0f7&index=2) (5:35)  
   </div><div class="hanging">
[fingerd Fail! (The Morris Worm and How to Defeat It)](http://www.youtube.com/watch?v=eRwXb2OYEHY&feature=share&list=PLvpsxlEF9cP294pMPOE0WT9oYnV8xX0f7&index=3) (25:40)
   </div>

   </td>
   <td width="33%" valign="top" bgcolor="#eee">
   <div class="hanging">
[**Class 9: Pointers in Rust**](|filename|../classes/class9/class9.md)  
   </div><div class="hanging">
[Automatic Memory Management](http://www.youtube.com/watch?v=3tSLcJBVL8w&list=PLvpsxlEF9cP1gddrE6oNTpOIr0SBY-rpa&feature=share) (17:15)  
   </div><div class="hanging">
[Type Safety and Garbage Collection](http://www.youtube.com/watch?v=qz1yD-gH82M&feature=share&list=PLvpsxlEF9cP1gddrE6oNTpOIr0SBY-rpa&index=1) (6:17)  
   </div><div class="hanging">
[Pointers in Rust](http://www.youtube.com/watch?v=DnRFFUs3xbc&feature=share&list=PLvpsxlEF9cP1gddrE6oNTpOIr0SBY-rpa&index=2) (16:03)
   </div>

   <div class="hanging">
[**Class 10: SSL, Sharing, Scheduling**](|filename|../classes/class10/class10.md)  
   </div><div class="hanging">
[goto fail; (Apple's SSL Bug)](http://www.youtube.com/watch?v=cNJX34-yOW8&feature=share&list=PLvpsxlEF9cP2qc6W0tZZyy7eXsWIIpZdm) (19:24)  
   </div><div class="hanging">
[Safe Sharing across Tasks](http://www.youtube.com/watch?v=MRbY4Ykd_yA&feature=share&list=PLvpsxlEF9cP2qc6W0tZZyy7eXsWIIpZdm&index=1) (15:43)  
   </div><div class="hanging">
[Introduction to Scheduling](http://www.youtube.com/watch?v=F4LUFdWg2bQ&feature=share&list=PLvpsxlEF9cP2qc6W0tZZyy7eXsWIIpZdm&index=2) (3:51)  
   </div>

   <div class="hanging">
[**Class 11: Smarter Scheduling**](|filename|../classes/class11/class11.md)  
   </div><div class="hanging">
[Scheduling Recap, Real-Time Systems](http://www.youtube.com/watch?v=w3XjhJ7Ex1Y&feature=share&list=PLvpsxlEF9cP2mphWRTf0K0-0MJGpoq1cZ) (10:07)  
   </div><div class="hanging">
[First Come, First Serve; Round-Robin](http://www.youtube.com/watch?v=hMGZx3N1czs&feature=share&list=PLvpsxlEF9cP2mphWRTf0K0-0MJGpoq1cZ&index=1) (8:59)  
   </div><div class="hanging">
[Priorities](http://www.youtube.com/watch?v=1GiUVZOZdts&feature=share&list=PLvpsxlEF9cP2mphWRTf0K0-0MJGpoq1cZ&index=2) (3:37)  
   </div><div class="hanging">
[Preemptive Priority Scheduling](http://www.youtube.com/watch?v=_l1FK8CimRk&list=PLvpsxlEF9cP2mphWRTf0K0-0MJGpoq1cZ&feature=share&index=3) (8:04)  
   </div><div class="hanging">
[Lottery and Stride Scheduling](http://www.youtube.com/watch?v=7q2H-Gag4nI&list=PLvpsxlEF9cP2mphWRTf0K0-0MJGpoq1cZ&feature=share&index=4) (9:30)
   </div>

   <div class="hanging">
[**Class 12: Scheduling in Linux and Web Servers**](|filename|../classes/class12/class12.md)  
   </div><div class="hanging">
[Glimpse at the Leaderboard](http://www.youtube.com/watch?v=HKrVC7YK8pM&list=PLvpsxlEF9cP2vrwRWxzq2e0PXi0t_SQ67&feature=share) (2:15)  
   </div><div class="hanging">
[Scheduling in Linux (from 2.2 to OS X Mavericks)](http://www.youtube.com/watch?v=oKKCG4MufwI&feature=share&list=PLvpsxlEF9cP2vrwRWxzq2e0PXi0t_SQ67&index=1) (18:26)  
   </div><div class="hanging">
[Scheduling Web Services](http://www.youtube.com/watch?v=TevcaQOBx1Y&feature=share&list=PLvpsxlEF9cP2vrwRWxzq2e0PXi0t_SQ67&index=2) (27:05)  
   </div>

   <div class="hanging">
[**Class 13: The Internet**](|filename|../classes/class13/class13.md)  
   </div><div class="hanging">
[Course Update: Projects](http://www.youtube.com/watch?v=hELYWgAsYH0&feature=share&list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09) (3:51)  
   </div><div class="hanging">
[Benchmarking for Customers](http://www.youtube.com/watch?v=SvWwozIOMbI&feature=share&list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09&index=1) (9:01)  
   </div><div class="hanging">
[Latency](http://www.youtube.com/watch?v=Qw0ZNFMYfvs&feature=share&list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09&index=2) (7:32)  
   </div><div class="hanging">
[Tracing Routes](http://www.youtube.com/watch?v=fc8Zt_rHnAA&feature=share&list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09&index=3) (15:27)  
   </div><div class="hanging">
[Bandwidth](http://www.youtube.com/watch?v=j5SYaURMhHI&list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09&feature=share&index=4) (4:59)  
   </div><div class="hanging">
[Packet Switching and Internetworking](http://www.youtube.com/watch?v=j5SYaURMhHI&list=PLvpsxlEF9cP3xjzQ8Qo2JI3LTCkwA4f09&feature=share&index=5) (4:58)  
   </div>

   <div class="hanging">
[**Class 14: Entering Ring Naught**](|filename|../classes/class14/class14.md)  
   </div><div class="hanging">
[Course Update, 2013 Turing Award!](http://www.youtube.com/watch?v=ZAQuudeBImk&list=PLvpsxlEF9cP0SCptCL3bNR8M2lZrQRi0G&feature=share) (5:21)  
   </div><div class="hanging">
[Memory Isolation in Software and Hardware](http://www.youtube.com/watch?v=kv0P1wm2_kY&feature=share&list=PLvpsxlEF9cP0SCptCL3bNR8M2lZrQRi0G&index=1) (13:59)  
   </div><div class="hanging">
[Entering the Kernel!](http://www.youtube.com/watch?v=2iXcqFhcIbA&list=PLvpsxlEF9cP0SCptCL3bNR8M2lZrQRi0G&feature=share&index=2) (11:13)  
   </div><div class="hanging">
[Introducing IronKernel](http://www.youtube.com/watch?v=B8OBuY4cSBk&feature=share&list=PLvpsxlEF9cP0SCptCL3bNR8M2lZrQRi0G&index=3) (6:49)  
   </div><div class="hanging">
[IronKernel Demo](http://www.youtube.com/watch?v=PQi7nnj1LKY&feature=share&list=PLvpsxlEF9cP0SCptCL3bNR8M2lZrQRi0G&index=4) (14:54)  
   </div>

   <div class="hanging">
[**Class 15: IronKernel Developers**](|filename|../classes/class15/class15.md)  
   </div><div class="hanging">
[IronKernel Developers](http://www.youtube.com/watch?v=f67k2vCjQ0Y&list=PLvpsxlEF9cP2c_L36XRj7eiLNgQwwg8H-&feature=share) (19:36)  
   </div><div class="hanging">
&nbsp;&nbsp;&nbsp;Alex Lamana, Zeming Lin, Wil Thomason
   </div>
   </td>
   <td width="33%" valign="top" bgcolor="#ffc">
   <div class="hanging">
[**Class 16: Storage**](|filename|../classes/class16/class16.md)  
   </div><div class="hanging">
[Storage](http://www.youtube.com/watch?v=_I6Kmw3KpUY&feature=share&list=PLvpsxlEF9cP3sM_Zz1jiQVE64ekJzycjX) (9:42)  
   </div><div class="hanging">
[SRAM and DRAM](http://www.youtube.com/watch?v=SO4i3rKkLIE&list=PLvpsxlEF9cP3sM_Zz1jiQVE64ekJzycjX&feature=share&index=1) (8:19)  
   </div><div class="hanging">
[Disk Drives](http://www.youtube.com/watch?v=C676kv-NMIc&feature=share&list=PLvpsxlEF9cP3sM_Zz1jiQVE64ekJzycjX&index=2) (10:13)  
   </div><div class="hanging">
[Storage Abstractions (File Systems)](http://www.youtube.com/watch?v=OFQxuZMZsJU&list=PLvpsxlEF9cP3sM_Zz1jiQVE64ekJzycjX&feature=share&index=3) (17:18)  
   </div>

   <div class="hanging">
[**Class 17: Flash!**](|filename|../classes/class17/class17.md)  
   </div><div class="hanging">
[Making a File](http://www.youtube.com/watch?v=QRF7VzpPqXA&feature=share&list=PLvpsxlEF9cP0ZrgWIm5RPoCSuwoUAaT9f) (5:55)  
   </div><div class="hanging">
[Requirements for Modern File Systems](http://www.youtube.com/watch?v=p-d55Yn5ROY&feature=share&list=PLvpsxlEF9cP0ZrgWIm5RPoCSuwoUAaT9f&index=1) (4:52)  
   </div><div class="hanging">
[ZFS: Integrity Checking](http://www.youtube.com/watch?v=Js535LqapFE&list=PLvpsxlEF9cP0ZrgWIm5RPoCSuwoUAaT9f&feature=share&index=2) (6:31)  
   </div><div class="hanging">
[RAID: Redundant Arrays of Inexpensive Disks](http://www.youtube.com/watch?v=Ugbua8pTS6c&list=PLvpsxlEF9cP0ZrgWIm5RPoCSuwoUAaT9f&feature=share&index=3) (5:36)  
   </div><div class="hanging">
[Adaptive Replacement Cache](http://www.youtube.com/watch?v=_XDHPhdQHMQ&list=PLvpsxlEF9cP0ZrgWIm5RPoCSuwoUAaT9f&feature=share&index=4) (8:14)  
   </div><div class="hanging">
[Flash Memory](http://www.youtube.com/watch?v=qXjuVxlVyfc&feature=share&list=PLvpsxlEF9cP0ZrgWIm5RPoCSuwoUAaT9f&index=5) (5:26)  
   </div><div class="hanging">
[Log-Structured File Systems](http://www.youtube.com/watch?v=KTCkW_6zz2k&feature=share&list=PLvpsxlEF9cP0ZrgWIm5RPoCSuwoUAaT9f&index=6) (15:04)  
   </div>

   <div class="hanging">
[**Class 18: System Calls**](|filename|../classes/class18/class18.md)  
   </div><div class="hanging">
[Minimizing Magic](http://www.youtube.com/watch?v=yXF_zp9R6Vw&list=PLvpsxlEF9cP1Gt9pVrGznW_PW81rtN-dA&feature=share) (3:26)  
   </div><div class="hanging">
[Access Control](http://www.youtube.com/watch?v=ceU8JvQ5lcA&list=PLvpsxlEF9cP1Gt9pVrGznW_PW81rtN-dA&feature=share&index=1) (16:48)  
   </div><div class="hanging">
[setuid in Apache](http://www.youtube.com/watch?v=SH5euOg18Bw&feature=share&list=PLvpsxlEF9cP1Gt9pVrGznW_PW81rtN-dA&index=2) (13:03)  
   </div><div class="hanging">
[Implementing System Calls](http://www.youtube.com/watch?v=MjgvV7LulsI&list=PLvpsxlEF9cP1Gt9pVrGznW_PW81rtN-dA&feature=share&index=3) (17:30)  
   </div>

   <div class="hanging">
[**Class 19: Synchronization**](|filename|../classes/class19/class19.md)  
   </div><div class="hanging">
[PS4 Postmortem](http://www.youtube.com/watch?v=4qpyGyEvNW0&feature=share&list=PLvpsxlEF9cP3wPP3649CcsB8j82PFab-n) (3:56)  
   </div><div class="hanging">
[SSL Heartbleed](http://www.youtube.com/watch?v=iA6AYtmJ4UI&list=PLvpsxlEF9cP3wPP3649CcsB8j82PFab-n&feature=share&index=1) (13:36)  
   </div><div class="hanging">
[Synchronization](http://www.youtube.com/watch?v=Tte2D4iKjbA&feature=share&list=PLvpsxlEF9cP3wPP3649CcsB8j82PFab-n&index=2) (11:48)
   </div>

   <div class="hanging">
[**Class 20: Mutual Exclusion**](|filename|../classes/class20/class20.md)  
   </div><div class="hanging">
[Projects/Hackathon Update](http://www.youtube.com/watch?v=OPTkjLXbmf0&feature=share&list=PLvpsxlEF9cP07YyhdvphZxLSjluZ9h8OY) (6:14)  
   </div><div class="hanging">
[Mutual Exclusion Non-Solutions](http://www.youtube.com/watch?v=kzQik4bQeh0&feature=share&list=PLvpsxlEF9cP07YyhdvphZxLSjluZ9h8OY&index=1) (15:15)  
   </div><div class="hanging">
[Hardware-Assisted Mutual Exclusion](http://www.youtube.com/watch?v=FkRZpg7jTQU&list=PLvpsxlEF9cP07YyhdvphZxLSjluZ9h8OY&feature=share&index=2) (15:16)  
   </div><div class="hanging">
[Dijkstra's Solution](http://www.youtube.com/watch?v=nNW9KhYnF6c&list=PLvpsxlEF9cP07YyhdvphZxLSjluZ9h8OY&feature=share&index=3) (7:14)  
   </div>

   <div class="hanging">
[**Class 21: Bakers and Philosophers**](|filename|../classes/class21/class21.md)  
   </div>

   <div class="hanging">
[**Class 22: Microkernels and Beyond**](|filename|../classes/class22/class22.md)
   </div><div class="hanging">
[What Should Be in the Kernel?](http://www.youtube.com/watch?v=sxgYPSsIA74&list=PLvpsxlEF9cP0JPdl3GjbykbX0uhMUWW9K&feature=share) (7:17)  
   </div><div class="hanging">
[Microkernels](http://www.youtube.com/watch?v=UMsscWnM67g&feature=share&list=PLvpsxlEF9cP0JPdl3GjbykbX0uhMUWW9K&index=1) (18:20)  
   </div><div class="hanging">
[L4 and Fast Interprocess Communication](http://www.youtube.com/watch?v=mRr1lCJse_I&feature=share&list=PLvpsxlEF9cP0JPdl3GjbykbX0uhMUWW9K&index=2) (13:35)  
   </div><div class="hanging">
[Exokernels](http://www.youtube.com/watch?v=QgIeBpyS5-4&feature=share&list=PLvpsxlEF9cP0JPdl3GjbykbX0uhMUWW9K&index=3) (6:04)
   </div>

   <div class="hanging">
[**Class 23: Invent the Future!**](|filename|../classes/class23/class23.md)
   </div><div class="hanging">
[Making
Predictions](http://www.youtube.com/watch?v=Bus_5D4zdJ0&list=PLvpsxlEF9cP2FmhLM9kozCaI4d8v6bMiM&feature=share)
(7:36)</div><div class="hanging">
[Sending Faxes from the
Beach](http://www.youtube.com/watch?v=7D106VDzdMQ&feature=share&list=PLvpsxlEF9cP2FmhLM9kozCaI4d8v6bMiM&index=1)
(12:31)</div><div class="hanging">
[Pace of
Progress](http://www.youtube.com/watch?v=Uwx6l75XXrQ&list=PLvpsxlEF9cP2FmhLM9kozCaI4d8v6bMiM&feature=share&index=2)
(8:03)</div><div class="hanging">
[Endless Golden
Ages](http://www.youtube.com/watch?v=j9XZSgDAtSQ&list=PLvpsxlEF9cP2FmhLM9kozCaI4d8v6bMiM&feature=share&index=3)
(20:12)  
   </div>

   </td>
   </tr>
   </table>


<div id="disqus_thread"></div>
<script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'rust-class'; // required: replace example with your forum shortname
	var disqus_url = 'http://www.rust-class.org/pages/videos.html';

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
