<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Middlebury Blog Network &#187; MIIS</title>
	<atom:link href="http://sites.middlebury.edu/middblogs/tag/miis/feed/" rel="self" type="application/rss+xml" />
	<link>http://sites.middlebury.edu/middblogs</link>
	<description>Selected Posts from the Midd Blogosphere</description>
	<lastBuildDate>Tue, 21 May 2013 20:57:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Are you reading this post via a feed reader? If so, read on…</title>
		<link>http://feedproxy.google.com/~r/MiddLibraryInformationServices/~3/29jGhDQgsJQ/</link>
		<comments>http://feedproxy.google.com/~r/MiddLibraryInformationServices/~3/29jGhDQgsJQ/#comments</comments>
		<pubDate>Wed, 25 May 2011 14:27:44 +0000</pubDate>
		<dc:creator>Barbara Merz</dc:creator>
				<category><![CDATA[Midd Blogosphere]]></category>
		<category><![CDATA[Area Directors]]></category>
		<category><![CDATA[Areas and Workgroups]]></category>
		<category><![CDATA[banner]]></category>
		<category><![CDATA[Bread Loaf School of English]]></category>
		<category><![CDATA[Bread Loaf Writers' Conference]]></category>
		<category><![CDATA[Central Systems & Network Services]]></category>
		<category><![CDATA[Classroom Technology]]></category>
		<category><![CDATA[Curricular Technology]]></category>
		<category><![CDATA[digitization]]></category>
		<category><![CDATA[Education & Training]]></category>
		<category><![CDATA[Enterprise Applications]]></category>
		<category><![CDATA[Institutions]]></category>
		<category><![CDATA[Language Schools]]></category>
		<category><![CDATA[Library Spotlight]]></category>
		<category><![CDATA[LIS Administration]]></category>
		<category><![CDATA[LIS Blog]]></category>
		<category><![CDATA[LIS Staff Interest]]></category>
		<category><![CDATA[LIS Website]]></category>
		<category><![CDATA[Manager's Meeting]]></category>
		<category><![CDATA[Middlebury]]></category>
		<category><![CDATA[MIIS]]></category>
		<category><![CDATA[MMLA]]></category>
		<category><![CDATA[Research & Collection Services]]></category>
		<category><![CDATA[Schools Abroad]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Service Outages]]></category>
		<category><![CDATA[Space]]></category>
		<category><![CDATA[Teams]]></category>
		<category><![CDATA[User Services]]></category>

		<guid isPermaLink="false">http://sites.middlebury.edu/lis/?p=25705</guid>
		<description><![CDATA[On Tuesday May 31st we&#8217;re going to change the categories on this blog, so if by any chance you&#8217;re using a feed of a specific category, that&#8217;s going to break. We suggest subscribing to the whole blog for maximum enjoyment! &#8230; <a href="http://sites.middlebury.edu/lis/2011/05/25/are-you-reading-this-post-via-a-feed-reader-if-so-read-on/">Continue reading <span>&#8594;</span></a> <a href="http://feedproxy.google.com/~r/MiddLibraryInformationServices/~3/29jGhDQgsJQ/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>On Tuesday May 31st we&#8217;re going to change the categories on this blog, so if by any chance you&#8217;re using a feed of a specific category, that&#8217;s going to break. We suggest subscribing to the whole blog for maximum enjoyment! If you&#8217;re not a LIS staff member &amp; would like to filter out the more staff related posts, you can subscribe to the new &#8220;Middlebury Community Interest&#8221; category after May 31st. The other categories will be &#8220;LIS Staff Interest&#8221;, and &#8220;Post for MiddPoints&#8221; which will cause the post to be added to the MiddPoints blog too. All the old categories except &#8220;The Essentials&#8221; will be converted to tags for easy searching.<br />
The LIS Web team developed this new scheme, following recommendations that came out of the open meeting about the future of the LIS Blog (including a call for simplified categories). The AD Team reviewed and approved these changes. We welcome your comments.</p>
<img src="http://feeds.feedburner.com/~r/MiddLibraryInformationServices/~4/29jGhDQgsJQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sites.middlebury.edu/lis/2011/05/25/are-you-reading-this-post-via-a-feed-reader-if-so-read-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TedxMonterey</title>
		<link>http://feedproxy.google.com/~r/MiddLibraryInformationServices/~3/jqc6pgHpl-0/</link>
		<comments>http://feedproxy.google.com/~r/MiddLibraryInformationServices/~3/jqc6pgHpl-0/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 14:25:27 +0000</pubDate>
		<dc:creator>Jess Isler</dc:creator>
				<category><![CDATA[Midd Blogosphere]]></category>
		<category><![CDATA[arts]]></category>
		<category><![CDATA[MIIS]]></category>
		<category><![CDATA[TEDx]]></category>
		<category><![CDATA[★ The Essentials]]></category>

		<guid isPermaLink="false">http://sites.middlebury.edu/lis/?p=25262</guid>
		<description><![CDATA[The Monterey Institute of International Studies is hosting a Tedx event.  TED refers to the wildly successful annual conferences that bring together people from technology, entertainment and design to give short talks about their lives.  Tedx events are community organized &#8230; <a href="http://sites.middlebury.edu/lis/2011/04/06/tedxmonterey/">Continue reading <span>&#8594;</span></a> <a href="http://feedproxy.google.com/~r/MiddLibraryInformationServices/~3/jqc6pgHpl-0/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a rel="http://www.tedxmonterey.org/" href="http://www.tedxmonterey.org/" ><img class="alignright size-medium wp-image-25263" src="http://sites.middlebury.edu/lis/files/2011/04/tedx-monterey-image01-300x244.png" alt="" width="300" height="244" /></a>The Monterey Institute of International Studies is hosting a Tedx event.  <a href="http://www.ted.com/">TED</a> refers to the wildly successful annual conferences that bring together people from <strong>t</strong>echnology, <strong>e</strong>ntertainment and <strong>d</strong>esign to give short talks about their lives.  <a href="http://www.ted.com/tedx" >Tedx</a> events are community organized programs that following a similar format to the TED conferences.</p>
<p><a href="http://www.tedxmonterey.org/" >TedxMonterey</a> is happening on April 15 and will be livestreamed and live-interpreted to the web.   Speakers will include dancers (including Middelbury&#8217;s Andrea Olsen), drummers, environmentalists, researchers, entrepreneurs and artists.</p>
<img src="http://feeds.feedburner.com/~r/MiddLibraryInformationServices/~4/jqc6pgHpl-0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://sites.middlebury.edu/lis/2011/04/06/tedxmonterey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MiddLab Discussion Sessions Follow-up</title>
		<link>http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/</link>
		<comments>http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 00:36:12 +0000</pubDate>
		<dc:creator>Ian McBride</dc:creator>
				<category><![CDATA[Midd Blogosphere]]></category>
		<category><![CDATA[Enterprise Applications]]></category>
		<category><![CDATA[MiddLab]]></category>
		<category><![CDATA[Middlebury]]></category>
		<category><![CDATA[MIIS]]></category>
		<category><![CDATA[★ The Essentials]]></category>

		<guid isPermaLink="false">http://sites.middlebury.edu/lis/?p=24217</guid>
		<description><![CDATA[Thank you to everyone who was able to attend either of my discussion meetings for MiddLab last week! There were a lot of great ideas for the site and upcoming projects. You can now see one of those ideas added &#8230; <a href="http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/">Continue reading <span>&#8594;</span></a> <a href="http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Thank you to everyone who was able to attend either of my <a href="http://sites.middlebury.edu/lis/2010/09/30/what-is-middlab-and-what-does-it-have-to-do-with-me/">discussion meetings for MiddLab</a> last week! There were a lot of great ideas for the site and upcoming projects. You can now see one of those ideas added to the site in the new <a href="http://sites.middlebury.edu/middlab/map/">Research Centers</a> page which shows a map of all the MiddLab projects. We&#8217;re going to continue adding features to the site throughout the semester, so stay tuned.</p>
<p>While we were not able to record the sessions due to some technical difficulties, I have prepared a <a href="https://mediawiki.middlebury.edu/wiki/LIS/MiddLab">guide to adding your project to MiddLab</a>. Feel free to edit that page to add your own tips on creating a successful project description or send an email to <a href="mailto:middlab@middlebury.edu">middlab@middlebury.edu</a> if anything is unclear. I will host another meeting to discuss MiddLab during the Spring semester, for those who were not able to attend, but I&#8217;m also more than happy to meet individually with Faculty, Staff, Students, departments, and offices.</p>
<h3>Publications Database</h3>
<p>During a discussion with Bob Cluss and Colleen Converse, we came up with an idea for a sub-site in MiddLab that serves as a portal to discover publicly available academic publications from our faculty and students. I&#8217;ll be working on adding that this semester and welcome you to send documents or (preferably) links to these papers in public databases to <a href="http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/middlab@middlebury.edu">middlab@middlebury.edu</a>. If the document is larger than 10MB, please send it to <a href="http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/website@middlebury.edu">website@middlebury.edu</a> instead. If you already have a site that lists these documents that you&#8217;d like to be included, you can also just send that link and I&#8217;ll take care of the rest.</p>
<p>Look for this information to be added to MiddLab shortly, giving people both on and off-campus another easy way to find information on the active and ongoing research at Middlebury.</p>
<h3>Working More Closely with You</h3>
<p>I also want to make you aware of a small change in policy about the inclusion of content in MiddLab. Due to some concerns about the unfortunate rules surrounding some academic publication and to ensure that all research collaborators are willing to be included, we&#8217;ll now ask that every person involved in a research project agrees to have it hosted in MiddLab before it is put up. I can also remove content from the site where your name appears if you would not like it published in this manner. You can see any mention of your work in MiddLab by browsing the <a href="http://sites.middlebury.edu/middlab/people">People page</a>. Please address any concerns to <a href="http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/middlab@middlebury.edu">middlab@middlebury.edu</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sites.middlebury.edu/lis/2010/10/14/middlab-discussion-sessions-follow-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website Performance: Pressflow, Varnish, Oh-My!</title>
		<link>http://sites.middlebury.edu/middblogs/2010/05/17/website-performance-pressflow-varnish-oh-my/</link>
		<comments>http://sites.middlebury.edu/middblogs/2010/05/17/website-performance-pressflow-varnish-oh-my/#comments</comments>
		<pubDate>Mon, 17 May 2010 18:33:00 +0000</pubDate>
		<dc:creator>Adam Franco</dc:creator>
				<category><![CDATA[Midd Blogosphere]]></category>
		<category><![CDATA[Central Systems & Network Services]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Enterprise Applications]]></category>
		<category><![CDATA[Middlebury]]></category>
		<category><![CDATA[MIIS]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[User Services]]></category>
		<category><![CDATA[Web Application Development]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://sites.middlebury.edu/lis/?p=23170</guid>
		<description><![CDATA[Executive summary:
We&#8217;ve migrated from core Drupal-6 to Pressflow, a back-port of Drupal-7 performance features. Using Pressflow allows us to cache anonymous web-requests (about 77% of our traffic) for 5-minutes and return them right from memory. While this vastly improves the amount of traffic we can handle as well as the speed of anonymous page-loads it [...] <a href="http://sites.middlebury.edu/middblogs/2010/05/17/website-performance-pressflow-varnish-oh-my/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<h4>Executive summary:</h4>
<p>We&#8217;ve migrated from core Drupal-6 to Pressflow, a back-port of Drupal-7 performance features. Using Pressflow allows us to cache anonymous web-requests (about 77% of our traffic) for 5-minutes and return them right from memory. While this vastly improves the amount of traffic we can handle as well as the speed of anonymous page-loads it does mean that anonymous users may not see new versions of content for at most 5 minutes. Traffic for logged-in users will always continue to flow directly through to Drupal/Pressflow and will always be up-to-the-instant-fresh. </p>
<p>Read on for more details about what has change and where we are at with regard to website performance.</p>
<p><span id="more-23170"></span></p>
<hr />
<h4>Background</h4>
<p>When we first launched the new Drupal website back in February we went through some growing pains that necessitated code fixes (<a href="http://sites.middlebury.edu/lis/2010/02/08/website-improvements-1/">Round 1</a> and <a href="http://sites.middlebury.edu/lis/2010/02/12/website-improvements-3-better-performance/">Round 2</a>) as well as the addition of an extra web-server host and database changes (<a href="http://sites.middlebury.edu/lis/2010/02/18/website-improvements-4-previews/">Round 2</a>). </p>
<p>These improvements brought our site up to acceptable performance levels, but I was concerned that we might run into performance problems if the college ended up <a href="http://www.nytimes.com/2007/02/21/education/21wikipedia.html">in the news</a> and thousands of people suddenly went to view our site. </p>
<p>At DrupalCon a few weeks ago <a href="http://sites.middlebury.edu/lis/2010/04/21/drupalcon-2010-day0-performance/">I attended a Drupal Performance Workshop</a> where I learned a number of techniques that can be used to scale Drupal sites to be able to handle internet-scale traffic &#8212; not Facebook or Google-level traffic, but that of <a href="https://wiki.fourkitchens.com/display/PF/Who+uses+Pressflow">The Grammys, Economist, or World Bank</a>. </p>
<p>Since before the launch of the new site we were already making use of <a href="http://en.wikipedia.org/wiki/PHP_accelerator">optcode-caching via APC</a> to speed code execution and were doing data caching with <a href="http://memcached.org/">Memcache</a> to reduce the load on the database. This system-architecture is far more performant than a baseline setup, but we still could only handle a sustained average of 20 requests each second before the web-host started becoming fully loaded. While this double our normal average of 10-requests per second, it is not nearly enough headroom to feel safe from traffic spikes.</p>
<div id="attachment_23209" class="wp-caption aligncenter" style="width: 610px"><a href="http://sites.middlebury.edu/lis/files/2010/05/Page-Caching-Drupal-Memcache.png"><img src="http://sites.middlebury.edu/lis/files/2010/05/Page-Caching-Drupal-Memcache.png" alt="Diagram of the execution flow through the web-host using normal Drupal page caching." title="Page Caching - Drupal and Memcache" width="600" class="size-full wp-image-23209" /></a><p class="wp-caption-text">Request flow through our Drupal web-host prior to May 13th; using normal Drupal page-caching stored in Memcache. Click for full-size.</p></div>
<h4>Switching to Pressflow</h4>
<p>Last week we switched from the standard Drupal-6.16 to <a href="http://pressflow.org/">Pressflow-6.16.77</a>, a version of Drupal 6 that has had a number of the performance-related improvements from Drupal-7 back-ported to it. Code changes in Pressflow such as dropping legacy PHP4 support and using only MySQL enable Pressflow execute about 27% faster than Drupal, a useful improvement but not enough to make a huge difference were we to get double or triple our normal traffic. </p>
<p>For us, the most important difference between Pressflow and Drupal-6 is that sessions are &#8216;lazily&#8217; created. This means that rather than creating a new &#8217;session&#8217; on the server to hold user-specific information on the first page each user sees on the website, Pressflow instead only creates the session when the user hits a page (such as the login page) that actually has user-specific data to store. This change makes it very easy to differentiate between anonymous requests (no session cookies) and authenticated requests (that have session cookies) and enables the next change, Varnish page caching.</p>
<h4>Varnish Page Caching</h4>
<p>Varnish is a <a href="http://en.wikipedia.org/wiki/Reverse_proxy">reverse-proxy server</a> that runs on our web hosts and can return pages and images from its own in-memory cache so that they don&#8217;t have to execute in Drupal/Pressflow every single time. The default rule in Varnish is that if there are any cookies in the request, then the request is for a particular user and should be transparently passed through to the back-end (Drupal/Pressflow). If there are no cookies in the request, then Varnish assumes correctly that it is an anonymous  request and tries to respond from its cache without bothering the back-end.</p>
<div id="attachment_23218" class="wp-caption aligncenter" style="width: 610px"><a href="http://sites.middlebury.edu/lis/files/2010/05/Page-Caching-Varnish.png"><img src="http://sites.middlebury.edu/lis/files/2010/05/Page-Caching-Varnish.png" alt="Request flow through our Drupal/Pressflow web-host after May 13th; using the Varnish proxy-server for caching. Click for full-size." title="Page Caching - Varnish" width="600" class="size-full wp-image-23218" /></a><p class="wp-caption-text">Request flow through our Drupal/Pressflow web-host after May 13th; using the Varnish proxy-server for caching. Click for full-size.</p></div>
<p>Since about 77% of our traffic is non-authenticated traffic, Varnish only sends about 30% of the total requests through to Apache/PHP/Drupal: all authenticated requests and anonymous requests where the cache hasn&#8217;t been refreshed in the past 5 minutes. Were we to have a large spike in anonymous traffic, virtually all of this increase would be served directly from Varnish&#8217;s cache, preventing any load-increase on Apache/PHP/Drupal or the back-end MySQL database. In my tests against our home-page varnish was able to easily handle more than 10,000 requests each second with the limiting factor being network speed rather than Varnish.</p>
<div id="attachment_23249" class="wp-caption aligncenter" style="width: 610px"><a href="http://sites.middlebury.edu/lis/files/2010/05/Varnish-histogram.png"><img src="http://sites.middlebury.edu/lis/files/2010/05/Varnish-histogram.png" alt="A histogram of requests to the website. Y-axis is the number of requests, X-axis is the time to return requests, &#39;|&#39; requests were handled by Varnish&#39;s cache and &#39;#&#39; were passed through to Drupal. The majority of our requests are being handled quickly by Varnish while a smaller portion are being passed-through to Drupal." title="Varnish-histogram" width="600" class="size-full wp-image-23249" /></a><p class="wp-caption-text">A histogram of requests to the website. Y-axis is the number of requests, X-axis is the time to return requests, '|' requests were handled by Varnish's cache and '#' were passed through to Drupal. The majority of our requests are being handled quickly by Varnish while a smaller portion are being passed-through to Drupal.</p></div>
<h4>MySQL Improvements</h4>
<p>During the scheduled downtime this past Sunday, Mark updated our MySQL server and installed the <a href="http://www.innodb.com/products/innodb_plugin/">InnoBase InnoDB Plugin</a>, a high-performance storage engine for MySQL that can provide twice the performance of the built-in InnoDB engine in MySQL for the types of queries done by Drupal.</p>
<p>Last week Mark and I also went through our database configuration and verified that the important parameters were tuned correctly.</p>
<p>As the MySQL database is not currently the bottleneck that limits our site performance these improvements will likely have a minor (though wide-spread) effect. Were our authenticated traffic to further increase (due to more people editing for instance) these improvements will be more important.</p>
<h4>Where We Are Now</h4>
<p>At this point the website should be able to handle at least 20,000 requests/second of anonymous users (10,000 on each of two web-hosts) at the same time that it is handling up to 40 requests/second from authenticated users (20 on each of two web-hosts). </p>
<p>While it is impossible to accurately translate these request rates into the number of users we can support visiting the site, a very rough estimation would be to divide the number of requests/second by 10 (a guess at the average number of requests needed for each page view) to get a number of page-views that can be handled each second. <a href='http://sites.middlebury.edu/lis/2010/05/17/website-performance-pressflow-varnish-oh-my/#note1'>(1)</a></p>
<p>In addition to how many requests can be handled, how fast the requests are returned is also important. Our current response times for un-cached pages usually falls between 0.5 seconds and 2 seconds. If pages take much longer than 2 seconds, the site can &#8220;feel slow&#8221;. For anonymous pages cached in Varnish response times range from 0.001 seconds to 0.07 seconds, much faster than Apache/Drupal can do and more than fast enough for anything we need.</p>
<p>The last performance metric that we are concerned with is about the time it takes for the page to be usable by the viewer. Even if they receive all of the files for a page in only 0.02 seconds, it may still take their browser several seconds to parse these files, execute javascript code, and turn them into a displayable graphic. Due to these factors, my testing has shown that most pages on our site take between 1 and 3 seconds for users to feel that our pages are loaded. For authenticated users, this stretches to 2-4 seconds.</p>
<p>Finally please be aware that, anonymous users see pages that may be cached for up to 5 minutes. While this is fine for the vast majority of our content, there are a few cases where we may need to have the content shown be up-to-the-second fresh. We will address these few special cases over the coming months.</p>
<h4>Future Performance Directions</h4>
<p>Now that we have our caching system in place our system architecture is relatively complete for our current performance needs. While we may do a bit of tuning on various server parameters, our focus now shifts to PHP and Javascript code optimization to further improve server-side and client-side performance respectively. </p>
<p>One big impact on javascript performance (and hence perceived load-time) is that we currently have to include two separate versions of the <a href="http://jquery.com/">jQuery Javascript Library</a> due to different parts of the site relying on different versions. Phasing out the older version will reduce almost by half the amount of code that the browser has to parse.</p>
<h4>Additional Notes</h4>
<p><a name="note1"></a><strong>(1)</strong> As people browse the site their browser needs to load the main HTML page as well as make separate requests for Javascript files, style-sheet (CSS) files, and every image. After these have been loaded the first time, [most] browsers will cache these files locally and only request them again after 5 minutes or if the user clears their browser cache. CSS files and images that haven&#8217;t been seen before will need to be loaded as new pages are browsed to.  For example, the first time someone loads the <a href="http://www.middlebury.edu/athletics/">Athletics</a> page, it requires about 40 requests to the server for a variety of files. A subsequent click on the <a href="http://www.middlebury.edu/arts/">Arts</a> page would require an additional 13 requests, while a click back to the <a href="http://www.middlebury.edu/athletics/">Athletics</a> page would require on 1 additional request as the images would still be cached in the browser. </p>
]]></content:encoded>
			<wfw:commentRss>