<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>John Keston Classes</title>
	<link>http://aim.johnkeston.com</link>
	<description>Curriculum for classes taught by John Keston at Art Institutes Minnesota</description>
	<pubDate>Tue, 25 Nov 2008 20:00:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Firefox Plugins</title>
		<link>http://aim.johnkeston.com/imd_topics/firefox-plugins/</link>
		<comments>http://aim.johnkeston.com/imd_topics/firefox-plugins/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 03:35:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Interactive Media Topics]]></category>

		<category><![CDATA[Discussion]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/21/firefox-plugins/</guid>
		<description><![CDATA[Some Firefox plugins are must haves and others are memory hogs that can bog down our favorite browser. To help troubleshoot my projects I have used the Web Developer plugin and am starting to use Firebug as well. I have a plugin to add links to my del.icio.us account, for entertainment I love StumbleUpon, and [...]]]></description>
			<content:encoded><![CDATA[<p>Some Firefox plugins are must haves and others are memory hogs that can bog down our favorite browser. To help troubleshoot my projects I have used the <a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">Web Developer</a> plugin and am starting to use <a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank">Firebug</a> as well. I have a plugin to add links to <a href="http://del.icio.us/jkeston" target="_blank">my del.icio.us account</a>, for entertainment I love <a href="https://addons.mozilla.org/en-US/firefox/addon/138" target="_blank">StumbleUpon</a>, and I have come to rely on <a href="https://addons.mozilla.org/en-US/firefox/addon/398" target="_blank">Forecastfox</a> when deciding what to wear on my bike ride to work in the mornings. Which plugins do you find indispensable and which do you avoid like the plague?</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/imd_topics/firefox-plugins/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Syllabus and Meeting Times</title>
		<link>http://aim.johnkeston.com/im4420/syllabus-and-meeting-times/</link>
		<comments>http://aim.johnkeston.com/im4420/syllabus-and-meeting-times/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 17:36:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/syllabus-and-meeting-times/</guid>
		<description><![CDATA[IM4420 Dynamic Web Applications
Students apply user-centered design principals, database structures and server side scripting to design and develop content for server-based dynamic delivery. Attention will be paid to design issues relating to the display of dynamic content on the screen and how that dynamic content will be delivered.
Instructor: John Keston
Meeting Times and Location:
Session 1 / [...]]]></description>
			<content:encoded><![CDATA[<h3>IM4420 Dynamic Web Applications</h3>
<p>Students apply user-centered design principals, database structures and server side scripting to design and develop content for server-based dynamic delivery. Attention will be paid to design issues relating to the display of dynamic content on the screen and how that dynamic content will be delivered.</p>
<p><strong>Instructor: <a href="mailto:jck362@fac.aii.edu">John Keston</a></strong><br />
<strong>Meeting Times and Location:</strong><br />
Session 1 / Session 2<br />
Room 013 3:00pm - 3:50pm<br />
Room 231 4:00pm - 5:50pm</p>
<p><strong>Syllabus</strong>: <a href="http://aim.johnkeston.com/im4420/im4420syllabus.doc">im4420syllabus.doc</a></p>
<p><a href="../week-1">Week 1</a> | <a href="../week-2">Week   2</a> | <a href="../week-3">Week 3</a> | <a href="../week-4">Week 4</a> | <a href="../week-5">Week   5</a> | <a href="../week-6">Week 6</a><br />
<a href="../week-7">Week 7</a> | <a href="../week-8">Week 8</a> | <a href="../week-9">Week   9</a> | <a href="../week-10">Week 10</a> | <a href="../week-11">Week 11</a></p>
<p><?php posts_nav_link('sep','prelabel','nxtlabel'); ?></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/syllabus-and-meeting-times/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 1</title>
		<link>http://aim.johnkeston.com/im4420/week-1/</link>
		<comments>http://aim.johnkeston.com/im4420/week-1/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 17:38:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-1/</guid>
		<description><![CDATA[Session 1: Welcome to Dynamic Web Applications. The goal of this class is to learn about the scope of web based applications and the technology used to engineer these tools. We will start by researching and implementing Open Source applications and then move into developing our own applications using PHP, MySQL and other technologies available [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Welcome to Dynamic Web Applications. The goal of this class is to learn about the scope of web based applications and the technology used to engineer these tools. We will start by researching and implementing Open Source applications and then move into developing our own applications using PHP, MySQL and other technologies available to us. Throughout this process we will be reviewing PHP, MySQL and Javascript while developing new techniques. Due to the upper level nature of this course, it is strongly suggested that you spend extra time reviewing the concepts taught in the prerequisite course, <a href="/category/im3420">IM3420 Advanced Scripting Languages</a>. The following reading assignments are an introduction to Open Source and the <a href="http://www.fsf.org/" target="_blank">Free Software Foundation</a>. On Session 2 we will be watching a film about the history of the OS movement.</p>
<p><a href="http://en.wikipedia.org/wiki/Open_source" target="_blank">http://en.wikipedia.org/wiki/Open_source</a><br />
<a href="/writings/social-capital-within-the-open-source-community/">An article about the Free Software Foundation by John Keston </a></p>
<p><strong>Session 2:</strong> Today we&#8217;ll be watching <em>Revolution OS</em>. &#8220;<em>Revolution OS</em> is a 2001 documentary which traces the history of GNU, Linux, Free Software and the Open Source movement. It features several interviews with prominent people, including Richard Stallman, Michael Tiemann, Linus Torvalds, Larry Augustin, Eric S. Raymond, Bruce Perens, Frank Hecker and Brian Behlendorf. It was directed by J.T.S. Moore.&#8221; - <em>Wikipedia</em></p>
<p>After watching the film we will have a brief discussion about it and then begin going over the requirements for our first assignment. Our first assignment involves researching Open Source applications that use PHP and MySQL. We will compare and contrast a minimum of two OS projects keeping in mind that we will be implementing one of the examples.</p>
<p class="assignment"><strong>Dynamic Web Applications - Research Project<br />
Due: Session 1, Week 3</strong></p>
<p>Write a six page double spaced research paper comparing and contrasting two Open Source web application projects. Use the resources listed to browse existing projects. Make sure that at least one of the projects you select uses PHP and MySQL. A prominent example for us is <a href="http://aim.aiiresources.com/" target="_blank">aim.aiiresources.com</a>, which uses the popular <a href="http://en.wikipedia.org/wiki/Content_management_system" target="_blank">content management system</a> (CMS) - <a href="http://joomla.org/" target="_blank">Joomla</a>. Take your time and browse many examples until you find two that capture your interests. Make sure that you answer each of the following questions in your research. We will discuss your papers in class on <a href="http://aim.johnkeston.com/im4420/#week3">Session 1, week 3</a>. <strong>Note:</strong> please do not include WordPress as one of your examples because we are using it for the first project.</p>
<p>1. Why did you select each of your projects? What was it that attracted you to each example?</p>
<p>2. What sort of features are available in each project and how can they be applied as solutions for typical web based needs?</p>
<p>3. What are the requirements for implementing each example? What technologies are involved? Is a database required, etc.?</p>
<p>4 . Address the history of each project. What are the current versions? How long have the projects been active and who makes up the community surrounding them?</p>
<p>5. How would you use these projects? What kind of businesses or organizations could make use of these projects and how?</p>
<p><strong>Delivery:</strong> Post your research paper to the Dynamic Web Applications forum on aim.aiiresources.com, and turn in a stapled paper copy to me for grading.</p>
<p><strong>Resources:<br />
</strong><a href="http://www.freshmeat.net/" target="_blank">www.freshmeat.net</a> - The webs largest index of mostly unix and cross-platform software<br />
<a href="http://www.sourceforge.net/" target="_blank">www.sourceforge.net </a>-    A complete database of Open Source projects.<br />
<a href="http://opensourcecms.com/" target="_blank">www.opensourcecms.com</a> - Try before you bu&#8230; install.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 2</title>
		<link>http://aim.johnkeston.com/im4420/week-2/</link>
		<comments>http://aim.johnkeston.com/im4420/week-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 18:17:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-2/</guid>
		<description><![CDATA[Session 1: Today will we discuss your research so far and take a look at some examples of Open Source projects that are currently operational. Out focus for the implementation project is WordPress so most of our discussion will revolve around this popular, stable and flexible platform. Here&#8217;s a few of the other examples we [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today will we discuss your research so far and take a look at some examples of Open Source projects that are currently operational. Out focus for the implementation project is <a href="http://wordpress.org" target="_blank">WordPress</a> so most of our discussion will revolve around this popular, stable and flexible platform. Here&#8217;s a few of the other examples we will be examining.</p>
<p><a href="http://aim.aiiresources.com/" target="_blank">aim.aiiresources.com</a><br />
<a href="http://www.audiocookbook.org/" target="_blank">www.audiocookbook.org</a><br />
</a><a href="http://opensourcecms.com/" target="_blank">www.opensourcecms.com<br />
</a><a href="http://www.thegoldenmean.com/technique/fmx_mp3-3_01.html" target="_blank">www.thegoldenmean.com<br />
</a><a href="http://bmwmcq.org.au/cms/home.html" target="_blank">bmwmcq.org.au<br />
</a><a href="http://www.jazzclube.com/" target="_blank">www.jazzclube.com</a></p>
<p><strong>Session 2: </strong>Today I&#8217;ll be demonstrating the installation process of WordPress. Some of the tools we will look at for this process are SSH (Secure Shell), FTP, Dreamweaver, and <a href="http://www.phpmyadmin.net/" target="_blank">phpMyAdmin</a> (Web based MySQL database manager). I will demonstrate how to set the permissions and troubleshoot error messages that arise during the installation process. <strong>Be prepared</strong> by downloading the latest version of WordPress, and make sure that your hosting environment supports the minimum requirements (the OLS will work).</p>
<p class="assignment"><strong>Dynamic Web Applications - Open Source Implementation Project<br />
Due: Session 2, Week 5</strong></p>
<p>The purpose of this project is to learn the ins and outs of the installation, implementation and customization of dynamic, web-based, Open Source applications. We will be implementing WordPress, which uses the LAMP (Linux, Apache, MySQL, PHP) architecture,  on your own hosting environment or the OLS. After successfully implementing the software fully test the software and then customize it by changing the look and adding and removing features or functionality. Follow the outline below as a guideline for your procedure.</p>
<ol>
<li>Evaluate The OS Project Requirements
<ul>
<li>Check and compare the version of the server software required (PHP, MySQL, etc.)</li>
<li>Make sure your hosting platform is compatible (XP vs Linux / Apache vs IIS, etc.)</li>
</ul>
</li>
<li>Review the Installation Documentation (readme files, etc.)</li>
<li>Download and Decompress the Software</li>
<li>Upload the Software to the Server</li>
<li>Setup the Database if Required</li>
<li>Follow Installation Procedures</li>
<li>Test the Installation
<ul>
<li>User Areas</li>
<ul>
<li>View Content</li>
<li>Check Functionality</li>
</ul>
</li>
<li>Administrative Areas</li>
<ul>
<li>Add Content</li>
<li>Edit Content</li>
<li>Delete Content</li>
</ul>
</li>
</ul>
</li>
<li>Add Live Content *</li>
<li>Change the Look/Feel (re-skin/theme)</li>
<li>Customize</li>
<ul>
<li>Add Features</li>
<li>Change Features</li>
<li>Remove Features</li>
</ul>
</li>
</ol>
<p><strong>WordPress Specific Requirements:</strong><br />
1. Extend your implementation by installing 3-5 <a href="http://wordpress.org/extend/plugins/" target="_blank">WordPress plugins</a> that fit the topic of your project.<br />
2. Create a custom theme (you may start by modifying an existing <a href="http://themes.wordpress.net/" target="_blank">WordPress theme</a>).<br />
3. Use &#8220;<a href="http://codex.wordpress.org/Template_Tags" target="_blank">Template Tags</a>&#8221; to extend your theme.</p>
<p>* Decide on a topic for your content. You might invite others to contribute content, or write abstracts of relevant articles.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 3</title>
		<link>http://aim.johnkeston.com/im4420/week-3/</link>
		<comments>http://aim.johnkeston.com/im4420/week-3/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 18:21:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-3/</guid>
		<description><![CDATA[Session 1: In today&#8217;s class we will be discussing what you have written in your research papers, which are also due today. After that we will be attempting to implement examples of the Open Source project you selected for the implementation assignment. I will be checking everyone&#8217;s progress as you work. The goal is to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> In today&#8217;s class we will be discussing what you have written in your research papers, which are also due today. After that we will be attempting to implement examples of the Open Source project you selected for the implementation assignment. I will be checking everyone&#8217;s progress as you work. The goal is to get to a point where the installation allows your project to be functional at a default level, exactly like the demonstration on <a href="../week-2">Session 2, week 2</a>. <strong>Make sure you are prepared</strong> by knowing exactly which software you plan on working with and having all of the necessary login and password information for your web hosting servers and database available. It is also a good idea to complete steps 1, 2 and 3 in the outline for the implementation project (<a href="../week-2">Session 2, week 2</a>).</p>
<p><a href="http://blog.lxpages.com/ultimate_linux.html" target="_blank">Ultimate Linux Reference Guide for Newbies</a></p>
<p><strong>Session 2: </strong>Now that we all have a good start on the Open Source Implementation project it is time to start discussing our next and final project which involves either extending an application like WordPress by writing plugins or hacking the framework, or developing a dynamic web application of your own. There are many types of applications that are acceptable for this project. Here&#8217;s a list of a few examples to get you started.</p>
<p><strong>1. E-Commerce</strong> - Developing a custom e-commerce system is an excellent asset for clients and employers.<br />
<strong>2. Dynamic Content Management</strong> - The point is to allow the customer to edit their content without help from a developer.<br />
<strong>3. Forums / Message Boards</strong> - These tools are important to community sites and organizations.<br />
<strong>4. News / Blogging</strong>  - News sites and blogs are a large part of the content on the internet and can be quite useful tools.<br />
<strong>5. Calendar / Event Manager</strong> - Another example of useful tools for community sites, and others.</p>
<p>Other examples may also be acceptable. Consult with me about your ideas regularly. Once you have decided what sort of application you&#8217;ll be developing you need to start the planning stage. Start by writing a summary of what the application will do followed by a list of features. Try to think of all the details and requirements for each of the features. Make notes of web sites that have similar tools and resources that apply to what you are building. Later we will discuss the formal requirements for the planning stage, but I want you to start thinking about your projects right away.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Syllabus and Meeting Times</title>
		<link>http://aim.johnkeston.com/ca2431/syllabus-and-meeting-times-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/syllabus-and-meeting-times-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 18:25:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/syllabus-and-meeting-times-2/</guid>
		<description><![CDATA[CA2431 Audio Production
This course is a conceptual introduction to audio production techniques.  Students will understand to digitize sound and apply it to their work.  Students will also learn how to produce appropriate audio effects and transitions.
Instructor: John Keston
Meeting Times and Location Section M1 (T/R):
Session 1 / Session 2
Room 009 11:00am - 11:50am
Room 233 [...]]]></description>
			<content:encoded><![CDATA[<h3>CA2431 Audio Production</h3>
<p><img src="/images/live_setup1.jpg" class="img_fr" height="150" width="200" />This course is a conceptual introduction to audio production techniques.  Students will understand to digitize sound and apply it to their work.  Students will also learn how to produce appropriate audio effects and transitions.</p>
<p><strong>Instructor: John Keston</p>
<p>Meeting Times and Location Section M1 (T/R):</strong><br />
Session 1 / Session 2<br />
Room 009 11:00am - 11:50am<br />
Room 233 12:00pm - 1:50pm</p>
<p><strong>Meeting Times and Location Section M2 (F):</strong><br />
Session 1  / Session 2<br />
Room 009 8:00am - 8:50pm / 11:00am - 11:50am<br />
Room 233 9:00am - 10:50pm / 12:00pm 1:50pm</p>
<p>Syllabus: <a href="/ca2431/ca2431syllabus.doc">ca2431syllabus.doc</a><br />
Glossary of Terms: <a href="/ca2431/ca2431glossary.doc">ca2431glossary.doc</a></p>
<p><a href="../week-1-2">Week 1</a> | <a href="../week-2-2">Week 2</a> | <a href="../week-3-2">Week 3</a> | <a href="../week-4-2">Week 4</a> | <a href="../week-5-2">Week 5</a> | <a href="../week-6-2">Week 6</a><br />
<a href="../week-7-2">Week 7</a> | <a href="../week-8-2">Week 8</a> | <a href="../week-9-2">Week 9</a> | <a href="../week-10-2">Week 10</a> | <a href="../week-11-2">Week 11</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/syllabus-and-meeting-times-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 4</title>
		<link>http://aim.johnkeston.com/im4420/week-4/</link>
		<comments>http://aim.johnkeston.com/im4420/week-4/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 18:45:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-4/</guid>
		<description><![CDATA[Session 1: Another aspect of using WordPress involves what are called Template Tags. We will discuss and demonstrate the use of template tags in class today. Also, planning a small scale dynamic web application can be tricky, but there are some ways to think ahead and make the process a little less daunting. Let&#8217;s use [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Another aspect of using WordPress involves what are called <a href="http://codex.wordpress.org/Template_Tags" target="_blank">Template Tags</a>. We will discuss and demonstrate the use of template tags in class today. Also, planning a small scale dynamic web application can be tricky, but there are some ways to think ahead and make the process a little less daunting. Let&#8217;s use the example of a service list manager. A service list is a list of contacts for a business that require promotional material on a regular basis. Artists and record labels use service lists to inform the media about events, new releases, showings and other news. In order to create a dynamic web application to maintain a service list and record transactions a number of questions need to be answered.</p>
<ol>
<li>Do you write from the ground up or use a framework?</li>
<ol type="a">
<li>If a framework, which one?</li>
<li>If not, plan ahead for an extended timeline</li>
<li>Consider security issues and cost of development cycle</li>
</ol>
<li>What features will be required? Details regarding each feature are very important in the planning stage.</li>
<li>Is a database needed? Most often it will be needed, but in some cases it&#8217;s not necessary.</li>
<li>Illustrate the forms and other web pages in the application. This will help you discover features and structure.</li>
<li>Define the database schema. Think about how many tables will be needed and how the tables are joined.</li>
</ol>
<p><strong>Session 2:</strong> In class today we will be reviewing some SQL syntax, focusing on the DDL. I&#8217;ll be going over a few <a href="http://aim.johnkeston.com/im4420/service_list_project/service_list_schema.sql">examples</a> of CREATE TABLE statements and discussing the datatypes involved. In lab I&#8217;ll be looking at everyone&#8217;s progress so far. The Implementation Projects are due a week from today. At this stage you should be finished with steps 1 through 8 and working on steps 9 and 10. Manipulating the look/feel/design and adding/customizing features is the most time consuming aspect of this kind of development so make sure that you&#8217;re spending most of your time on these steps.</p>
<p><a href="http://aim.johnkeston.com/im4420/service_list_project/service_list_schema.sql">CREATE TABLE statement examples</a></p>
<p>Reading Assignments:<br />
<a href="http://en.wikipedia.org/wiki/Index_%28database%29" target="_blank">Explanation of Database Indexes</a><br />
<a href="http://mysql.com/doc/refman/5.0/en/enum.html" target="_blank">MySQL Documentation for the ENUM datatype</a><br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html" target="_blank">MySQL Documentation for Foreign Key Constraints</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 5</title>
		<link>http://aim.johnkeston.com/im4420/week-5/</link>
		<comments>http://aim.johnkeston.com/im4420/week-5/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 18:49:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week5/</guid>
		<description><![CDATA[Session 1: Today we will use phpMyAdmin to start analyzing the WordPress database schema. How do the tables included interact? What sort of data is stored and how can we access it in ways distinct from the WordPress framework? How would we write a plugin to access data differently? These are some of the questions [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we will use phpMyAdmin to start analyzing the WordPress database schema. How do the tables included interact? What sort of data is stored and how can we access it in ways distinct from the WordPress framework? How would we write a plugin to access data differently? These are some of the questions we&#8217;ll be going over as well as an exercise in using the DML to retrieve data from WordPress in our own format.</p>
<p><strong>Web Applications Final Project Plan Requirements<br />
(In progress)<br />
</strong><br />
1. Title Page (include TOC, etc.)<br />
2. Project Overview<br />
3. Feature List (w/Brief Descriptions for each Feature)<br />
4. Database Flowchart / Schema<br />
5. Wireframes (make sure forms are included)</p>
<p><strong>Session 2:</strong> Today we will be presenting our <strong>Open Source Implementation Projects. </strong>Presenting your project is required and worth a minimum of one half of one grade point. As you present, discuss why you selected the software you used, how you customized the features and what you did to change the visual nature of the front end.</p>
<p>The following code example displays a tag cloud in your sidebar and then prevents tag with only one topic from being show in the cloud.</p>
<pre name="code" class="php">

&lt;?php
    $defaults = array('smallest' =&gt; 11, 'largest' =&gt; 27, 'unit' =&gt; 'px', 'number' =&gt; 100,
                      'format' =&gt; 'array', 'orderby' =&gt; 'name', 'order' =&gt; 'ASC');
    $tags_array = wp_tag_cloud($defaults);
    //print_r($tags_array);
    $needle = ' topics';
    foreach( $tags_array as $tag ) {
        if ( stristr($tag,$needle) ) {
            echo( $tag.&quot; &quot; );
        }
    }
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 6</title>
		<link>http://aim.johnkeston.com/im4420/week-6/</link>
		<comments>http://aim.johnkeston.com/im4420/week-6/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 18:54:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/27/</guid>
		<description><![CDATA[Session 1: PHP has become one of the most popular ways to do server side scripting for web applications. The reasons include that it&#8217;s Open Source, easy to learn, flexible, operates on most OSes, interfaces with most popular database platforms, very stable, portable, and get&#8217;s updated and improved regularly. But, as we have learned, development [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> PHP has become one of the most popular ways to do server side scripting for web applications. The reasons include that it&#8217;s Open Source, easy to learn, flexible, operates on most OSes, interfaces with most popular database platforms, very stable, portable, and get&#8217;s updated and improved regularly. But, as we have learned, development from the ground up can be daunting. So what if you have a custom project that needs to be fully developed without using an existing code base? There are ways to get a jump start on this process. &#8220;<a href="http://codeignitor.com/">CodeIgnitor</a> is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications.&#8221; (codeignitor.com) Let take a brief look at CodeIgnitor and then continue learning about plugin development for WordPress.</p>
<p><strong>Session 2:</strong> Today we will analyze some examples that are further developed. We will look at a working version of these examples and then take a quick look at some of the source code, paying particular attention to new functions and techniques.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-6/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 7</title>
		<link>http://aim.johnkeston.com/im4420/week-7/</link>
		<comments>http://aim.johnkeston.com/im4420/week-7/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:06:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-7/</guid>
		<description><![CDATA[Session 1: I have another example to show from the Service List Manager project. This tool is nearly complete, so I&#8217;ll also be discussing what sort of finishing touches that might be applied to this kind of application. Also, let&#8217;s continue looking at your source code examples. I would like everyone to show at least [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> I have another example to show from the Service List Manager project. This tool is nearly complete, so I&#8217;ll also be discussing what sort of finishing touches that might be applied to this kind of application. Also, let&#8217;s continue looking at your source code examples. I would like everyone to show at least one example before week 10.</p>
<p><strong>Final Project Schedule:<br />
</strong>Session 2, Week 7 - Final project concept presentations (explain to class your concept)<br />
Session 1, Week 8 - Final project development plans due (paper copies of finished devplans)<br />
Session 2, Week 8 - First of three progress reports (show code, get feedback, etc.)<br />
Session 1, Week 9 - Second progress report<br />
Session 1, Week 10 - Discuss take home final essay questions<br />
Session 1, Week 10 - Third progress report<br />
Week 11 - Final presentations</p>
<p><strong>Session 2:</strong> Template engines are another tool to help build complex web based applications. Usually the purpose of a template engine is to help separate the presentation layer from the logic, or back-end. One example of an Open Source templates engine project is <a href="http://smarty.php.net/" target="_blank">Smarty</a>. Here&#8217;s a brief description from their website:</p>
<p class="assignment">Although Smarty is known as a &#8220;Template Engine&#8221;, it would be more accurately described as a &#8220;Template/Presentation Framework.&#8221; That is, it provides the programmer and template designer with a wealth of tools to automate tasks commonly dealt with at the presentation layer of an application. I stress the word Framework because Smarty is not a simple tag-replacing template engine. Although it can be used for such a simple purpose, its focus is on quick and painless development and deployment of your application, while maintaining high-performance, scalability, security and future growth.</p>
<p><a title="week8" name="week8"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-7/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 8</title>
		<link>http://aim.johnkeston.com/im4420/week-8/</link>
		<comments>http://aim.johnkeston.com/im4420/week-8/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:12:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-8/</guid>
		<description><![CDATA[Session 1: AJAX (Asynchronous Javascript and XML) is an excellent technique to extend the function of web based applications beyond the traditional methods. Without AJAX dynamic content is delivered to the browser by either displaying a new page or re-rendering the whole existing page. This approach has several limitations that are solved by using AJAX. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> AJAX (Asynchronous Javascript and XML) is an excellent technique to extend the function of web based applications beyond the traditional methods. Without AJAX dynamic content is delivered to the browser by either displaying a new page or re-rendering the whole existing page. This approach has several limitations that are solved by using AJAX. For example, as new content becomes available for the page, portions of the screen can be changed without completely refreshing the browser. Advanced AJAX techniques are currently in use to create online applications that behave almost exactly like locally installed software. Google Spreadsheets are a good example of this. Google Spreadsheets work in a very similar fashion to Excel and allow importing and exporting in XLS or CSV format. Thus an online application can have the advantage of access on any computer with internet access and still behave like traditional, locally installed software.</p>
<p>There are hundreds of AJAX resources and tutorials available online as well as books. Here&#8217;s a list of some of the more popular online resources available:<br />
<a href="http://jquery.com/" target="_blank">JQuery</a><br />
<a href="http://mootools.net/" target="_blank">MooTools</a><br />
<a href="http://www.ajaxwith.com/" target="_blank">ajaxwith.com</a><br />
<a href="http://www.telerik.com/asp-net-community/ajax-learning-resources.aspx" target="_blank">The AJAX Revolution</a><br />
<a href="http://www.maxkiesler.com/index.php/weblog/comments/round_up_of_30_ajax_tutorials/" target="_blank">Round-up of 30 AJAX Tutorials</a><br />
<a href="http://chronotron.wordpress.com/2006/04/11/ajax-get-started-resources-tutorials/" target="_blank">AJAX, Get Started, Resources &amp; Tutorials</a><br />
<strong><br />
Session 2:</strong> Steal This Film is a documentation of events during the Spring of 2006 regarding actions taken by the MPAA against the Swedish Bittorrent tracker site The Pirate Bay. The film highlights the futility of action by the MPAA and RIAA against file sharing, and also provides an insight into how the application Bittorrent works as well as torrent tracking database and search site tools. The film can be downloaded (without violation of any copyright laws) from <a href="http://www.stealthisfilm.com/" target="_blank">stealthisfilm.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 9</title>
		<link>http://aim.johnkeston.com/im4420/week-9/</link>
		<comments>http://aim.johnkeston.com/im4420/week-9/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:14:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-9/</guid>
		<description><![CDATA[Session 1: As we near the end of the quarter, let&#8217;s continue to look at examples of source code from your projects. One other issue surrounding web applications and the web in general is how to find image, audio and other types of media to include in our works. We are all familiar with Corbis [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> As we near the end of the quarter, let&#8217;s continue to look at examples of source code from your projects. One other issue surrounding web applications and the web in general is how to find image, audio and other types of media to include in our works. We are all familiar with Corbis and the like for photography, but where can we go for free audio content, free images, film and so on? Here&#8217;s a list of resources for finding free media files to use in your own work:</p>
<p><a href="http://creativecommons.org/" target="_blank">Creative Commons</a> - This portal to free media provides a license to protect free content from being commercialized.<br />
<a href="http://freesound.iua.upf.edu/" target="_blank">The Freesound Project</a> - This excellent library offers over 1 terabyte of sounds (not songs) licensed under Creative Commons.<br />
<a href="http://www.ccmixter.org/" target="_blank">ccMixter</a> - A community music site featuring remixes also licensed under Creative Commons.<br />
<a href="http://www.archive.org/" target="_blank">archive.org</a> - Internet digital library formed in 1996. Content includes film, music, images and more.<br />
<a href="http://www.archive.org/details/prelinger" target="_blank">The Prelinger Archives</a> - Over 1,000 public domain films from the worlds of government and advertising.</p>
<p><strong>Session 2:</strong> Fine tuning the source code in your applications typically happens in the development stage, however sometimes (either due to a lack of planning, or unrealistic deadlines) the priority is to make it work and fix it later if there&#8217;s time and a budget. Today I&#8217;ll show you a couple examples of how I have fine tuned my project. Most of these examples do not change the functionality, but shorten the code or make it more efficient.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-9/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 10</title>
		<link>http://aim.johnkeston.com/im4420/week-10/</link>
		<comments>http://aim.johnkeston.com/im4420/week-10/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:17:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-10/</guid>
		<description><![CDATA[Session 1: Today we will be discussing and distributing the take home final essay questions. Although the curriculum in our program focuses heavily on the technical aspects of interactive media design and development, it is important to examine the purpose and direction of this technology. These final essay questions focus on the impact of web [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we will be discussing and distributing the take home final essay questions. Although the curriculum in our program focuses heavily on the technical aspects of interactive media design and development, it is important to examine the purpose and direction of this technology. These final essay questions focus on the impact of web applications on you and your community as well as society at large. Draw on your experiences implementing Open Source applications, developing your own tools, and from the films and reading assignments in class to form your answers. Please write a minimum of one double spaced page per question. Due on Session 2 week 11.</p>
<p>1. Web applications have a significant impact on the way we lead our lives today. Social networks like MySpace and e-commerce sites like eBay, Amazon and iTunes have changed the way our society operates. Beyond email and IM, how have web applications effected your day to day activities? Are these effects on our lives positive or negative and in what way?</p>
<p>2. If you could create any web application that doesn&#8217;t currently exist what would it do? How would it improve your personal life, workflow, art, or community?</p>
<p>3. Out of all the web applications we have looked at in this class, what do you find the most functional and well developed? What makes this application stand out? What purpose does it serve and how do organisations or individuals use this software?</p>
<p>4. What role do you think Open Source software and Open Content will play in the future? Will sites like Wikipedia play a role or are they too unreliable to be taken seriously? Will Open Source software be viable or are we better off using propriety software?</p>
<p><strong>Session 2:</strong>  Work day.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 11</title>
		<link>http://aim.johnkeston.com/im4420/week-11/</link>
		<comments>http://aim.johnkeston.com/im4420/week-11/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:17:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM4420 Dynamic Web Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-11/</guid>
		<description><![CDATA[Session 1: Final work day. Early presentations will be accepted today as well.
Session 2: Final presentations. Take home final essay questions due.
]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Final work day. Early presentations will be accepted today as well.</p>
<p><strong>Session 2: </strong>Final presentations. Take home final essay questions due.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-11/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 1</title>
		<link>http://aim.johnkeston.com/ca2431/week-1-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-1-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:57:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-1-2/</guid>
		<description><![CDATA[Session 1: Today we&#8217;ll discuss a few principals of sound itself. Sound is made up of high and low pressure waves that travel through matter. We can perceive sound traveling through air at frequencies ranging from roughly 20hz to 20khz, and are able to record it using microphones and analog or digital recording media.
What&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we&#8217;ll discuss a few principals of sound itself. Sound is made up of high and low pressure waves that travel through matter. We can perceive sound traveling through air at frequencies ranging from roughly 20hz to 20khz, and are able to record it using microphones and analog or digital recording media.</p>
<p>What&#8217;s the difference between analog and digital recording? Analog recording translates the sound waves into an analog electronic signal which is then stored on magnetically sensitive tape. Digital recording samples the sound at intervals in time. The rate of these intervals is called the <strong>sampling rate</strong> and is indicated in <strong>Hertz</strong> or <strong>KiloHertz</strong>. The faster the rate, the higher the recording quality. The sampling <strong>bit depth</strong> indicates the resolution of the sample, or how the amplitude of the sampled sound wave is divided. CDs use 16 bit resolution and a sampling rate of 44.1Khz (KiloHertz). The information is then stored on some type of digital media such as a hard drive in a computer, a CD, or a DAT (Digital Audio Tape) cassette.</p>
<p><strong>DSP</strong> or <strong>Digital Signal Processing</strong> is the manipulation digital audio without converting it to analog. There are many different types of DSP. Each type is essentially a different algorithm with a set of user adjustable parameters used to manipulate digital audio. Some examples of DSP include level or volume adjustments, equalization or filtering, panning, looping, delay or echo, reverberation, time compression or expansion, and pitch shifting.</p>
<p>Please bring a set of closed ear headphones and a CD which contains some audio to sample from for our in class exercise week 1, session 2. The assignment will involve basic ProTools techniques including sampling and signal processing.</p>
<p>Required Reading:<br />
<a href="http://history.sandiego.edu/gen/recording/notes.html" target="_blank">Recording Technology History</a><br />
<a href="http://www.transom.org/tools/basics/200207.digitalbasics.html" target="_blank">Digital          Audio Basics</a><br />
Reading:<br />
<a href="http://www.realworlddigitalaudio.com/" target="_blank">Real World Digital Audio</a>, Chapter 1 - Understanding Digital Sound</p>
<p>Files:<br />
<a href="http://aim.johnkeston.com/ca2431/sounds/">Sine wave files</a></p>
<p><strong>Session 2:</strong> Today we will be sampling from a cd of your choice and then using DSP to loop and manipulate a small segment of a piece of digital audio from your CD. Use iTunes convert a track from your CD into a .wav file, then import the audio into ProTools. I will be demonstrating this process in the lab.</p>
<p>Once you&#8217;ve converted your track, use ProTools to select a reagion or loop of audio that you want to work with. Apply pitch shifting and at least two more kinds of processing in order to come up with a new and completely different sounding loop. When you&#8217;re happy with the results bounce the audio to a new file and copy the loop to the drop off drive in the &#8220;John Keston&#8221; folder under &#8220;ca2431&#8243; in a directory named <Last name, First name>. We will listen to the loops in class on so make sure you have finished before <strong>Session 1, Week 2.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-1-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 2</title>
		<link>http://aim.johnkeston.com/ca2431/week-2-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-2-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:58:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-2-2/</guid>
		<description><![CDATA[Session 1: Listening assignment. In class today we&#8217;ll listen to a selection from Miles Davis &#8220;In a Silent Way&#8221;. The track is called &#8220;Shhh/Peaceful&#8221; and is one of the recording industries first examples of looping. In 1969 digital recording was science fiction, so to accomplish looping the producer had to literally cut a paste sections [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://aim.johnkeston.com/wp-content/uploads/2008/01/md_iasw.jpg' alt='Miles Davis - In a Silent Way' class="img_fl" /><strong>Session 1:</strong> Listening assignment. In class today we&#8217;ll listen to a selection from Miles Davis &#8220;In a Silent Way&#8221;. The track is called &#8220;Shhh/Peaceful&#8221; and is one of the recording industries first examples of looping. In 1969 digital recording was science fiction, so to accomplish looping the producer had to literally cut a paste sections of pre-recorded analog tape together and then play them on reel-to-reel tape machines. The results from this experiment were far reaching and today looping is used extensively in the recording industry.</p>
<p>Our next assignment is to create sound effects. Stock sound effects are available in the LRC, but even with a vast library of recordings available, often recording your own sounds gives your productions more character. This assignment will have two parts. The <strong>first part</strong> is to create <strong>five</strong> sound effects by manipulating audio that you have available to you. Use DSP to modify the sounds so that they become something of your own. <strong>Keep            the original sounds so that you can demonstrate how you changed what you            started with</strong>.</p>
<p><a href="http://aim.johnkeston.com/ca2431/sfx_project.doc">Assignment 1: SFX    Project Requirements</a></p>
<p>Search the <a href="http://aim.aiiresources.com/library/soundsearch.php" target="_blank">sound         effects</a> available in the LRC.</p>
<p>Generally online resources are not acceptable for this project, but a <a href="http://freesound.iua.upf.edu/" target="_blank">new online resource</a> called <a href="http://freesound.iua.upf.edu/" target="_blank">Freesound</a> offers high quality sound effects uploaded by registered users. This online community licenses the content under <a href="http://creativecommons.org/" target="_blank">Creative Commons</a>, making the sounds legally available for most uses.</p>
<p>Reading:<br />
<a href="http://www.realworlddigitalaudio.com/" target="_blank">Real World Digital Audio</a>, Chapter 7 - Processing and Effects</p>
<p><strong>Session 2:</strong> What are dynamic microphones and how do they differ from condenser mics? How do you choose the right mic for the right situation? How do microphone polar patterns effect he response of the mic? These are some of the questions we&#8217;ll be answering during lecture. After lecture we will be demonstrating the audio qualities of some of the different microphones that are available in the Cage by making some test recordings using the ProTools system. For your own purposes the DAT field recorder is available to check out from the Cage.</p>
<p>Knowing about the different types of microphones and how to use them is crucial to engineering high quality audio recordings. Dynamic microphones such as the Shure SM57 are very durable and excellent for recording loud signals such as close miked drums, guitar amps and so on. More sensitive condenser mics such as the Shure KSM32 or AKG c4000b are excellent for capturing the nuances in voices and quieter acoustic sounds.</p>
<p>Now that you have a basic understanding of microphones it&#8217;s time to         start  experimenting with them. This brings us to <strong>part two of         our sound  effects assignment</strong>. Record at least five unique sound effects using at least two different microphones. Be creative. You can use your own voice to create effects. Shutting doors, stomping on floors, breaking glass or hammering on pots and pans are a few examples of creating sound effects. Please have both parts of the assignment finished by the beginning of class on <strong>Session 1, Week 4 </strong>and we&#8217;ll listen to           what you&#8217;ve created.</p>
<p><a href="http://en.wikipedia.org/wiki/Microphones" target="_blank">Microphone           Reading Assignment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-2-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 3</title>
		<link>http://aim.johnkeston.com/ca2431/week-3-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-3-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:58:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-3-2/</guid>
		<description><![CDATA[Session 1: We will be discussing the proper use of mixers and recording devices. How to adjust signal levels, prevent clipping, reduce noise, microphone inputs, equalization, solo/mute, and auxiliary sends will be some of the the topics we&#8217;ll be discussing.

Note: To record your sounds outside of the building for your projects you will need to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> We will be discussing the proper use of mixers and recording devices. How to adjust signal levels, prevent clipping, reduce noise, microphone inputs, equalization, solo/mute, and auxiliary sends will be some of the the topics we&#8217;ll be discussing.<br />
<strong><br />
Note:</strong> To record your sounds outside of the building for your projects you will need to use the <a href="using-the-fostex/" title="Fostex Instructions">Fostex FR-2LE</a> or a DAT recorder (both available in the Cage). Using the Fostex FR-2LE is the preferred method. For instructions on using the device click <a href="using-the-fostex/" title="Fostex Instructions">here</a>.  </p>
<p>For the DAT recorder buy a <a href="http://www.sweetwater.com/store/detail/Dat124Q/" target="_blank">DAT tape</a> and checkout the DAT field recorder with microphone(s). DAT tapes can be purchased at Guitar Center or the Supply Store. </p>
<p><strong>Recording with  the TASCAM DA-P1 DAT recorders (decks):</strong><br />
1. Insert DAT tape into the recorder and make sure the write protect tab is enabled (closed position)<br />
2. Connect your microphone(s) to the XLR inputs in the DAT recorder<br />
a. Use the left channel for mono recording<br />
b. Use both channels for stereo recordings<br />
3. Set the ANALOG INPUT switch to the MIC position<br />
4. Set the INPUT switch to ANALOG<br />
5. Enable the PHANTOM power when using condersor microphones<br />
6. Press the RECORD button to arm the DAT deck for recording<br />
7. Adjust the input levels until you have a strong signal without clipping<br />
8. Press and HOLD the RECORD button and PLAY to start recording</p>
<p><strong>Transfering your recording to ProTools via SPDIF and the MBox: </strong><br />
1. Connect the DIGITAL OUT from the DAT recorder to the SPDIF in on the MBox<br />
2. Start a new session in ProTools<br />
3. Create a new stereo or mono track for your recording<br />
4. MBox 1 (light blue model): Under the &#8220;Setups&#8221; menu choose &#8220;Hardware Setup&#8221; and switch the inputs from &#8220;Analog&#8221; to &#8220;SPDIF&#8221;<br />
5. MBox 2 (dark blue model): Change the track I/O to S/PDIF (L Mono) or S/PDIF (L/R Stereo). The I/O view can be enabled under View &gt; Edit Window &gt; I/O.<br />
6. Press the &#8220;R&#8221; (record arm) button on your track<br />
7. Press PLAY on the DAT recorder to monitor the input in ProTools<br />
8. Press &#8220;Record&#8221; and then &#8220;Play&#8221; on the transport in ProTools to start transfering your recordings</p>
<p><strong>Session 2: </strong>Let&#8217;s start working on our next assignment which involves multitracking. Please mix 5 or more tracks of audio in ProTools utilizing the techniques we discussed in class. Avoid clipping and keep noise to a minimum. When looping try to find &#8220;zero crossings&#8221; within the wave to avoid pops. Use equalization to &#8220;place&#8221; individual tracks within the mix. Use several sound sources, such as dialogue or vocals recorded with microphones, sound effects from the sound effects collection in the library, sounds effects (Foley) recorded with microphones and/or musical instruments. Follow the link below to download the project requirement details in MS Word format.</p>
<p class="style2"><a href="http://aim.johnkeston.com/ca2431/multitrack_project.doc">Assignment 2: Multitrack    Project Requirements</a></p>
<p><strong>Plugins/Inserts:</strong> So far we have been applying DSP with the Audio Suite menu in ProTools. This method manipulates the selected audio and creates a new waveform which replaces the original audio on the track. This technique is know as destructive editing. The advantage to apply effects this way is that the processing happens only once and does not continually tax the CPU of your computer. The disadvantage is that the processing is destructive; unless you undo or revert to the original, you cannot easily return to the previous state or adjust the effect once it&#8217;s applied. This is why it is much better to use non-destructive DSP plugins (or inserts) in your projects. Inserts are processed in real-time so that you can make adjustments to the effect as you listen to the track, temporarily disable (bipass) the effect, or remove the effect comletely without having to revert to the original audio.</p>
<p>TDM - Time Division Multiplexing<br />
RTAS - Real-time Audio Suite</p>
<p>Reading:<br />
<a href="http://www.tweakheadz.com/software_plugins.htm" target="_blank">What is a Software Plugin?</a><br />
<a href="http://www.youtube.com/watch?v=o2S2cpkb-68" target="_blank">Video on how to create Aux Sends in Pro Tools</a></p>
<p>Finally, when working on projects with multiple tracks it is critical that you <strong>set up a master fader</strong> in order to be able to visualize how the tracks levels are interacting. Each additional track that plays simultaneously increases the overall levels of the project. A master fader will illustrate the combined levels in the project so you can avoid clipping while keeping your levels as high as possible to prevent excessive noise.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-3-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 4</title>
		<link>http://aim.johnkeston.com/ca2431/week-4-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-4-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:59:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-4-2/</guid>
		<description><![CDATA[Session 1: Both parts of your sound effects assignment are due today. Please make sure that all your sounds are copied to the drop off drive so we can listen to them in the studio. We&#8217;ll be listening to your sound effects in class. Also, keep working on your multi tracking project. The most important [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Both parts of your <strong>sound effects assignment are due today</strong>. Please make sure that all your sounds are copied to the drop off drive so we can listen to them in the studio. We&#8217;ll be listening to your sound effects in class. Also, keep working on your multi tracking project. The most important thing is that your five tracks work well together. This project will be due before class two weeks from today <strong> on Session 1, Week 6</strong>. Mix down your project and save it as a .WAV file (44khz, 16bit) and copy the file to the drop off drive. We&#8217;ll listen to them in class on Session 1, Week 6. Also, today I would like to listen to how everyone&#8217;s doing on their projects so far and give you all some feedback, so please be prepared to show me your work in lab.</p>
<p>Finally let&#8217;s take a careful look at Equalization in ProTools. Equalization, or EQ, is critical when mixing multiple tracks of audio together. Layering sounds with similar frequencies can often cause a &#8220;muddy&#8221; mix unless each track is taylored with EQ to work well together. The following article has an excellent explanation of a few different types of eq filtering.</p>
<p><a href="http://en.wikipedia.org/wiki/Equalization_filter" target="_blank">http://en.wikipedia.org/wiki/Equalization_filter</a></p>
<p><strong>Session 2: </strong>Check out these links to other digital audio software programs. In this class we&#8217;ll be focusing on just a few examples (Sound Forge, Vegas, Pro Tools and Reason), but there are dozens of excellent and innovative applications for creating music, manipulating audio or generating new sounds never heard before.</p>
<p><strong>Digital Audio Production Software<br />
</strong>ProTools - <a href="http://www.digidesign.com/" target="_blank">www.digidesign.com</a><br />
Sonar - <a href="http://www.cakewalk.com/" target="_blank">www.cakewalk.com</a><br />
CuBase - <a href="http://www.steinberg.net/" target="_blank">www.steinberg.net</a><br />
Logic - <a href="http://www.apple.com/logic/" target="_blank">www.apple.com/logic</a><br />
Digital Performer - <a href="http://www.motu.com/" target="_blank">www.motu.com</a></p>
<p><strong>Soft Synths<br />
</strong>Reaktor - <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com</a><br />
Absynth - <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com</a><br />
B4 - <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com</a><br />
Kontakt - <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com </a><br />
Reason - <a href="http://www.ex.org/4.5/16-interview_kanno1.html" target="_blank">www.propellerheads.se</a></p>
<p><strong>Odd stuff</strong><br />
Ableton LIVE - <a href="http://www.ableton.com/" target="_blank">www.ableton.com</a><br />
Recycle - <a href="http://www.propellerheads.se/" target="_blank">www.propellerheads.se</a></p>
<p><strong>Writing Assignment:</strong> Write a one page paper on an audio production application that we will not necessarily use in this class. Discuss what makes the software unique and how you and professionals in the industry might use the software in projects. This paper will be due on Session 2 of Week 5.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-4-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 5</title>
		<link>http://aim.johnkeston.com/ca2431/week-5-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-5-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 19:59:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-5-2/</guid>
		<description><![CDATA[Session 1: Today we&#8217;ll be watching an episode of Cowboy Bebop to help inspire us for the Animatic Project which we&#8217;ll be starting next class. While watching, pay particular attention to the audio that has been meticulously produced for this series. Not only is the music fantastic, but the sound design is of very high [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Today we&#8217;ll be watching an episode of Cowboy Bebop to help inspire us for the Animatic Project which we&#8217;ll be starting next class. While watching, pay particular attention to the audio that has been meticulously produced for this series. Not only is the music fantastic, but the sound design is of very high cinematic standards. Be prepared to discuss specific examples of the audio production after watching.</p>
<p>FYI: The entire Cowboy Bebop series is available in the library. Directed by Watanabe Shinichirou and music by Yoko Kanno (her music compositions are excellent, and make the series for me). Here&#8217;s a few links to peak your interest:</p>
<p><a href="http://www.cowboybebop.org/english/" target="_blank">http://www.cowboybebop.org/english/</a>          - The official Cowboy Bebop: The Movie site.<br />
<a href="http://www.cowboybebop.org/english/door/interview/index.html" target="_blank">http://www.cowboybebop.org/english/door/interview/index.html</a>          - Interview with the director.<br />
<a href="http://www.ex.org/4.5/16-interview_kanno1.html" target="_blank">http://www.ex.org/4.5/16-interview_kanno1.html</a>          - An excellent interview with Kanno Yoko. </p>
<p><strong>Session 2: </strong>Starting next week I&#8217;ll be demonstrating          more techniques in both <a href="http://www.digidesign.com/" target="_blank">ProTools</a>          and <a href="http://www.propellerheads.se/" target="_blank">Reason</a>.    Here are the requirements for the final Project options. The final project involves combining visual imagery with sound. One of the key competencies is synchronizing the sound with the visuals or vice versa. Typically if you are creating animation you will record the sound first. For video, you generally need to replace the existing sound. You piece can be an animatic created from storyboards, an interactive piece, video, or animation. Another acceptable method is to create a derivative work fropm footage in the public domain. A vast amount of archival footage can be viewed and downloaded from <a href="http://archive.org">archive.org</a>.</p>
<p><strong>Option 1: Combined Final Animatic Project<br />
Description:          </strong>The Combined Final Animatic is a one minute visual piece and a second project without visuals. This is intended to satisfy those of you who wish to try your hand at some music or experimentation with Reason. <strong><br />
Due: Session 2, Week 11<br />
Points: 50</strong><br />
1. Minimum length is 1:00. If working in groups of two 2:00.<br />
2. A minimum of 6 panels if creating animatic (12 if paired) are required. Other visuals are acceptable including flash animation, slide shows, video, etc.<br />
3. Use ProTools LE (with mBox) or ProTools 24 (in 007) to produce your audio.<br />
4. Use foley techniques to records 50% of your Sound Effects.<br />
5. A one page script is required which includes dialogue and, more importantly, sound design notes.<br />
6. Compile your project in one of the following accepted formats: .mov, .mpeg, .avi, or .swf<br />
7. A minimum of 10 tracks of audio in ProTools is required.<br />
8. Include 2 screenshots of your ProTools work in progress with your project.<br />
<strong>9.  produce a 2nd non-visual audio piece, the minimum length for the 2nd project is 3 minutes (without visuals).</strong><br />
10 . Try to maintain the highest possible audio quality. For MP3s do not compress your audio any more than 44.1khz and 128Kbps. Wave files should be rendered as 44.1k 16bit.<br />
11. Turn in your project on CD or DVD and include the screen shots.<br />
12. Use mastering techniques to finalize your mix.<br />
13. <strong>5% of grade is awarded for presenting your projects in class.</strong><strong> </strong></p>
<p><strong>Option 2: Final Animatic Project<br />
Description: </strong>The Final Animatic is a two minute visual piece without a second project and intended for longer more complicated animated sequences or visuals (video, interactive, etc.). <strong><br />
Due: Session 1, Week 11<br />
Points: 50</strong><br />
1. Minimum length is 2:00. If working in groups of two 4:00.<br />
2. A minimum of 8 panels if creating animatic (16 if paired) are required. Other visuals are acceptable including flash animation, slide shows, video, etc.<br />
3. Use ProTools LE (with mBox) or ProTools 24 (in 007) to produce your audio.<br />
4. Use foley techniques to records 50% of your Sound Effects.<br />
5. A one page script is required which includes dialogue and, more importantly, sound design notes.<br />
6. Compile your project in one of the following accepted formats: .mov, .mpeg, .avi, or .swf<br />
7. A minimum of 10 tracks of audio in ProTools is required.<br />
8. Include 2 screenshots of your ProTools work in progress with your project.<br />
9 . Try to maintain the highest possible audio quality. For MP3s do not compress your audio any more than 44.1khz and 128Kbps. Wave files should be rendered as 44.1k 16bit.<br />
10. Turn in your project on CD or DVD and include the screen shots.<br />
11. Use mastering techniques to finalize your mix.<br />
12. <strong>5% of grade is awarded for presenting your work in class.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-5-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 6</title>
		<link>http://aim.johnkeston.com/ca2431/week-6-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-6-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 20:00:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-6-2/</guid>
		<description><![CDATA[Session 1: Let&#8217;s listen to and discuss the multitrack project. Explain what you learned in the process of combining several tracks of audio. What sort of difficulties did you encounter and how did you use signal processing to improve the quality of your project?
If you&#8217;re in the animation program your &#8220;Animatic Project&#8221; may involve synchronizing [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Let&#8217;s listen to and discuss the multitrack project. Explain what you learned in the process of combining several tracks of audio. What sort of difficulties did you encounter and how did you use signal processing to improve the quality of your project?</p>
<p>If you&#8217;re in the animation program your &#8220;Animatic Project&#8221; may involve synchronizing lip movements with dialogue. This article is an excellent introduction to basic lip sync positions and techniques used to make an animated character appear to speak pre-recorded dialog.</p>
<p><a href="http://minyos.its.rmit.edu.au/~rpyjp/a_notes/anim_lipsync.html" target="_blank">Lip Sync Animation</a></p>
<p>If you are planning on using Flash there are several ways to make sure your sound is Synchronized properly. The best way is to enable &#8220;Stream&#8221; on the first keyframe of your sound layer. This may cuase Flash to drop frames, but the synchronization will be maintained. The following link has details on how to maintain the synchronization of audio in Flash.</p>
<p><a href="http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_14108" target="_blank"> What are some ways to synch audio in Flash?<br />
</a><br />
<strong>Session 2:</strong> Today we&#8217;ll be taking the <strong>Audio Production Midterm Quiz. </strong>The quiz is worth 15 points toward your grade. Midterm grades are due this week. Please make sure all of you meet with me to make sure that all your projects are turned in properly.</p>
<p>This week I&#8217;ll be demonstrating how to use the equipment in the recording studio as well as discussing concepts such as Foley. Check out this website for a list of Foley articles and descriptions of some techniques. <a href="http://www.filmsound.org/foley/" target="_blank">http://www.filmsound.org/foley/</a></p>
<p>Don&#8217;t forget to create at least 50% of your sound effects using Foley. The following reading assignments will help you get a clear idea about the process of Foley, and how you can create your own Foley for your project.</p>
<p><a href="http://www.filmsound.org/terminology/foley.htm" target="_blank">What          is Foley?</a><br />
<a href="http://www.c5sound.com/newsroom/secrets.php" target="_blank">Foley          Artist Share Their Secrets</a><br />
<a href="http://1099.com/c/ar/di/foley_d030.html" target="_blank">Interview          with Dustin DuPilka</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-6-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 7</title>
		<link>http://aim.johnkeston.com/ca2431/week-7-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-7-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 20:00:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-7-2/</guid>
		<description><![CDATA[Session 1: Remember to give me paper copies of your scripts today, and in the lab, let&#8217;s continue working on the animatic project. Today in lecture we will be viewing the audio production special features for the Lord of the Rings series. These documentaries offer us a glimpse into the world of high budget film [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Remember to give me paper copies of your scripts today, and in the lab, let&#8217;s continue working on the animatic project. Today in lecture we will be viewing the audio production special features for the <strong>Lord of the Rings</strong> series. These documentaries offer us a glimpse into the world of high budget film audio effects and foley techniques.</p>
<p><strong>Session 2:</strong> MIDI stands for Musical Instrument Digital Interface, but is used for much more than connecting instruments and computers. MIDI has far exceeded it&#8217;s expectations at it&#8217;s conception. Today we&#8217;ll discuss a little about the history of MIDI and how we can make use of this technology in our projects.</p>
<p><a href="http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface%20" target="_blank">Wikipedia MIDI Resources </a><a href="http://mp3.about.com/library/weekly/aa073001.htm?terms=MIDI" target="_blank"><br />
</a></p>
<p>In class I&#8217;ll demonstrate how to manipulate MIDI information and interface Reason within ProTools. Today we&#8217;ll also meet in small groups for group lessons. Our group lesson will be on how to use automation in ProTools documents.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-7-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 8</title>
		<link>http://aim.johnkeston.com/ca2431/week-8-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-8-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 20:00:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-8-2/</guid>
		<description><![CDATA[Session 1: After a brief introductory demonstration of Reason, I&#8217;ll be demonstrating how to interface Reason and ProTools, import MIDI into a ProTools document and setup the MIDI tracks to play specific virtual instruments in Reason while the class follows along in the lab. This demo includes a 15 point exercise due Session 1, Week [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> After a brief introductory demonstration of Reason, I&#8217;ll be demonstrating how to interface Reason and ProTools, import MIDI into a ProTools document and setup the MIDI tracks to play specific virtual instruments in Reason while the class follows along in the lab. This demo includes a 15 point exercise due Session 1, Week 9. The steps for the exercise follow:</p>
<p>1. Import a .mid file into Reason (File > Import > MIDI File). Use <a href="http://www.classicalarchives.com/" target="_blank">www.classicalarchives.com</a> or <a href="http://www.creativecommons.org/" target="_blank">www.creativecommons.org</a> to find a MIDI file use can use for this exercise. Other sites, like <a href="http://mididb.com" title="mididb" target="_blank">mididb.com</a>  have many files available as well.<br />
2. Add a 14 channel mixer device in Reason (Create > Mixer).<br />
3. Create instruments for each of the tracks in your MIDI file.</p>
<li>Right+click on the background of the &#8220;rack&#8221; in reason and select a device</li>
<li>Devices that produce pitched instrument sounds include: Subtractor, Maelstrom, NN-19, NN-XT</li>
<li>Other devives that produce sound include: Redrum (drum computer) and Dr. Rex (loop player)</li>
<li>Most other devices are processors of some sort (reverb, compression, etc.)</li>
<li>The Matrix is a <a href="http://propellerhead-reason.blogspot.com/2007/09/reason-30-guide-matrix-tutorial.html" target="_blank">pattern sequencer</a></li>
<p>4. Assign the instruments to each track in the MIDI file (shown in demo).<br />
5. You can create multiple instances of the same device, but do not assign the same instance to more than one track because conflicts can occur in the controller data.<br />
6. Render your document to an audio file named midi_exercise1.wav and copy it to the drop off under John Keston/ca2431/&lt;your name&gt;.</p>
<p><strong>Session 2:</strong> We&#8217;ll be covering audio compression today in our group lessons. Audio compression (not to be confused with file compression) is a way to automatically adjust the dynamics of sound. Mixing multiple tracks of audio can often become difficult when some of the audio has varying or inconsistent levels. Audio compression can help resolve these difficulties. It as also widely over-used, especially  in the mastering process resulting in the &#8220;<a href="http://en.wikipedia.org/wiki/Loudness_war" target="_blank" title="Wikipedia: Loudness Wars">loudness wars</a>&#8220;. Please look at the following articles regarding compression for more information:</p>
<p><a href="http://en.wikipedia.org/wiki/Audio_level_compression" title="Dynamic Range Compression" target="_blank">http://en.wikipedia.org/wiki/Audio_level_compression</a><br />
<a href="http://www.recordingproject.com/articles/article.php?article=6" target="_top">Compressor          / Limiter</a> (article with audio examples illustrating compression)<br />
<a href="http://www.mindspring.com/~mrichter/dynamics/dynamics.htm" target="_blank" title="The Death of Dynamic Range">The Death of Dynamic Range</a> (Atricle on the so called &#8220;Loudness Wars&#8221;)</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-8-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 9</title>
		<link>http://aim.johnkeston.com/ca2431/week-9-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-9-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 20:01:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-9-2/</guid>
		<description><![CDATA[Session 1: Home recording technology has advanced rapidly over the last few years, making it possible to produce music in your bedroom that&#8217;s as high quality (fidelity wise) as any professionally produced music or audio at a fraction of the cost. We&#8217;ll be discussing some of the principals of home recording which allow you to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Home recording technology has advanced rapidly over the last few years, making it possible to produce music in your bedroom that&#8217;s as high quality (fidelity wise) as any professionally produced music or audio at a fraction of the cost. We&#8217;ll be discussing some of the principals of home recording which allow you to cost effectively produce high fidelity audio without having to spend big bucks in a recording studio.</p>
<p>We will also talk about some of the hardware available for home studios. Professional quality audio is currently produced in inexpensive home studios around the world. Professional quality sound cards are available for as little as $129 (see <a href="http://www.m-audio.com/" target="_blank">http://www.m-audio.com/</a>). With an inexpensive mixer and some reference monitors you can be on the way to building a &#8220;bedroom studio&#8221; of your own.</p>
<p><strong>Session 2:</strong> How do you import movies into Pro Tools? How do you then display the movie? How do you get the audio from the QuickTime movie onto a track in Pro Tools?This is very important when producing audio for video. These are some of the things we&#8217;ll be going over today.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-9-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 10</title>
		<link>http://aim.johnkeston.com/ca2431/week-10-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-10-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 20:01:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-10-2/</guid>
		<description><![CDATA[ Session 1: Reason 2.5 allows you to stack high quality virtual instruments and effects in a virtual &#8220;rack&#8221; like you&#8217;d see in a recording studio. The instruments can be controlled by a MIDI keyboard, or triggered by built in step sequencers. Both of these methods have been demonstrated in class.
The sound quality is fantastic, [...]]]></description>
			<content:encoded><![CDATA[<p> <strong><strong>Session 1:</strong> </strong>Reason 2.5 allows you to stack high quality virtual instruments and effects in a virtual &#8220;rack&#8221; like you&#8217;d see in a recording studio. The instruments can be controlled by a MIDI keyboard, or triggered by built in step sequencers. Both of these methods have been demonstrated in class.</p>
<p>The sound quality is fantastic, and the software with a decent computer could take the place of thousands of dollars worth of studio equipment (see <a href="http://www.propellerheads.se/" target="_blank">www.propellerheads.se</a> for more information). Although Reason has amazing capabilities, you shouldn&#8217;t rely on using it exclusively for your final projects. Reason does not allow you send MIDI to external devices, or directly record audio input. Today during the group lessons we&#8217;ll experiment with Reason and Rewire within Pro Tools.</p>
<p><strong>Session 2: </strong>Mastering is something that ideally is done by a seasoned professional, however, it&#8217;s not always possible to afford to pay an experienced mastering engineer. We&#8217;ll discuss some of the basics of mastering in class, such as sequencing, sweetening, and loudness. For more information please see the article linked below.</p>
<p><a href="http://www.drtmastering.com/faq.htm" target="_blank">Mastering           FAQ</a></p>
<p>In order to complete your final projects you will be required to mix down and render your audio to a two track master. This master will most likely be a .wav or .aiff file which can be transferred to either CD or DVD. This process used to be completely manual, but today we have the aid of computer automation allowing us to produce much more precise mixes in a fraction of the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-10-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 11</title>
		<link>http://aim.johnkeston.com/ca2431/week-11-2/</link>
		<comments>http://aim.johnkeston.com/ca2431/week-11-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 20:05:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/wordpress/2007/11/23/week-11-3/</guid>
		<description><![CDATA[Session 1: Let&#8217;s begin our final project presentations. Make sure you are prepared by having your project copied to the student drive on the Mac in room 009. Also, be ready to explain your mixing techniques and describe what sort of processing you used to fine tune your audio.
Session 2:  On the last day [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Let&#8217;s begin our final project presentations. Make sure you are prepared by having your project copied to the student drive on the Mac in room 009. Also, be ready to explain your mixing techniques and describe what sort of processing you used to fine tune your audio.</p>
<p><strong>Session 2:</strong> <strong> </strong>On the last day of class we will be continuing our final project presentations. Thanks for your participation. I hope you enjoyed the class as much as I did. Keep your ears open and have a great break!</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-11-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blurring Boundaries: Interactive Multimedia and Interdisciplinary Convergence</title>
		<link>http://aim.johnkeston.com/abstracts/blurring-boundaries/</link>
		<comments>http://aim.johnkeston.com/abstracts/blurring-boundaries/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 01:13:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Abstracts]]></category>

		<category><![CDATA[Interactive Media Design]]></category>

		<category><![CDATA[Journal Article]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/11/25/blurring-boundaries/</guid>
		<description><![CDATA[Author: by R Brian Stone
Title: Blurring Boundaries: Interactive Multimedia and Interdisciplinary Convergence
Source: AIGA Journal of Interactive Design Education
Date: November 14, 2004
Abstract of Major Ideas
The premise of Professor Stone&#8217;s article, Blurring Boundaries: Interactive Multimedia and Interdisciplinary Convergence, is that in order for interactive multimedia applications to progress, an interdisciplinary approach is necessary. By combining the expertise [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Author: </strong>by R Brian Stone<br />
<strong>Title:</strong> <a href="http://www.aiga.org/content.cfm/blurring-boundaries-interactive-multimedia-and-interdisciplinary-convergence" title="Link to the article" target="_blank">Blurring Boundaries: Interactive Multimedia and Interdisciplinary Convergence</a><br />
<strong>Source:</strong> <a href="http://www.aiga.org/" title="AIGA Site" target="_blank">AIGA Journal of Interactive Design Education</a><br />
<strong>Date:</strong> November 14, 2004</p>
<p><strong>Abstract of Major Ideas<br />
</strong>The premise of Professor Stone&#8217;s article, Blurring Boundaries: Interactive Multimedia and Interdisciplinary Convergence, is that in order for interactive multimedia applications to progress, an interdisciplinary approach is necessary. By combining the expertise of students and/or professionals in visual communications, industrial design, interior design, computer human interaction (HCI) and cognitive engineering it is possible to improve interactive media applications from website interfaces to digital cameras and mobile phones beyond what is possible when only one discipline is involved.</p>
<p>In his paper Professor Stone uses two examples to illustrate his points. One example shows how an interdisciplinary group of students redesigned the interface of a consumer model digital camera. In this example the interface obscured the photographic image displayed on the LCD screen. Redesigning the menu system provided a better experience for the user by making more of the image visible.<br />
<strong><br />
Critical Evaluation of Major Ideas</strong><br />
Professor Stone has not only written about his ideas of &#8220;cross pollination&#8221; within interactive multimedia design, but also put them to use in the classroom. In his paper he describes the success of this experiment by presenting the work his students produced while working in a class comprised of forty percent visual communication students, forty percent industrial design students and twenty percent cognitive engineering students. After the course students were able to identify how different disciplines contribute to design problems and see the value offered by interdisciplinary collaboration.</p>
<p>I feel that Professor Stone&#8217;s arguments are valid. Getting the perspective of a wide audience is important because we are all integrated into an environment where we use interactive applications daily. ATMs, mobile phones, media players and laptop computers are all commonplace items. Redesigning these tools to work better and making them easier to use has broad, positive implications.</p>
<p>I do believe that the interdisciplinary approach is a good idea and can work well in a graduate school environment, but it might be more difficult to implement for undergraduate students. In order for the approach to be effective I feel that it is necessary for the parties involved to have a high level of expertise. This might not be as prevalent among undergraduates and could therefore lead to frustration among students involved in interdisciplinary group projects.</p>
<p><strong>Implications for Design Education<br />
</strong>The implications of Professor Stone&#8217;s ideas for design education are profound. Too often individual colleges at universities tend to focus on their field without reaching out regularly to other disciplines. Even departments within a college may lack active collaboration. Getting a visual communications instructor to collaborate or team teach with a computer science, or engineering instructor might be a difficult task in such environments, but the results are likely to benefit the students, instructors and the interactive media field at large.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/abstracts/blurring-boundaries/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cultures, the Traditional Shadow Play, and Interactive Media Design</title>
		<link>http://aim.johnkeston.com/abstracts/cultures-the-traditional-shadow-play-and-interactive-media-design/</link>
		<comments>http://aim.johnkeston.com/abstracts/cultures-the-traditional-shadow-play-and-interactive-media-design/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 01:44:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Abstracts]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/11/25/cultures-the-traditional-shadow-play-and-interactive-media-design/</guid>
		<description><![CDATA[Author: Oguzhan Özcan
Title: Cultures, the Traditional Shadow Play, and Interactive Media Design
Source: Design Issues, MIT Press, 2002 Vol: 18, no:3, pp.18
Date: Summer, 2002
Abstract of Major Ideas
Dr. Özcan has made a compelling connection between Chinese, Indonesian, Turkish, and European shadow play and today&#8217;s interactive media as an art form. He opens his paper by arguing that [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Author:</strong> Oguzhan Özcan<strong><br />
Title:</strong> <a href="http://www.ilet.yildiz.edu.tr/oozcan/PDF_PUB/SHADOW_PLAY.PDF" title="Link to the article (pdf)" target="_blank">Cultures, the Traditional Shadow Play, and Interactive Media Design</a><br />
<strong>Source:</strong> Design Issues, MIT Press, 2002 Vol: 18, no:3, pp.18<br />
<strong>Date:</strong> Summer, 2002</p>
<p><strong>Abstract of Major Ideas<br />
</strong>Dr. Özcan has made a compelling connection between Chinese, Indonesian, Turkish, and European shadow play and today&#8217;s interactive media as an art form. He opens his paper by arguing that interactive media is not a modern phenomenon and suggests that traditional forms of shadow play amount to early examples of interactive media performances.</p>
<p>Some early examples of shadow play provided an outlet for audience members to participate by adding their own figures, therefore interacting with the media presented. Another technique might involve the artist improvising based on reactions from the audience thus facilitating an interactive response.</p>
<p>By illustrating the connection between these traditional art forms and modern interactive media technology, Dr. Özcan suggests that students might gain a new point of view as well as develop new ideas for interaction by combining current technology with traditional techniques.</p>
<p><strong>Critical Evaluation of Major Ideas<br />
</strong>Is not traditional shadow play an early form of technology? Sometimes we forget that all the modern and computerized tools and techniques we use in art and design have a basis in traditional methods. In some ways the interactive experiences of shadow play have more value than modern technology&#8217;s interactive media outlets. Dr. Özcan points out that the computerized interactive media experience is often individualized whereas shadow play involves artists and audience in a social activity. Perhaps this comparison will inspire artists to use technology to enhance social interaction, and steer us away from the detached and diluted discourse of social networking sites.</p>
<p>Contemporary examples of shadow play exist all around us. My music project, Keston and Westdal (unearthedmusic.com), often perform with imagery projected directly onto the stage or adjacent screens. The imagery is a mix of animated computer graphics and experimental video that we produced and edited specifically for this purpose. This is not an original concept, but one that adds a visual element to enhance the audience member&#8217;s experience. When the media is projected directly on to the performers we inadvertently interact with the images, creating shadows as we play our instruments.</p>
<p><strong>Implications for Design Education<br />
</strong>Dr. Özcan&#8217;s paper is an excellent example of how important an historical perspective is in the field of interactive media design. This perspective should not just include a history of electronic technology, but of the technologies used to produce traditional art forms as well. Dr. Özcan states that design students will benefit from creating projects without the aid of computers, and we should remember that interactive media is part of the world of audio-visual arts, and new technology can relate to tradition.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/abstracts/cultures-the-traditional-shadow-play-and-interactive-media-design/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Syllabus and Meeting Times</title>
		<link>http://aim.johnkeston.com/im3420/syllabus-and-meeting-times-3/</link>
		<comments>http://aim.johnkeston.com/im3420/syllabus-and-meeting-times-3/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 06:00:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/03/syllabus-and-meeting-times-3/</guid>
		<description><![CDATA[IM3420 Advanced Scripting Languages
Students will refine dynamic scripting skills to develop complex interactivity and applications (applets). The course also examines client-side forms in conjunction with server-side scripting applications. Note: WDIM students must earn a C or better to pass this capstone course
Instructor: John Keston (Schedule)
Meeting Times and Location (Friday):
Session 1 / Session 2
Room P112 (The [...]]]></description>
			<content:encoded><![CDATA[<h1>IM3420 Advanced Scripting Languages</h1>
<p>Students will refine dynamic scripting skills to develop complex interactivity and applications (applets). The course also examines client-side forms in conjunction with server-side scripting applications. <strong>Note:</strong> WDIM students must earn a C or better to pass this capstone course</p>
<h3>Instructor: <a href="mailto:jkeston@aii.edu">John Keston</a> <a href="http://aim.johnkeston.com/">(Schedule)</a></h3>
<p><strong>Meeting Times and Location (Friday):</strong><br />
Session 1 / Session 2<br />
Room P112 (The Pence Building on 8th and Hennepin) 2:00pm - 7:50pm</p>
<p><strong>Syllabus</strong>: <a href="/im3420/im3420syllabus.doc">im3420syllabus.doc</a></p>
<p><strong>Assignments / Projects:</strong></p>
<table bgcolor="#ffffff" border="0" cellpadding="2" cellspacing="2" width="100%">
<tr bgcolor="#a4ced7">
<td width="64%"><strong>Projects</strong></td>
<td width="36%"><strong>Due</strong></td>
</tr>
<tr valign="top">
<td bgcolor="#dddddd" width="64%">Guest Book - Stores site guests in a flat file</td>
<td bgcolor="#dddddd">Session 1, Week 4</td>
</tr>
<tr valign="top">
<td bgcolor="#dddddd">Links - Store and manage links in a flat file using associative arrays</td>
<td bgcolor="#dddddd">Session 2, Week 6</td>
</tr>
<tr valign="top">
<td bgcolor="#dddddd">News - Store and manage news articles in a database</td>
<td bgcolor="#dddddd">Session 1, Week 11</td>
</tr>
<tr valign="top">
<td bgcolor="#dddddd">Final Exam</td>
<td bgcolor="#dddddd">Session 2, Week 11</td>
</tr>
</table>
<p><strong>Notice:</strong> All the code examples included in the class content for IM3420 Advanced Scripting Languages are what I refer to as skeletons. They are incomplete, some have bugs, and although they may run properly they are not intended for use in production. During the lectures and studio/lab sessions the examples will be developed further and fine tuned. You may use them as a starting point for your projects, but will be expected to improve on the examples and add functionality.</p>
<p><a href="../week-1-3">Week 1</a> | <a href="../week-2-3">Week 2</a> | <a href="../week-3-3">Week 3</a> | <a href="../week-4-3">Week 4</a> | <a href="../week-5-3">Week 5</a> | <a href="../week-6-3">Week 6</a><br />
<a href="../week-7-3">Week 7</a> | <a href="../week-8-3">Week 8</a> | <a href="../week-9-3">Week 9</a> | <a href="../week-10-3">Week 10</a> | <a href="../week-11-3">Week 11</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/syllabus-and-meeting-times-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 1</title>
		<link>http://aim.johnkeston.com/im3420/week-1-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-1-3/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 06:05:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/03/week-1-3/</guid>
		<description><![CDATA[Session 1: Make sure that you can login to your OLS account. Setup a site definition in Dreamweaver or use an FTP client to complete the php tutorial at: http://www.php.net/tut.php from &#8220;Your first PHP-enabled page&#8221; to &#8220;Dealing with forms&#8221;.
Recommended Text: &#8220;Beginning PHP5&#8243; Published by WROX (Available at the bookstore)
Session 2: Create an online guestbook in [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Make sure that you can login to your OLS account. Setup a site definition in Dreamweaver or use an FTP client to complete the php tutorial at: <a href="http://www.php.net/tut.php">http://www.php.net/tut.php</a> from &#8220;Your first PHP-enabled page&#8221; to &#8220;Dealing with forms&#8221;.</p>
<p>Recommended Text: &#8220;Beginning PHP5&#8243; Published by WROX (Available at the bookstore)</p>
<p><strong>Session 2:</strong> Create an online guestbook in PHP on your student website. All PHP documents must be contained in your &#8220;public_html&#8221; directory or sub-directories within it on your OLS account. The guestbook form must have at least 10 fields (First Name, Last Name, Address, etc.) and display the results to the user on a following page. Use text fields, check boxes, radio buttons, select lists and one textarea.</p>
<p><strong>Reading assignment: </strong><br />
1.    Please read everything under variables<br />
<a href="http://us2.php.net/manual/en/language.variables.php" target="_blank">http://us2.php.net/manual/en/language.variables.php</a></p>
<p>2. Please read the following under Operators:<br />
Arithmetic, Assignment, Comparison, Logical and String<br />
<a href="http://us2.php.net/manual/en/language.operators.php" target="_blank">http://us2.php.net/manual/en/language.operators.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-1-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 2</title>
		<link>http://aim.johnkeston.com/im3420/week-2-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-2-3/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 06:10:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/03/week-2-3/</guid>
		<description><![CDATA[Session 1: Now we will continue our discussion on some of the fundamentals of cgi (common gateway interface) scripting, commonly refered to as server side scripting. We&#8217;ll look at usefully troubleshooting techniques such as phpinfo() and using the echo statement to display variable values. In the lab make the guestbook form populate the guests.txt flat [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Now we will continue our discussion on some of the fundamentals of cgi (common gateway interface) scripting, commonly refered to as server side scripting. We&#8217;ll look at usefully troubleshooting techniques such as <a href="http://www.php.net/phpinfo" target="_blank">phpinfo()</a> and using the <a href="http://www.php.net/manual/en/function.echo.php" target="_blank">echo</a> statement to display variable values. In the lab make the guestbook form populate the guests.txt flat file Set the permissions to world writable and implement the following code:</font></p>
<pre name="code" class="php">

&lt;?
    $gb_file = fopen( &quot;guests.txt&quot;, &quot;a+&quot; );
    if ( fwrite($gb_file, &quot;$name\t$email\n&quot;) ) {
        $body  = &quot;My message Text...\n&quot;;
        $body .= &quot;$name\n&quot;;
        $body .= &quot;$email\n&quot;;
        mail( &quot;my_email@my_domain.edu&quot;,&quot;Guest Book Entry&quot;, $body );
        echo &quot;Thanks!&lt;br&gt;\n&quot;;
    }
    else {
        echo &quot;could not write file...&lt;br&gt;\n&quot;;
    }
?&gt;
</pre>
<p>You must create a file in the same folder called &#8220;guests.txt&#8221; for this example to work. It is also necessary to set the permissions so that the file is &#8220;world writable&#8221;. The permissions can be set using an FTP client. If you&#8217;re unsure how to do this we can go over this in class on Session 1. To check your work, view guest.txt in the browser by going to http://&lt;account_name&gt;.aisites.com/guests.txt</p>
<p><strong>Session 2:</strong> Now that your guestbook form is adding each new entry to the &#8220;guests.txt&#8221; file, create a new php document called &#8220;show_guests.php&#8221;. Write code in the script to loop through the guests.txt file and display the results in HTML. Make the email field a mailto link ( &lt;a href=&#8221;mailto:test@test.com&#8221;&gt;test@test.com&lt;/a&gt; ). Here&#8217;s an example of a loop:</p>
<pre name="code" class="php">

Example #1
&lt;?
        $gb_file = file( 'guests.txt' );
        for( $x=0; $x &lt; count($gb_file); ++$x ) {
                echo ( &quot;line $x:&quot; . $gb_file[$x] . &quot;\n&quot; );
        }
?&gt;

Example #2
&lt;?
    $gb_file = file( 'guests.txt' );
    while( list($line_nums, $lines) = each($gb_file) ) {
        echo( &quot;line $line_nums:&quot; . $lines . &quot;\n&quot; );
    }
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-2-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 3</title>
		<link>http://aim.johnkeston.com/im3420/week-3-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-3-3/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 06:15:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/04/week-3-3/</guid>
		<description><![CDATA[Session 1: Some important pre-processing is required for text areas within forms, otherwise every time a user hits enter in a text field the flat file will contain the &#8220;return&#8221; and &#8220;new line&#8221; characters. This means our flat file will essentially be corrupt because the &#8220;new line&#8221; character is used to distinguished between one record [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Some important pre-processing is required for text areas within forms, otherwise every time a user hits enter in a text field the flat file will contain the &#8220;return&#8221; and &#8220;new line&#8221; characters. This means our flat file will essentially be corrupt because the &#8220;new line&#8221; character is used to distinguished between one record and the next. The following function replaces the character that corrupts the flat file with an HTML break tag:</p>
<pre>$comments = str_replace("\r\n","",$comments);</pre>
<p>It&#8217;s easy enough to display the file line by line, but what if you want to have each field within the lines line up within an HTML table and include other formatting options, such as bolding, or a &#8220;mailto&#8221; link?</p>
<p>In order to do this you need to use the &#8220;explode&#8221; function to extract the individual fields into an array which we can then display in a dynamic web page. See the example below (show_guests.php):</p>
<pre name="code" class="html">

&lt;html&gt;
&lt;title&gt;My Guests&lt;/title&gt;
&lt;head&gt;&lt;/head&gt;
&lt;body&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;First Name&lt;/th&gt;&lt;th&gt;Last Name&lt;/th&gt;&lt;th&gt;Email&lt;/th&gt;&lt;/tr&gt;
&lt;?
    $gb_file = file( 'guests.txt' );
    foreach( $gb_file as $line ) {
        rtrim( $line );
        $field = explode( &quot;\t&quot;, $line );
        echo( &quot;&lt;tr&gt;\n&quot; );
        echo( &quot;&lt;td&gt;&quot; . $field[0] . &quot;&lt;/td&gt;\n&quot; );
        echo( &quot;&lt;td&gt;&quot; . $field[1] . &quot;&lt;/td&gt;\n&quot; );
        echo( &quot;&lt;td&gt;&lt;a href=\&quot;mailto:$field[2]\&quot;&gt;$field[2]&lt;/a&gt;&lt;/td&gt;&quot; );
        echo( &quot;&lt;/tr&gt;&quot; );
    }
?&gt;
&lt;/table&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Complete the guestbook project by adding your own personal design touch to the elements of the project, including the form (guestbook.html), the action (guestbook.php) and the show_guests.php script. Here&#8217;s a list of requirements for the project and how you&#8217;re expected to turn in the project:</p>
<ol>
<li>The guest book form (guestbook.html) must have at least 10 fields for the user to input.</li>
<li>User input must contain arrays by using checkboxes or a select multiple list.</li>
<li>Use loops to gather information from the arrays.</li>
<li>The form action (guestbook.php) must send an email and write the fields to the &#8220;guests.txt&#8221; file.</li>
<li>The form action must strip harmful header injection attacks.</li>
<li>The guestbook.php script should provide feedback including thanking the user after they submit the form.</li>
<li>The show_guests.php script should display all the guests in a table lined up evenly.</li>
<li>Copy all your code to the drop off drive and a link to your project on OLS.</li>
<li>This project is due Session 1, Week 4.</li>
</ol>
<p><strong>Session 2:</strong> We talked about the dynamic links page project.To begin the links project create a directory called &#8220;links&#8221; inside your &#8220;php&#8221; directory. Inside the &#8220;links&#8221; fold create a form like the one below. The form should have a text field for the url, the category and the description.</p>
<form>
<table border="0" bgcolor="#aaaaaa" cellpadding="3" cellspacing="1">
<tr bgcolor="#FFFFFF">
<td>Url:</td>
<td>
<input name="url" type="text">
      </td>
</tr>
<tr bgcolor="#FFFFFF">
<td>Category:</td>
<td>
<input name="category" type="text"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td>Description:</td>
<td>
<input name="description" type="text">
      </td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="2">
<input name="submit" value="add link" type="submit">
      </td>
</tr>
</table>
</form>
<p>To see a working model of the links project click <a href="http://jck362.aisites.com/links2" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-3-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 4</title>
		<link>http://aim.johnkeston.com/im3420/week-4-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-4-3/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 06:44:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/04/week-4-3/</guid>
		<description><![CDATA[Session 1: Don&#8217;t forget that the &#8220;guestbook&#8221; project is due today. Create the link to the working guestbook area and copy the source files with the link file (this includes the form html document, the form&#8217;s action PHP, and the PHP script to display the guests) to the drop off drive (John Keston\mm2421\&#60;student_name&#62;).
Write a PHP [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Don&#8217;t forget that the &#8220;guestbook&#8221; project is due today. Create the link to the working guestbook area and copy the source files with the link file (this includes the form html document, the form&#8217;s action PHP, and the PHP script to display the guests) to the drop off drive (John Keston\mm2421\&lt;student_name&gt;).</p>
<p>Write a PHP script to alphabetically display a list of categories found in the links.txt file using multi-dimensional associative arrays. This may sound hard, but it&#8217;s only 15 lines of code. Using associative arrays makes it possible to organize data such that very little code is needed to handle more complicated tasks. Here&#8217;s an example to help you along:</p>
<pre name="code" class="php">

&lt;?
  // include this at the very top of index.php
  // open the links file and insert into array
  $links_file = file( 'links.txt' );

  // loop through the file, line by line
  foreach ($links_file as $line ) {
    $line = rtrim( $line );
    $field = explode( &quot;\t&quot;, $line );
    // make sure a category and link exist
    if ( $field[0] &amp;&amp; $field[1] ) {
      // set the description to the link if absent
      if ( !$field[2] ) {
        $field[2] = $field[1];
      }
      // push each link into a hash of each category - this creates
      // a multidimensional associative array called $links_hash
      $links_hash[&quot;$field[0]&quot;][]=&quot;&lt;a href=\&quot;$field[1]\&quot;&gt;$field[2]&lt;/a&gt;&quot;;
    }
  }
  // sort the hash by the key (&quot;category&quot;)
  ksort ( $links_hash );
?&gt;
&lt;?
  // place this in the body of index.php
  // Display the Categories as links to anchors
  echo( &quot;&lt;b&gt;Categories:&lt;/b&gt;&lt;br /&gt;\n&quot; );
  while ( list($key,$value) = each($links_hash) ) {
    echo( &quot;&lt;a href=\&quot;#$key\&quot;&gt;$key&lt;/a&gt;&lt;br /&gt;\n&quot; );
  }
  reset( $links_hash );
?&gt;
</pre>
<p><strong>Session 2:</strong> Here&#8217;s an example of code which will display all the links after they have been placed in the hash called $links_hash. This code must be placed in the same document AND after the code example from Session 1.</p>
<pre name="code" class="php">

&lt;?
  // add to body of index.php
  while( list($key, $value) = each ($links_hash) ) {
    echo( &quot;&lt;p&gt;&lt;a href=\&quot;#top\&quot; name=\&quot;$key\&quot;&gt;&lt;b&gt;$key&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;\n&quot; );
    sort ( $value );
    for ( $x=0; $x &lt; count($value); ++$x ) {
      echo( &quot;$value[$x]&lt;br&gt;\n&quot; );
    }
  }
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-4-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 5</title>
		<link>http://aim.johnkeston.com/im3420/week-5-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-5-3/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 15:39:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/04/week-5-3/</guid>
		<description><![CDATA[Session 1: What if you want to make sure that none of the links you&#8217;re adding to the links file are duplicates? You&#8217;re not going to want the same link in the same page twice and it may be difficult to remember every link that you&#8217;ve added. Here&#8217;s an example of how you can prevent [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> What if you want to make sure that none of the links you&#8217;re adding to the links file are duplicates? You&#8217;re not going to want the same link in the same page twice and it may be difficult to remember every link that you&#8217;ve added. Here&#8217;s an example of how you can prevent duplicate links from being added to the flat file:</p>
<pre name="code" class="php">

&lt;?
    import_request_variables(&quot;gP&quot;);
    // Check for a new category
    if ( $new_category ) {
        $category = $new_category;
    }

    // Make sure $url and $category exist before adding
    if ( $url &amp;&amp; $category ) {
        $links_file = file ( 'links.txt' );
        for( $x=0; $x &lt; count($links_file); ++$x ) {
            $field = explode( &quot;\t&quot;, $links_file[$x] );
            $match = rtrim( $field[1] );
            // Check for duplicate links
            if ( $match == $url ) {
                header( &quot;Location: index.php?message=duplicate link&quot; );
                exit( );
            }
        }
        $links_file = fopen( 'links.txt', &quot;a+&quot; );
        if ( $description ) {
            $new_link = &quot;$category\t$url\t$description\n&quot;;
        }
        else {
            $new_link = &quot;$category\t$url\n&quot;;
        }
        fwrite( $links_file, $new_link );
        fclose( $links_file );
    }
    header( &quot;Location: index.php&quot; );
?&gt;
</pre>
<p><strong>Session 2:</strong> If you have gotten as far as getting the links added while avoiding duplicates and displaying the links organized by category, then it&#8217;s time to add the functionality to delete links. To do this you will need to search through your flat file and re-write the information without the link specified for deletion. Here&#8217;s an example of code which will accomplish this task:</p>
<pre name="code" class="php">

&lt;?
    // File: drop_link.php
    // Author: John Keston
    // Description: Drop a link from the the links flat file

    import_request_variables(&quot;gP&quot;);
    $message = &quot;Link not found&quot;;

    if ( $drop_url ) {
        $links_file = file ( 'links.txt' );
        foreach( $links_file as $line ) {
            $field = explode( &quot;\t&quot;, $line );
            $field[2] = rtrim( $field[2] );
            if ( !$field[2] ) {
                $field[1] = rtrim( $field[1] );
            }
            if ( $field[1] != $drop_url &amp;&amp; $field[2] != $drop_url ) {
                $new_file[] = $line;
            }
            else {
                $message = &quot;&quot;;
            }
            // Uncomment this line for troubleshooting
            // echo ( &quot;&lt;pre&gt;|$drop_url|$field[1]|$field[2]|\n&quot; );
        }
        $new_links = fopen( 'links.txt', &quot;w+&quot; );
        foreach( $new_file as $link ) {
            fwrite( $new_links, $link );
        }
        fclose( $new_links );
    }
    header( &quot;Location: index.php?message=$message&quot; );
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-5-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 6</title>
		<link>http://aim.johnkeston.com/im3420/week-6-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-6-3/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 20:29:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/04/week-6-3/</guid>
		<description><![CDATA[Session 1: The links project is due on Session 2, Week 6. This project and the guestbook project is what will determine your midterm grade, please add any finishing touches before Session 2. Most of you have this included already, but to add a dynamically generated drop down list of categories to the add link [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> The links project is due on Session 2, Week 6. This project and the guestbook project is what will determine your midterm grade, please add any finishing touches before Session 2. Most of you have this included already, but to add a dynamically generated drop down list of categories to the add link form use the following code. Make sure that you place the code within the form tags of the add link form:</p>
<pre name="code" class="php">

&lt;select name=&quot;category&quot;&gt;
&lt;?
    while ( list($key,$value) = each($links_hash) ) {
        echo( &quot;&lt;option value=\&quot;$key\&quot;&gt;$key&lt;/option&gt;\n&quot; );
    }
    reset( $links_hash );
?&gt;
&lt;/select&gt;
</pre>
<p>To turn in the links project, on the drop off drive (Z:/John Keston/mm2421/&lt;yourname&gt;/links) place the following:</p>
<ol>
<li>An Internet Shortcut to your &#8220;links&#8221; project</li>
<li>All the source code</li>
<li>The &#8220;links.txt&#8221; flat file</li>
<li>Add at least 5 categories with a total of at least 20 links to your page</li>
<li>Add some personal design choices to your links page</li>
</ol>
<p>The next project is called the News Database project and involves making a web interface to a remote database. We&#8217;ll use MySQL which is the database platform, and &#8220;MySQL-Front&#8221; as our tool for managing the database. Add the following tables to the &#8220;aimstudent5&#8243; database. Use a prefix of your first, middle, last initials and underscore (jck_) for each table. Add at least one user with username and password to the users table:</p>
<pre name="code" class="sql">

CREATE TABLE news_users (
    id          INT PRIMARY KEY AUTO_INCREMENT,
    username    VARCHAR(64)        NOT NULL UNIQUE,
    password    VARCHAR(64)        NOT NULL,
    first_name  VARCHAR(64)        NOT NULL,
    last_name   VARCHAR(64)        NOT NULL,
    email       VARCHAR(128),
    status      VARCHAR(32) DEFAULT 'enabled'
);

CREATE TABLE news_articles (
    id          INT PRIMARY KEY AUTO_INCREMENT,
    headline    VARCHAR(128)        NOT NULL,
    author      VARCHAR(128),
    body        TEXT                NOT NULL,
    create_date DATETIME            NOT NULL,
    modify_date DATETIME,
    user_id     INT                 NOT NULL,
    status      VARCHAR(32) DEFAULT 'enabled'
);
</pre>
<p><strong>Session 2:</strong> The links project is due today. Next step is to write the code which authenticates the user and sets a session cookie so that we know who has authenticated and use their ID to track who&#8217;s creating the news stories. Place these examples in a sub-directory of your php directory called &#8220;news&#8221;. Next create a login form then create a php script called &#8220;auth_user.php&#8221; to compare what the user enters to the database.</p>
<p>1. The &#8220;Login&#8221; form:</p>
<form>
<table border="0" bgcolor="#aaaaaa" cellpadding="3" cellspacing="1">
<tr bgcolor="#FFFFFF">
<td>Username:</td>
<td>
<input name="username" type="text">
      </td>
</tr>
<tr bgcolor="#FFFFFF">
<td>Password:</td>
<td>
<input name="password" type="password"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="2">
<input name="submit" value="login" type="submit">
      </td>
</tr>
</table>
</form>
<pre name="code" class="php">

&lt;?
    ////////////////////////////////
    // Script Name: auth_user.php //
    ////////////////////////////////
    import_request_variables(&quot;gp&quot;);

    // Connect to a MySQL database
    $dbh = mysql_connect (&quot;localhost&quot;, &quot;jck362aii_jck&quot;, &quot;abc123&quot;)
        or die ('I cannot connect to the database.');
    mysql_select_db (&quot;jck362aii_news&quot;);

    // Build the database query
    $query = &quot;SELECT * FROM news_users WHERE &quot;;
    $query .= &quot;username = '$username' AND &quot;;
    $query .= &quot;password = MD5('$password') AND &quot;;
    $query .= &quot;status = 'enabled'&quot;;
    // Execute the query and fetch the results
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    // check for a match
    if ( $row ) {
        // Set a cookie and display the add news form
        setcookie( &quot;user_id&quot;,$row['id'] );
        header( &quot;Location: add_news.php&quot; );
        exit();
    }
    // Return to login.php and displays auth failed message
    header( &quot;Location: login.php?&quot; .
            &quot;message=Authorization failed. Please try again.&quot; );
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-6-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 7</title>
		<link>http://aim.johnkeston.com/im3420/week-7-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-7-3/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 03:45:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/04/week-7-3/</guid>
		<description><![CDATA[Session 1: Once you have database authentication working create the add_news.php script which will check to make sure that the user_id cookie has been written and if so display the &#8220;Add News&#8221; form similar to what&#8217;s below. At the top of the form document insert the PHP code below to test for the cookie value.
The [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Once you have database authentication working create the add_news.php script which will check to make sure that the user_id cookie has been written and if so display the &#8220;Add News&#8221; form similar to what&#8217;s below. At the top of the form document insert the PHP code below to test for the cookie value.</p>
<p>The &#8220;Add News&#8221; form:</p>
<table bgcolor="#aaaaaa" cellspacing="1" cellpadding="3">
<tr bgcolor="#ffffff">
<td>Headline:</td>
<td>
<input name="headline" type="text"></td>
</tr>
<tr bgcolor="#ffffff">
<td>Topic:</td>
<td>
<input name="topic" type="text"></td>
</tr>
<tr bgcolor="#ffffff">
<td height="27">Author:</td>
<td>
<input name="author" type="text"></td>
</tr>
<tr bgcolor="#ffffff">
<td>Date:</td>
<td>
<input name="create_date" type="text"></td>
</tr>
<tr bgcolor="#ffffff">
<td colspan="2">Body:<br />
      <textarea name="body" cols="40"></textarea>
    </td>
</tr>
<tr bgcolor="#ffffff">
<td colspan="2">
<input name="submit" value="Submit" type="submit"></td>
</tr>
</table>
<pre name="code" class="php">

&lt;?
  $user_id = $_COOKIE['user_id'];
  if ( !$user_id ) {
    header( &quot;Location: login.php?message=Login before adding news&quot; );
    exit();
  }
?&gt;
</pre>
<p>Now that we are authenticating the administrative users and creating a cookie, we need to send them to the news form so they can add a news story. Here&#8217;s an an example of code we can use to insert a record into the news table:</p>
<pre name="code" class="php">

&lt;?
  //////////////////////////////////
  // Script Name: insert_news.php //
  //////////////////////////////////

  import_request_variables(&quot;gP&quot;);
  $user_id = $_COOKIE[&quot;user_id&quot;];
  if ( !$user_id ) {
    header( &quot;Location: login.php?message=Login before adding news&quot; );
    exit();
  }

  // Connect to a MySQL database
  $dbh=mysql_connect (&quot;localhost&quot;, &quot;mydb_account&quot;, &quot;mydb_password&quot;)
      or die ('I cannot connect to the database.');
  mysql_select_db (&quot;mydb_name&quot;);

  // Build the database query
  $query  = &quot;INSERT INTO jck_news &quot;;
  $query .= &quot;(headline,author,body,create_date,user_id,status) &quot;;
  $query .= &quot;VALUES &quot;;
  $query .= &quot;('$headline','$author','$body',&quot;);
  $query .= &quot;'$create_date',$user_id,'$status')&quot;;

  // Execute the query and check for validity
  if ( mysql_query($query) ) {
    header(&quot;Location: add_news.php?message=Thanks for your submission&quot;);
    exit();
  }
  echo( &quot;insert failed: $query\n&quot; );
?&gt;
</pre>
<p><strong>Session 2:</strong> Today let&#8217;s discuss how we can take frequently used code and put it into includes. Includes work like functions and are reusable chunks of code that we can link in our PHP documents, rather than re-writing things repeatedly.</p>
<p>connect_inc.php</p>
<pre name="code" class="php">

&lt;?
  // Connect to a MySQL database
  $dbh=mysql_connect (&quot;localhost&quot;, &quot;mydb_account&quot;, &quot;mydb_password&quot;);
  mysql_select_db(&quot;mydb_name&quot;);
?&gt; 
</pre>
<p>Use the following line of code to include the connection script in a diferent PHP document:</p>
<p>include(&#8221;connect_inc.php&#8221;);</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-7-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Week 8</title>
		<link>http://aim.johnkeston.com/im3420/week-8-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-8-3/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 03:54:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[IM3420 Advanced Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/12/04/week-8-3/</guid>
		<description><![CDATA[Session 1: Now we can move on the the &#8220;front-end&#8221; of the application. This is where users can view news that has been inserted into the database. The first page will list all the news stories in the database as links and the links for each story will display the details of the story. Here&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Now we can move on the the &#8220;front-end&#8221; of the application. This is where users can view news that has been inserted into the database. The first page will list all the news stories in the database as links and the links for each story will display the details of the story. Here&#8217;s the code for the list of stories (show_headlines.php):</p>
<pre name="code" class="php">

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Show Headlines&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h3&gt;News Stories&lt;/h3&gt;
&lt;b&gt;&lt;font color=&quot;red&quot;&gt;&lt;? echo $message ?&gt;&lt;/font&gt;&lt;/b&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Headline&lt;/th&gt;&lt;th&gt;Author&lt;/th&gt;&lt;th&gt;Date&lt;/th&gt;
&lt;?
    /////////////////////////////////////
   