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

<channel>
	<title>John Keston Classes</title>
	<atom:link href="http://aim.johnkeston.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://aim.johnkeston.com</link>
	<description>Curriculum for classes taught by John Keston at Art Institutes Minnesota</description>
	<lastBuildDate>Mon, 30 Aug 2010 20:08:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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>
		<slash:comments>1</slash:comments>
		</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 [...]]]></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:jkeston@aii.edu">John Keston</a></strong><br />
<strong>Meeting Times and Location:</strong><br />
Monday / Wednesday<br />
Room P108, Pence Building, 2:00pm &#8211; 5:00pm</p>
<p><strong>Syllabus</strong>:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2007/11/im4420_dynamic_web_apps_sp10_keston.doc'>IM4420 Dynamic Web Apps Spring 2010</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>
		<slash:comments>0</slash:comments>
		</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><a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/php_problem_set_1.zip'>Download: PHP Problem Set 1</a><br />
1. All PHP problems within a &#8220;set&#8221; are due by the beginning of class on the next day that the class meets.<br />
2. Each solution must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an <a href="http://bestfriendsforevers.com">assigned</a> classmate.</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; &#8211; <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 &#8211; 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) &#8211; <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> &#8211; 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> &#8211; Try before you bu&#8230; install.<br />
<a href="http://www.cmsmatrix.org/" target="_blank">CMS Matrix</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 href="http://www.cmsmatrix.org/" target="_blank">www.cmsmatrix.org</a><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 &#8211; 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>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/php_problem_set_2.zip'>Download: PHP Problem Set 2</a><br />
1. All PHP problems within a &#8220;set&#8221; are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an <a href="http://bestfriendsforevers.com">assigned</a> classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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> &#8211; Developing a custom e-commerce system is an excellent asset for clients and employers.<br />
<strong>2. Dynamic Content Management</strong> &#8211; The point is to allow the customer to edit their content without help from a developer.<br />
<strong>3. Forums / Message Boards</strong> &#8211; These tools are important to community sites and organizations.<br />
<strong>4. News / Blogging</strong>  &#8211; 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> &#8211; 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>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/php_problem_set_3.zip'>Download: PHP Problem Set 3</a><br />
1. All PHP problems within a “set” are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an assigned classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 M2 (M/W): Session 1 / Session 2 Room 009 5:00pm [...]]]></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</strong></p>
<p>Meeting Times and Location Section M2 (M/W):<br />
Session 1 / Session 2<br />
Room 009 5:00pm &#8211; 6:00pm<br />
Room 010 6:00pm &#8211; 8:00pm</p>
<p>Meeting Times and Location Section M1 (T/R):<br />
Room 009 8:00am &#8211; 9:00am<br />
Room 229 9:00am &#8211; 11:00am</p>
<p>Syllabus:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2007/11/ca2431_audio_production_m2_su10_keston.doc'>CA2431 Audio Production M2 Summer 2010</a><br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2007/11/ca2431_audio_production_m1_su10_keston.doc'>CA2431 Audio Production M1 Summer 2010</a></p>
<p>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>
		<slash:comments>0</slash:comments>
		</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>
<p><strong>Template Tag Explanation Assignment:</strong><br />
In class on session 1 of week 5 please be prepared to describe the details about one of the template tags that you are using in your implementation project. Do research so that you can tell us what features the template tag has and what arguments are necessary to produce those behaviors.  </p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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>Also: <strong>Template Tag Explanation Assignment Due Today</strong></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 class="brush: 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>
		<slash:comments>0</slash:comments>
		</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>WordPress Plugin Developer Resources:<br />
<a href="http://codex.wordpress.org/Writing_a_Plugin">Writing a WordPress Plugin</a><br />
<a href="http://markjaquith.wordpress.com/2006/03/04/wp-tutorial-your-first-wp-plugin/">Your First WordPress Plugin (Video)</a></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>
<p>WordPress Plugin Exercise:<br />
1. Write a WordPress plugin to display the &#8220;age&#8221; of a post<br />
2. Display the days, hours, and minutes in a human readable form<br />
3. Try using the template tag the_time()<br />
4. Try also using the WordPress function human_time_diff()</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 &#8211; Final project concept presentations (explain to class your concept)<br />
Session 1, Week 8 &#8211; Final project development plans due (paper copies of finished devplans)<br />
Session 2, Week 8 &#8211; First of three progress reports (show code, get feedback, etc.)<br />
Session 1, Week 9 &#8211; Second progress report<br />
Session 1, Week 10 &#8211; Discuss take home final essay questions<br />
Session 1, Week 10 &#8211; Third progress report<br />
Week 11 &#8211; 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>
		<slash:comments>0</slash:comments>
		</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>
		<slash:comments>0</slash:comments>
		</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> &#8211; 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> &#8211; 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> &#8211; A community music site featuring remixes also licensed under Creative Commons.<br />
<a href="http://www.archive.org/" target="_blank">archive.org</a> &#8211; 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> &#8211; 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>
		<slash:comments>0</slash:comments>
		</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 Twitter, Facebook, and Myspace along with e-commerce sites like eBay, Amazon and iTunes have changed the way our society operates. Beyond email and instant messaging, 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 had the means to create any kind of web enabled, interactive 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 organizations and 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>  Final project progress reports are scheduled for today. </p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im4420/week-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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>
		<slash:comments>0</slash:comments>
		</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 [...]]]></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 Pro Tools 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 &#8211; 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 Pro Tools. I will be demonstrating this process in the lab.</p>
<p>Once you&#8217;ve converted your track, use Pro Tools 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>
<p><a href="http://www.keyxl.com/aaac31a/263/DigiDesign-ProTools-7-keyboard-shortcuts.htm" target="_blank">Pro Tools 7 Quick Keys for Macintosh</a><br />
<strong><br />
A note about Pro Tools Documents:</strong> Pro Tools documents are called sessions. Each session is a folder that contains the Pro Tools file with a .PTF extension, and various other files and folders necessary to open the session. These include the &#8220;Audio Files&#8221; folder that contains all of the imported and recorded sounds in your project. It is critical that you backup the entire Pro Tools session folder on an external volume to preserve your project for editing or re-rendering (bouncing). </p>
<p>If you do not have access to an external volume you can backup your project on a network drive, however, this will probably fail due to long file names in your &#8220;Audio Files&#8221; folder. DO NOT rename these files! To work around this problem, first create an archive (.zip) of your session folder and then copy it to the network drive location. An easy way to create the .zip file on the Mac is to right+click the folder and choose &#8220;Compress my_session&#8221;. Remember that all students have access to the network drive, so only use this method if you have no alternative. </p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-1-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</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 and 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 and 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/library2/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 &#8211; 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 Pro Tools 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>Reading:<br />
<a href="http://www.realworlddigitalaudio.com/" target="_blank">Real World Digital Audio</a>, Chapter 6 &#8211; Recording Instruments and Sound<br />
<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>
		<slash:comments>0</slash:comments>
		</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 [...]]]></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 Pro Tools 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 Pro Tools<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 Pro Tools<br />
8. Press &#8220;Record&#8221; and then &#8220;Play&#8221; on the transport in Pro Tools 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 Pro Tools 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 Pro Tools. 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 &#8211; Time Division Multiplexing<br />
RTAS &#8211; 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>
		<slash:comments>0</slash:comments>
		</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 Pro Tools. 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>Pro Tools &#8211; <a href="http://www.avid.com/US/products/family/Pro-Tools" target="_blank">www.avid.com</a><br />
Sonar &#8211; <a href="http://www.cakewalk.com/" target="_blank">www.cakewalk.com</a><br />
CuBase &#8211; <a href="http://www.steinberg.net/" target="_blank">www.steinberg.net</a><br />
Logic &#8211; <a href="http://www.apple.com/logic/" target="_blank">www.apple.com/logic</a><br />
Digital Performer &#8211; <a href="http://www.motu.com/" target="_blank">www.motu.com</a></p>
<p><strong>Soft Synths<br />
</strong>Reaktor &#8211; <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com</a><br />
Absynth &#8211; <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com</a><br />
B4 &#8211; <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com</a><br />
Kontakt &#8211; <a href="http://www.native-instruments.com/" target="_blank">www.native-instruments.com </a><br />
Reason &#8211; <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 &#8211; <a href="http://www.ableton.com/" target="_blank">www.ableton.com</a><br />
Recycle &#8211; <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>
		<slash:comments>0</slash:comments>
		</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’ll be watching an episode of Cowboy Bebop as a listening exercise and inspiration for the Animatic Project, which we’ll be discussing next class. While watching, pay particular attention to the audio that has been meticulously produced for this series. Not only is the music superb, but also the sound design is [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Today we’ll be watching an episode of Cowboy Bebop as a listening exercise and inspiration for the Animatic Project, which we’ll be discussing next class. While watching, pay particular attention to the audio that has been meticulously produced for this series. Not only is the music superb, but also the sound design is of outstanding cinematic standards. Be prepared to discuss specific examples from the audio after watching the episode. While watching and listening please answer the questions on the document linked below and turn it in after the exercise has been completed. </p>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2009/02/animation_listening_exercise.doc' title='Animation Listening Exercise'>Animation Listening Exercise</a></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>          &#8211; 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>          &#8211; 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>          &#8211; 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: 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 (command+shift+3 creates a screenshot on the desktop).<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. Copy your project with screen shots to the student drive in room 009 before it is due.<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>
<p><strong>Option 2: 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 (command+shift+3 creates a screenshot on the desktop).<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. Copy your project with screen shots to the student drive in room 009 before it is due.<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>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-5-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</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 [...]]]></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><br />
<a href="http://library.creativecow.net/articles/rabinowitz_aharon/lip_synch.php">Lip-Synching for Character 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>
		<slash:comments>2</slash:comments>
		</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>Reading:<br />
<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"></a><br />
<a href="http://www.amazon.com/Real-World-Digital-Audio-Peter/dp/0321304608">Real World Digital Audio</a> Chapter 8 MIDI: Notes, Rhythms, and Physical Control</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>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>
		<slash:comments>0</slash:comments>
		</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. Open Reason and add a 14:2 channel mixer device to the rack (Create > Mixer).</p>
<ul><img src="http://aim.johnkeston.com/wp-content/uploads/2007/11/Picture-1.png" alt="Picture 1" title="Picture 1" width="142" height="69" class="alignnone size-full wp-image-289" /></ul>
<p>2. 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 />
3. A Combinator is automatically created for each track in the MIDI file.</p>
<ul><img src="http://aim.johnkeston.com/wp-content/uploads/2007/11/Picture-2.png" alt="Picture 2" title="Picture 2" width="141" height="51" class="alignnone size-full wp-image-290" /></ul>
<p>4. Create instruments for each of the Combinators by pressing &#8220;show devices&#8221;.</p>
<ul><img src="http://aim.johnkeston.com/wp-content/uploads/2007/11/Picture-3.png" alt="Picture 3" title="Picture 3" width="122" height="27" class="alignnone size-full wp-image-291" /></p>
<li>Right+click on the black rectangle in the Combinator and select an output device</li>
<li>Devices that produce pitched instrument sounds include: Subtractor, Maelstrom, Thor, NN-19, NN-XT</li>
<li>These devices produce percussive sounds or loops: 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>
</ul>
<p>5. Try applying processing as axillary sends.</p>
<ul>
<li>Right+click on the mixer</li>
<li>Choose a processor such as the RV7000 for reverb</li>
<p><img src="http://aim.johnkeston.com/wp-content/uploads/2007/11/Picture-5.png" alt="Picture 5" title="Picture 5" width="148" height="59" class="alignnone size-full wp-image-292" /></p>
<li>Turn up Aux 1 on the mixer for each track you&#8217;d like to process</li>
<p><img src="http://aim.johnkeston.com/wp-content/uploads/2007/11/Picture-6.png" alt="Picture 6" title="Picture 6" width="45" height="81" class="alignnone size-full wp-image-293" /></ul>
<p>6. Also try adjusting the tempo, transposing notes, and applying automation.<br />
7. When you&#8217;re happy with your mix, 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>
<ul>
<li>Choose File > Export Song as Audio File</li>
<li>Choose Reason WAVE File under Format</li>
<li>Choose 44,100Hz and 16bit</li>
</ul>
<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.cdmasteringservices.com/dynamicdeath.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>
		<slash:comments>1</slash:comments>
		</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>
<p><strong>Final Project Milestone #1</strong><br />
Also, today I&#8217;ll be asking each of you to demonstrate that you are making progress on the final project. The following is a list of what I am expecting you to illustrate to me during our scheduled lab time today.</p>
<p>1. Show an example of the visuals that you are using for your final project.<br />
2. Open and play a Pro Tools document that includes at least one track of audio.<br />
3. Make sure that you have a master fader applied to your document.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-9-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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://en.wikipedia.org/wiki/Audio_mastering" target="_blank">Audio Mastering</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>
<p><strong>Final Project Milestone #2</strong><br />
Also, today I&#8217;ll be asking each of you to illustrate your progress on the final project. The following is a list of what I am expecting you to show me during our scheduled lab time today.</p>
<p>1. Show an example of the visuals and sound combined for your final project.<br />
2. Open and play a Pro Tools document that includes several tracks of audio for the final.<br />
3. Show one example of automation in your document.<br />
4. Demonstrate the use of inserts in your Pro Tools document.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/week-10-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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>
		<slash:comments>0</slash:comments>
		</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 [...]]]></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>
		<slash:comments>0</slash:comments>
		</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 [...]]]></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>
		<slash:comments>0</slash:comments>
		</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 (M/W): Session 1 / [...]]]></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 (M/W):</strong><br />
Session 1 / Session 2<br />
Room P108 (The Pence Building on 8th and Hennepin) 11:00am &#8211; 2:00pm</p>
<p><strong>Syllabus</strong>:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/im3420_adv_scripting_sp10_keston.doc'>IM3420 Advanced Scripting Languages</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 &#8211; Stores site guests in a flat file</td>
<td bgcolor="#dddddd">Session 1, Week 4</td>
</tr>
<tr valign="top">
<td bgcolor="#dddddd">Links &#8211; 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 &#8211; 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>
		<slash:comments>0</slash:comments>
		</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) Reading assignment: 1. Please read [...]]]></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>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>
<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><a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/php_problem_set_1.zip'>Download: PHP Problem Set 1</a><br />
1. All PHP problems within a &#8220;set&#8221; are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an <a href="http://bestfriendsforevers.com">assigned</a> classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-1-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</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 class="brush: 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 class="brush: 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>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/php_problem_set_2.zip'>Download: PHP Problem Set 2</a><br />
1. All PHP problems within a &#8220;set&#8221; are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an <a href="http://bestfriendsforevers.com">assigned</a> classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-2-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 class="brush: xml;">
&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>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/php_problem_set_3.zip'>Download: PHP Problem Set 3</a><br />
1. All PHP problems within a “set” are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an assigned classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-3-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 [...]]]></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 class="brush: 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 class="brush: 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>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2007/12/php_problem_set_4.zip'>Download: PHP Problem Set 4</a><br />
1. All PHP problems within a “set” are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an assigned classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-4-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 class="brush: 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 class="brush: 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>
		<slash:comments>0</slash:comments>
		</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 class="brush: 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 class="brush: 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 class="brush: 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>
		<slash:comments>0</slash:comments>
		</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. [...]]]></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 class="brush: 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 class="brush: 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 class="brush: 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(&#8220;connect_inc.php&#8221;);</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-7-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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 class="brush: 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;?
    /////////////////////////////////////
    // Script Name: show_headlines.php //
    /////////////////////////////////////

	include('connect_inc.php');

    $query  = &quot;SELECT *,DATE_FORMAT(create_date,'%W, %M %D, %Y') &quot;;
    $query .= &quot;AS pretty_date &quot;;
    $query .= &quot; FROM news_articles WHERE status = 'enabled' &quot;;
    $query .= &quot;ORDER BY create_date DESC &quot;;

    $results = mysql_query($query);
    while( $row = mysql_fetch_array($results) ) {
        // create alternating background colors
        ++$x;
        $bgcolor = &quot;#ffffff&quot;;
        if ( $x % 2 ) {
            $bgcolor = &quot;#cccccc&quot;;
        }
        // display the headlines in html table rows
        echo (&quot;&lt;tr bgcolor=\&quot;$bgcolor\&quot;&gt;\n&quot;);
        echo (&quot;&lt;td&gt;&lt;a href=\&quot;show_news.php?id=&quot;.$row[id].&quot;\&quot;&gt;&quot;);
        echo (&quot;$row[headline]&lt;/a&gt;&lt;/td&gt;\n&quot;);
        echo (&quot;&lt;td&gt;$row[author]&lt;/td&gt;\n&quot;);
        echo (&quot;&lt;td&gt;$row[pretty_date]&lt;/td&gt;\n&quot;);
        echo (&quot;&lt;/tr&gt;&quot;);
    }
?&gt;
&lt;/table&gt;
&lt;/html&gt;
</pre>
<p>Challenge: Try to make the column header work as links to sort by that column. Also, clicking twice makes the sort direction change from ascending (ASC) to descending (DESC). Click here for an example.</p>
<p><strong>Session 2:</strong> Now we need to write the script called &#8220;show_news.php&#8221; which will display the entire news story. The first part of the script is PHP and the latter part is mostly HTML. What&#8217;s happening is that we are selecting the information from the database and then displaying it in one step.</p>
<pre class="brush: php;">
&lt;?
  ////////////////////////////////
  // Script Name: show_news.php //
  ////////////////////////////////
  $message = &quot;News story not available&quot;;
  import_request_variables(&quot;gP&quot;);
  if ( !is_numeric($id) ) {
    header( &quot;Location: show_headlines.php?message=$message&quot; );
    exit();
  }
  include('connect_inc.php');

  $query  = &quot;SELECT * FROM jck_news &quot;;
  $query .= &quot;WHERE id = $id&quot;;
  $results = mysql_query($query);

  $row = mysql_fetch_array($results);
  if ( !$row ) {
    header( &quot;Location: show_headlines.php?message=$message&quot; );
    exit();
  }
?&gt;
&lt;html&gt;
&lt;head&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h2&gt;&lt;?= $row['headline'] ?&gt;&lt;/h2&gt;&lt;b&gt;
Author: &lt;?= $row['author'] ?&gt;&lt;br&gt;
Date: &lt;?= $row['create_date'] ?&gt;
&lt;/b&gt;
&lt;p&gt;
&lt;?= $row['body'] ?&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-8-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 9</title>
		<link>http://aim.johnkeston.com/im3420/week-9-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-9-3/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 04:06:24 +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-9-3/</guid>
		<description><![CDATA[Session 1: Now our news project is nearly fully functional, but in order to remove or archive news articles we would have to access the database and &#8220;manually&#8221; remove records or change the status of those records. A better solution would be to create a page that allows the user to delete or archive news [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Now our news project is nearly fully functional, but in order to remove or archive news articles we would have to access the database and &#8220;manually&#8221; remove records or change the status of those records. A better solution would be to create a page that allows the user to delete or archive news by pressing a button.</p>
<p>Start by &#8220;re-purposing&#8221; the code that is in place for &#8220;show_headlines.php&#8221; creating a new script in the admin directory called &#8220;modify_news.php&#8221;. Include the code which checks the cookie so that the page is secure and add in forms with hidden variables and buttons to archive and delete the records.</p>
<pre class="brush: php;">
&lt;?
  // modify_news.php
  // Make sure that the user has authenticated
  $user_id = $_COOKIE[&quot;user_id&quot;];
  if ( !$user_id ) {
    header( &quot;Location: login.php?message=Please login before modifying news&quot; );
    exit();
  }
?&gt;
&lt;html&gt;
&lt;title&gt;Modify News&lt;/title&gt;
&lt;head&gt;&lt;/head&gt;
&lt;font color=&quot;red&quot;&gt;&lt;? echo $_GET[message] ?&gt;&lt;/font&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;Headline&lt;/th&gt;&lt;th&gt;Author&lt;/th&gt;&lt;th&gt;Create Date&lt;/th&gt;&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;?
  include(&quot;connect_inc.php&quot;);
  $query  = &quot;SELECT * FROM jck_news &quot;;
  $query .= &quot;ORDER BY status, create_date DESC&quot;;

  $results = mysql_query($query);
  while( $row = mysql_fetch_array($results) ) {
    echo ( &quot;&lt;tr&gt;&lt;td&gt;&lt;a href=\&quot;update_form.php?id=$row[id].\&quot;&gt;&quot; .
           &quot;$row[headline]&lt;/a&gt;&lt;/td&gt;&quot; .
           &quot;&lt;td&gt;$row[author]&lt;/td&gt;&lt;td&gt;$row[create_date]&lt;/td&gt;\n&quot; .
           &quot;&lt;form method=\&quot;post\&quot; action=\&quot;change_status.php\&quot;&gt;&quot; );
    $selected[$row[status]] = ' selected=&quot;selected&quot;';
    echo ( &quot;&lt;td&gt;&lt;select name=\&quot;status\&quot;&gt;&quot; );
    echo ( &quot;&lt;option value=\&quot;enabled\&quot; $selected[enabled]&gt;Enabled&lt;/option&gt;\n&quot; );
    echo ( &quot;&lt;option value=\&quot;disabled\&quot; $selected[disabled]&gt;Disabled&lt;/option&gt;\n&quot; );
    echo ( &quot;&lt;option value=\&quot;archived\&quot; $selected[archived]&gt;Archived&lt;/option&gt;\n&quot; );
    echo ( &quot;&lt;/select&gt;&lt;/td&gt;\n&quot; );
    echo ( &quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;id\&quot; value=\&quot;$row[id]\&quot;&gt;&quot; );
    echo ( &quot;&lt;td&gt;&lt;input type=\&quot;submit\&quot; value=\&quot;Change Status\&quot;&gt;&quot; );
    echo ( &quot;&lt;/td&gt;\n&lt;/form&gt;\n&lt;/tr&gt;\n&quot; );

    // clear the $selected hash
    unset( $selected );
  }
?&gt;
</pre>
<p><strong>Session 2:</strong> Here&#8217;s a good way to build the change_status.php script. Make sure that you remember to replace all the location paths and table names with the appropriate values. This script also uses a function. Functions are way to write code that you can reuse by calling the function.</p>
<pre class="brush: php;">
&lt;?
  // change_status.php
  // Make sure that the user has authenticated
  $user_id = $_COOKIE[&quot;user_id&quot;];
  if ( !$user_id ) {
    header( &quot;Location: login.php?&quot; .
            &quot;message=Please login before modifying news&quot; );
    exit();
  }
  function update_status ($id, $status) {
    include (&quot;connect.php&quot;);
    $query  = &quot;UPDATE jck_news SET status='$status' &quot;;
    $query .= &quot;WHERE id = $id&quot;;
    return mysql_query($query);
  }
  if ( update_status($_POST[id], $_POST[status]) ) {
    $message = &quot;Set news article $_POST[id] status to $_POST[status]&quot;;
    header (&quot;Location: modify_news.php?message=$message&quot; );
    exit();
  }
  else {
    $message = &quot;Update Failed&quot;;
    header (&quot;Location: modify_news.php?message=$message&quot; );
    exit();
  }
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-9-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 10</title>
		<link>http://aim.johnkeston.com/im3420/week-10-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-10-3/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 04:39:19 +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-10-3/</guid>
		<description><![CDATA[Session 1: The last step that we&#8217;ll take in the administrative area is building the functionality necessary to allow administrators to completely update a news article in the database via a web form. This will require two scripts the first script will be the form, prefilled, so that the administrator can edit the data, and [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> The last step that we&#8217;ll take in the administrative area is building the functionality necessary to allow administrators to completely update a news article in the database via a web form. This will require two scripts the first script will be the form, prefilled, so that the administrator can edit the data, and the second (standalone) script will include the UPDATE query. Here&#8217;s the source for the first script:</p>
<pre class="brush: php;">
&lt;?
  // update_form.php
  // Make sure that the user has authenticated
  $user_id = $_COOKIE[&quot;user_id&quot;];
  if ( !$user_id ) {
    header( &quot;Location: login.php?message=Please login before updating news&quot; );
    exit();
  }
  if (!$_GET[id]) {
    header( &quot;Location: modify_news.php?message=No such news article&quot; );
    exit();
  }
  // Connect to database
  include (&quot;connect.php&quot;);
  // Build query
  $query = &quot;SELECT * FROM jck_news WHERE id = $_GET[id]&quot;;
  $result = mysql_query( $query );
  if (!$result) {
    header( &quot;Location: modify_news.php?message=Query failed: $query&quot; );
    exit();
  }
  $row = mysql_fetch_array( $result );
  $selected[$row[status]] = &quot;SELECTED&quot;;
?&gt;
&lt;html&gt;
&lt;title&gt;Update News Article&lt;/title&gt;
&lt;head&gt;&lt;/head&gt;
&lt;body&gt;
&lt;form action=&quot;update_news.php&quot; method=&quot;post&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&lt;? echo $row[id] ?&gt;&quot;&gt;
Headline:
&lt;input type=&quot;text&quot; name=&quot;headline&quot; value=&quot;&lt;? echo $row[headline] ?&gt;&quot;&gt;&lt;br /&gt;
Author:
&lt;input type=&quot;text&quot; name=&quot;author&quot; value=&quot;&lt;? echo $row[author] ?&gt;&quot;&gt;&lt;br /&gt;
Create Date:
&lt;input type=&quot;text&quot; name=&quot;headline&quot; value=&quot;&lt;? echo $row[create_date] ?&gt;&quot;&gt;&lt;br /&gt;
Status:&lt;br /&gt;
&lt;select name=&quot;status&quot;&gt;
&lt;option value=&quot;enabled&quot;&lt;?= $selected[enabled] ?&gt;&gt;Enabled&lt;/option&gt;
&lt;option value=&quot;enabled&quot;&lt;?= $selected[disabled] ?&gt;&gt;Disabled&lt;/option&gt;
&lt;option value=&quot;enabled&quot;&lt;?= $selected[archived] ?&gt;&gt;Archived&lt;/option&gt;
&lt;br /&gt;
&lt;textarea name=&quot;body&quot;&gt;&lt;? echo $row[body] ?&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Update&quot;&gt;&lt;input type=&quot;reset&quot; value=&quot;Reset&quot;&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>Session 2:</strong> Finally we need the script which actually updates the record in the database. We will call this standalone PHP script update_news.php as it is called in the form action in update_form.php. Here&#8217;s the source for update_news.php:</p>
<pre class="brush: php;">
&lt;?
  // update_news.php
  // Make sure that the user has authenticated
  $user_id = $_COOKIE[&quot;user_id&quot;];
  if ( !$user_id ) {
    header( &quot;Location: login.php?message=Please login before updating news&quot; );
    exit();
  }
  // Connect to database
  include (&quot;connect.php&quot;);
  import_request_variables(&quot;gP&quot;);
  // Build query
  $query  = &quot;UPDATE jck_news SET headline='$headline', &quot;;
  $query .= &quot;author='$author', create_date='$create_date', &quot;;
  $query .= &quot;modify_date=NOW(), body='$body', status='$status', &quot;;
  $query .= &quot;user_id=$user_id WHERE id=$id&quot;;

  if ( mysql_query($query) ) {
    header( &quot;Location: modify_news.php?message=News article id: $id updated.&quot; );
    exit();
  }
  header( &quot;Location: modify_news.php?message=Update failed: $query&quot; );
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-10-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 11</title>
		<link>http://aim.johnkeston.com/im3420/week-11-3/</link>
		<comments>http://aim.johnkeston.com/im3420/week-11-3/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 04:48:23 +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-11-3/</guid>
		<description><![CDATA[Session 1: Today we will be reviewing for the final quiz. Afterwards in the studio, let&#8217;s add some final touches to the news project. Early presentations of the news project are acceptable as well. Session 2: The final quiz is today. Afterwards we will discuss the questions and then present the news projects.]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we will be reviewing for the final quiz. Afterwards in the studio, let&#8217;s add some final touches to the news project. Early presentations of the news project are acceptable as well.</p>
<p><strong>Session 2:</strong> The final quiz is today. Afterwards we will discuss the questions and then present the news projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im3420/week-11-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software ≠ Interactive Design</title>
		<link>http://aim.johnkeston.com/abstracts/software-%e2%89%a0-interactive-design/</link>
		<comments>http://aim.johnkeston.com/abstracts/software-%e2%89%a0-interactive-design/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 00:24:08 +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/software-%e2%89%a0-interactive-design/</guid>
		<description><![CDATA[Author: Jason Aristofanis Tselentis Title: Software ≠ Interactive Design Source: AIGA Journal of Interactive Design Education Date: March 7, 2006 Abstract of Major Ideas In Mr. Tselentis&#8217; paper Software ≠ Interactive Design, he proposes that when learning how to use software students fall into one of two different categories &#8211; either self-reliant or instructor-reliant. The [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Author:</strong> Jason Aristofanis Tselentis<br />
<strong>Title: </strong><a href="http://www.aiga.org/content.cfm/software---interactive-design" title="Link to the article" target="_blank">Software ≠ Interactive Design</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> March 7, 2006</p>
<p><strong>Abstract of Major Ideas<br />
</strong>In Mr. Tselentis&#8217; paper Software ≠ Interactive Design, he proposes that when learning how to use software students fall into one of two different categories &#8211; either self-reliant or instructor-reliant. The instructor-reliant students need to become self-reliant; otherwise the class content is likely to revolve around learning the menus and toolbars of specific software.</p>
<p>This outcome is futile because the software is likely to either change significantly in the future or be replaced by another tool. Instilling self-confidence in the students helps them become more comfortable experimenting and playing with the applications. This in turn allows the curriculum to focus on the history, trends and theories relevant to the course.</p>
<p><strong>Critical Evaluation of Major Ideas</strong><br />
In the graphic design and interactive media design fields, many institution&#8217;s courses focus heavily on teaching the ins and outs of computer applications such Photoshop, Illustrator, Flash, and Dreamweaver. To a degree the industry demands that graduates are proficient in these and other related platforms. However, the software tools are rapidly being changed or replaced to keep up with competitors and the demands of professionals in the industry. It follows then that students need to develop the skills required to adapt to the technology as it advances as quickly and efficiently as possible. It is not practical for an employer to send their employees out for re-training every time a new version of specific software is released. More often than not, employees are expected to learn how to use new and updated tools on their own in a self-reliant manner.</p>
<p><strong>Implications for Design Education<br />
</strong>Mr. Tselentis&#8217; ideas on this matter have been in use by educators for many years. At the Art Institutes International Minnesota, course titles and descriptions do not contain any mention of specific software applications even though it is understood that they will be covered in the classroom. I have been teaching in the Interactive Media Design program at the Art Institutes for five years and have encountered the dichotomy of self and instructor reliant students that Mr. Tselentis describes. The structure of the class and lab/studio time, and the design of projects and assignments are meant to accommodate both types of software learners. Classes meet for a total of six hours a week. A minimum of two hours are set aside for lectures, discussions and demonstrations. The remaining three to four hours per weeks are dedicated to lab/studio time with the instructor and teaching assistant aiding students in groups or individually. Peer learning is encouraged and consistently helps motivate students toward becoming self-reliant software learners.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/abstracts/software-%e2%89%a0-interactive-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hearing Type</title>
		<link>http://aim.johnkeston.com/abstracts/hearing-type/</link>
		<comments>http://aim.johnkeston.com/abstracts/hearing-type/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 01:23:43 +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/hearing-type/</guid>
		<description><![CDATA[Author: Frank Armstrong Title: Hearing Type Source: AIGA Journal of Interactive Design Education Date: June 27, 2005 Abstract of Major Ideas In his paper Hearing Type, Frank Armstrong describes an interesting analogy between music and both static and kinetic typography. He compares specific properties of music to typography including rhythm, melody, and harmony. Rhythm can [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Author:</strong> Frank Armstrong<br />
<strong>Title:</strong> Hearing Type<br />
<strong>Source: </strong>AIGA Journal of Interactive Design Education<br />
<strong>Date:</strong> June 27, 2005</p>
<p><strong>Abstract of Major Ideas</strong><br />
In his paper Hearing Type, Frank Armstrong describes an interesting analogy between music and both static and kinetic typography. He compares specific properties of music to typography including rhythm, melody, and harmony. Rhythm can be used to describe type in many ways, such as shape, strokes, and punctuation for both moving and static examples. Melody is the message or meaning of the type, while harmony describes the interaction of columns or lines of type to each other.</p>
<p>He also compares an individual glyph to a sound or tone, using the amplitude to describe the weight of a character, duration to the width of a series of glyphs, pitch to the vertical positioning of the type, and timbre to the color, texture and style of the type. Armstrong suggests that using such analogies can help students better understand both static and kinetic typography by providing a different perspective or frame of reference.</p>
<p><strong>Critical Evaluation of Major Ideas<br />
</strong>It isn&#8217;t difficult for one to visualize comparisons between audible tones in music and glyphs or phrases of type. Armstrong also brings up the example of sheet music to strengthen his point. Certainly sheet music is another form of typography and is used to produce music output as sound, just as type, when read, produces audible speech. Armstrong quotes musicians, typographers, graphic designers, and physicists who have made similar comparisons.</p>
<p>These analogies might be useful in the ways that Armstrong suggests. I know from teaching audio production that I frequently use visual analogues to describe sound, such as comparing bitmap imagery to digital audio. There seems to be a shortage of adjectives in the English language that are used exclusively to describe sound. When we describe the timbre of a sound we use words like warm, cool, crisp, bright, or dark. All these words are usually used to describe other things like temperature, color or texture.</p>
<p>I agree with Armstrong&#8217;s position. It&#8217;s often very useful to compare and contrast different art forms. I think it is also important to look carefully at what the differences are between these art forms as well as the likenesses, so that students are getting the whole story.</p>
<p><strong>Implications for Design Education<br />
</strong>Armstrong&#8217;s paper raises an interesting perspective within the field of typography. The essence is that music and type are both forms of language; therefore they have parallels that can be illustrated to give students and designers a new frame of reference that might provide inspiration. I would not discourage instructors from using similar analogies, but I would suggest that they also make it clear that typography is not literally sheet music (although it could be interpreted as such through the use of visual scores), just as spoken text is not necessarily musical.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/abstracts/hearing-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Games with a Purpose</title>
		<link>http://aim.johnkeston.com/abstracts/games-with-a-purpose/</link>
		<comments>http://aim.johnkeston.com/abstracts/games-with-a-purpose/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 01:50:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Abstracts]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[Interactive Media Design]]></category>
		<category><![CDATA[Journal Article]]></category>
		<category><![CDATA[Luis von Ahn]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/2007/11/25/games-with-a-purpose/</guid>
		<description><![CDATA[Author: Luis von Ahn Title: Games with a Purpose Source: IEEE Computer Magazine Date: June, 2006 Abstract of Major Ideas Luis von Ahn&#8217;s internationally recognized postdoctoral work at Carnegie Mellon University&#8217;s Center for Algorithm Adaptation, Dissemination and Integration (ALADDIN) involves developing techniques to harness human computational power to solve problems that computers are currently not [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Author:</strong> <a href="http://www.cs.cmu.edu/~biglou/" title="Luis von Ahns site" target="_blank">Luis von Ahn</a><br />
<strong>Title:</strong> <a href="http://www.cs.cmu.edu/~biglou/ieee-gwap.pdf" title="Link to the article (pdf)" target="_blank">Games with a Purpose</a><br />
<strong>Source:</strong> <a href="http://www.computer.org/" title="IEEE Computer Magazine" target="_blank">IEEE Computer Magazine</a><br />
<strong>Date: </strong>June, 2006</p>
<p><strong>Abstract of Major Ideas</strong><br />
Luis von Ahn&#8217;s internationally recognized postdoctoral work at Carnegie Mellon University&#8217;s Center for Algorithm Adaptation, Dissemination and Integration (ALADDIN) involves developing techniques to harness human computational power to solve problems that computers are currently not very good at solving. In his paper, Games with a Purpose, he describes how he has developed a few very simple online games that are fun and addicting for humans, but also provide valuable information for image search databases that would otherwise be extremely expensive to collect.</p>
<p>Dr. von Ahn describes how computers are very bad at recognizing the content within photographs and images. Image search databases do not return very accurate results because the text that is indexed to describe the images is simply gleaned from image captions or adjacent verbiage. Using his ESP game von Ahn has been able to collect massive amounts of data to help improve image search functionality. The game works by displaying an image to two anonymous players on the Internet. Each player enters words that they feel describe the image. When both players hit on an identical word, a match is made that is then collected and used as a search term for the image displayed. The ESP Game has collected over 10 million player generated labels since it was introduced on October 5, 2003.</p>
<p><strong>Critical Evaluation of Major Ideas<br />
</strong>With the power of computers advancing as rapidly as it has since the &#8217;60s, we tend to take for granted tasks that are simple for us to do, but technically monumental for computers to handle. Dr. von Ahn has had the insight to look beyond the complex and obvious solutions to find simple and elegant ways to use human brainpower for a positive outcome. The game industry is one of the largest areas within interactive media. In his paper, Dr. von Ahn outlines several other ways simple games could be used to solve difficult problems utilizing the cognitive abilities of the online community. These include language translation, monitoring security cameras, improving web searches with human aids, and summarizing important documents.</p>
<p>I regularly use Luis von Ahn&#8217;s examples as teaching tools in my interactive media design classes. In Advanced Scripting Languages I use Dr. von Ahn&#8217;s reCAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) project as an example of how a web application can detect whether the input received in online forms is coming from a human being or a spambot (a spambot is software designed to collect e-mail addresses from the Internet in order to build mailing lists for sending unsolicited e-mail, also known as spam – en.wikipedia.org). Dr. von Ahn created the CAPTCHA technique and then redeveloped it under the new name reCAPTCHA. reCAPTCHA forces people to type in words that appear semi-scrambled when entering data into an online form. Computer based optical character recognition (OCR) is incapable of deciphering these words. One of the words is the security key, while the other was scanned from a book, but not recognized by OCR. By having a person enter both words they proving they are human and aiding the digitization of books for the Internet Archive (archive.org) at the same time.</p>
<p><strong>Implications for Design Education<br />
</strong>We can all learn from Luis von Ahn&#8217;s research. His CAPTCHA technique is commonly used and imitated on major sites like Yahoo, Myspace, and Google as well as millions of simple news blogs and personal sites. His ideas are simple, elegant and inspirational. Students in interactive media design are frequently bogged down by the complexity and difficulty of the technology involved in web applications. Examining Dr. von Ahn&#8217;s projects helps my students understand that the best answers are not always the most difficult ones.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/abstracts/games-with-a-purpose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Capital within the Open Source Community</title>
		<link>http://aim.johnkeston.com/writings/social-capital-within-the-open-source-community/</link>
		<comments>http://aim.johnkeston.com/writings/social-capital-within-the-open-source-community/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 18:23:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writings]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/writings/social-capital-within-the-open-source-community/</guid>
		<description><![CDATA[April 29th, 2004 The Free Software Foundation Organizational Profile The Free Software Foundation’s website, [http://www.gnu.org/] uses the acronym GNU for its domain, which is a recursive acronym. It stands for “GNU’s not Unix.” The Free Software Foundation (FSF) is a nonprofit foundation that receives the majority of its funding from individual donors. The FSF represents [...]]]></description>
			<content:encoded><![CDATA[<p>April 29th, 2004</p>
<p><strong>The Free Software Foundation Organizational Profile</strong><br />
The Free Software Foundation’s website, [<a href="http://www.gnu.org/" target="_blank">http://www.gnu.org/</a>] uses the acronym GNU for its domain, which is a recursive acronym. It stands for “GNU’s not Unix.” The Free Software Foundation (FSF) is a nonprofit foundation that receives the majority of its funding from individual donors. The FSF represents the Free Software movement on a global scale which is made evident by the thirty languages available for browsing their website, each just one click away. </p>
<p>The FSF is made up of a board of directors and has members from around the world within the global free software community. Among the board of directors is the founder of the GNU project, Richard Stallman, a leading figure of the Free Software movement who also founded the FSF. Stallman is a talented programmer whose projects include Emacs (a powerful and popular computer code editing tool) and GCC (a flexible compiler – a tool which converts computer code into an executable program). Both of these projects are part of GNU, which, along with many other components, are part of what is known as the GNU/Linux operating system, or more commonly, Linux. Stallman founded the FSF in 1985 to support the GNU project and promote the Free Software movement. Stallman is currently more involved in promoting the movement than he is writing software. He regularly gives speeches around the world and has published a book of essays called, Free Software, Free Society: Selected Essays of Richard M. Stallman.</p>
<p>One of the key concepts of the Free Software movement is how the term “free” is used. The FSF suggests that we think of “Free as in Freedom”. This does not mean free as in “free beer”, which although a disappointment to some, gives free software some major advantages over proprietary software (software that has closed source, and is marketed and sold, like Microsoft Office). The FSF’s website provides a few points to help us understand what they mean by “free as in freedom”, in relation to computer software.</p>
<p>• The freedom to run the program, for any purpose (freedom 0).<br />
• The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.<br />
• The freedom to redistribute copies so you can help your neighbor (freedom 2).<br />
• The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.<br />
[<a href="http://www.gnu.org" target="_blank">http://www.gnu.org</a>]</p>
<p>Notice that the phrase, “access to the source code is a precondition for this” is appended to both freedom one and freedom three. Open Source (a related software movement) also has this requirement, but it is a term rejected by Stallman and the FSF. Stallman argues that the Open Source movement makes concessions which undermine the goals of the Free Software movement. However, the two movements coexist peacefully and actually work together productively.</p>
<p>So, why are there two camps? Stallman believes that it has to do with a “fear of freedom.” The term “free” when looked at with all the ethical issues attached to it can make people become uneasy. Perhaps this is why the Open Source movement (founded in 1998 by John “maddog” Hall, Larry Augustin, Eric S. Raymond, Bruce Perens, and others) has become so popular. </p>
<p>Raymond is probably the single person most identified with the Open Source movement; he was and remains its self-described principal &#8220;theorist&#8221;, but does not claim to lead it in any exclusive sense. In contrast with the Free Software movement, which has always been essentially directed by Stallman, the Open Source movement is &#8220;steered&#8221; by a loose collegiums of elders that includes Raymond its other cofounders, and such notables as Linus Torvalds (the original developer of the Linux kernel), Larry Wall, and Guido Van Rossum.</p>
<p>The mission of the FSF is to educate people about, promote, protect, and encourage the development of Free Software. The FSF’s extensive website, [<a href="http://www.gnu.org/" target="_blank">http://www.gnu.org/</a>] is the primary tool used for these tasks. Hundreds, or perhaps thousands, of links are found on the site including a detailed history of the FSF, an endless collection of articles regarding their philosophy, well-organized resources for software developers, information on licenses like the GPL, complete GNU documentation, membership programs, and much more. </p>
<p>The FSF has programs not only to educate the general public about the Free Software movement, but for educators to get free software into schools and educate students on its use. There is even a link to an article on how to convince your school administrator to utilize free software. Many schools around the world are starting to get involved in using GNU/Linux and other free software in their programs. This is especially true in Europe and Canada where the anti-trust practices of Microsoft aren’t tolerated as readily as they are in the United States. </p>
<p>The leftist political views of the FSF are apparent. Stallman openly endorsed the DFL presidential candidate Dennis Kucinich. The promotional efforts of the FSF reflect their political persuasions and are largely a grassroots effort. It is unlikely that we will be seeing advertisements for GNU projects on television anytime soon. However, as large companies like IBM, Hewlett Packard, and Novell start to embrace Linux and Open Source, public awareness will increase. Recently IBM ran a television campaign that directly addressed their endorsement of Open Source software. The FSF has European and Indian branches to address the needs of software users and developers around the world and uses each branch to collect donations. Donations are rewarded with a membership benefits including an invitation to the annual meeting, email forwarding, and a CD-ROM membership card that contains a bootable version of GNU/Linux.</p>
<p>Tirelessly protecting and defending the rights of free software users and developers is a constant task for the FSF. A staggering array of legal issues face the software industry. Many of them effect the Free Software movement directly. The European Commission and European Parliament have mobilized to introduce software patents in Europe similar to debilitating patent laws in the United States. This legislation could lead to arbitrary patents on mathematical equations that could threaten the diversity of the software industry worldwide. Widespread opposition from both commercial and free software developers has done little to stop the Commission from moving forward with its plan. Many other legal issues are poised to redefine the software industry, including a variety of litigation involving Microsoft, SCO, and IBM. </p>
<p><strong>Developing Free and Open Source Software</strong><br />
The FSF also plays a pivotal role in encouraging the widespread development of free software. One way that this is done is through the use of the GNU General Public License or GPL. According to the FSF the GPL is how more than half of all Free Software is licensed. This includes a wide variety of Open Source software. Although the FSF only approves of a short list of licenses including the GPL, Open Source software can be licensed under a wide array of licenses. Some of these are similar to the GPL, while others may have some restrictions. </p>
<p>The GPL is quite long and detailed, but one of the central themes is that any software improvements made to software released under it must also be released as free software. This means that if you release software under the GPL, you will not have to compete with developers who repackage your original work for profit, because this is illegal. Stallman calls this idea “Copyleft.” While patent-laws and copyrights are used to protect the profits of publishers and software corporations, the “Copyleft” principal within the GPL uses the legal system to protect the freedom of the software under it. Thus the GPL keeps free software free, preventing it from becoming proprietary software.</p>
<p>The Open Source Definition (OSD) is maintained by another nonprofit called the Open Source Initiative (OSI). Their website can be found at [<a href="http://www.opensource.org/" target="_blank">http://www.opensource.org/</a>]. The OSD is a set of guidelines that explain what it means for software to be Open Source. The first statement made in the OSD is that providing access to the source code is not enough for the software to qualify. Ten detailed requirements must be met. These requirements include free redistribution, antidiscrimination conditions, and license prerequisites.</p>
<p><strong>Free and Open Source Software as an Approach to Global Action</strong><br />
Free and Open Source software represents an attractive alternative to the expensive, proprietary, and closed software we find ourselves using day to day. The commercial software industry profits from charging frequent upgrade fees and leading their customers to believe that there is no alternative to the software that they are using. Often critical security exploits in commercial software leave users struggling with spyware (annoying software that installs itself without the users consent and creates popup ads or collects personal data about the user), harmful viruses, or lost data. The Washington Times reported that worldwide virus and worm attacks cost business an estimated $83 billion in the month of February, 2004 alone. More serious attention paid to computer security exploits by commercial software manufacturers would significantly reduce these losses. In the Free and Open Source software development model, often hundreds of programmers worldwide are working on an individual project simultaneously. Usually security exploits are spotted and repaired before any significant amount of damage is done. The Free and Open Source community is concerned about its users because they are users themselves and are less motivated by profit. </p>
<p>Profit motivation in the software business has created billionaires, but has it created the best software? Those involved in the Free and Open Source community would argue that it has not and that their software has unique advantages over the commercial variety. First of all if users would like to add new features or change the software to suit their purposes, they are welcomed and encouraged to do so. The best that proprietary software offers is an online suggestion box. Second, improvements to the software are made rapidly and efficiently due to the sheer volume of developers involved in some projects. New versions of many Free and Open Source projects are released on a daily basis. The web browser Mozilla is an example of this; users can download a daily build which has all the upgrades and bug fixed from the previous day. Proprietary software releases happen much more infrequently. Sometimes users must wait a year or more for a new version, only to find that it costs up to hundreds of dollars to buy and still doesn’t include that one feature they were hoping for.</p>
<p>Another aspect of Free and Open Source software is the incredible number of projects freely available for users to install or demonstrate. Virtually any viable software concept one can imagine has already been developed and submitted to the GPL or some other public license and new projects get submitted on the hour. Vast databases that track these projects are available at [<a href="http://www.sourceforge.net" target="_blank">http://www.sourceforge.net</a>] and [<a href="http://www.freshmeat.net" target="_blank">http://www.freshmeat.net</a>]. SourceForge.net for example hosts a whopping 80,230 projects (166,397 as of January 8, 2008), most of them under one form of free software license or another. This number increases daily. Freshmeat.net hosts 32,773 projects (46,991 as of January 8, 2008). Sixty-four percent of these are under the GNU General Public License. Some of these projects are huge operations with hundreds of developers involved, all donating their time to enhance and improve the software they are dedicated to as contributors and users. Many more are one-person-projects that provide a very specific need to a niche of users. Whatever the case, the participation in the Free and Open Source software community is vast and enthusiastic. </p>
<p><strong>Social Capital in the Free and Open Source Software Community</strong><br />
What motivates thousands of talented developers, whose time would fetch top dollar on commercial projects, to work for no pay on software that anyone can use, free of charge? Most often there is no monetary reward, but there is merit and recognition within the community and the satisfaction that the contributor has helped develop software that not only benefits them, but a global community of other computer users and developers. </p>
<p>While working for profit-motivated corporations, programmers are often required to sign noncompete and nondisclosure agreements. Nondisclosures ensure that all the creative concepts and code written to realize them is the property of the corporation. A noncompete may require that the employee not work in a similar field for a year or more after leaving the company. These policies may leave programmers, without a vested interest in the corporation, feeling used and under appreciated. Programming is about creative problem solving, and when programmers come up with particularly ingenious solutions the first thing many of them want to do is share it with people who will understand and appreciate what they have accomplished. The secrecy of closed source proprietary software does not give developers that satisfaction. </p>
<p>What the developers of Free and Open Source software are providing is social capital that is enriching a vibrant global community. This example of social capital is quite different from the examples that Carmen Sirianni and Lewis Friedland present in their piece Social Capital. The social capital examples they discuss are generally localized community associations such as churches or veterans groups where people meet face-to-face. These face-to-face meetings allow people to get to know each other and develop friendships and a desire to help each other voluntarily. </p>
<p>Most of the communication that happens within the Free and Open Source software community is not face-to-face. It is not even on traditional communications devices like the telephone. A majority of the communication within this community is via the Internet. Email, instant messaging, forums, and the like are the most typical way that Free and Open Source software users and developers interact. In-person communication is often an ideal situation, but not as always practical. The impracticality of face-to-face interaction is compounded when developers from many different countries are working on the same project. However, incredibly concise and efficient communication goes on within the community. One of the benefits to communication via the Internet is that in the case of email, forums, and even some chat software, archives of the messages are stored that can be referred back to at any time. Often when questions are answered in online forums, those answers can apply to hundreds or thousands of other users. Simple Internet searching can provide these answers to those who need them.</p>
<p><strong>About the Author</strong><br />
John Keston has been working in the technology industry since 1987. He has been involved in the web development field as a programmer since 1995 and as an instructor since 2002. During his time in the field he has made use of a wide variety of Open Source software including GNU/Linux, MySQL, Perl, PHP, WordPress, Firefox, Audacity, and many others. John not only uses Open Source software for development, but as a teaching tool in the Interactive Media Design program at the Art Institutes International. A recent class project involved selecting an Open Source application, implementing it, and then modifying it to include a complete new set of features. The project is now used by the school’s registrar, administrators, and faculty to schedule classes and meetings within the facilities. After some more finishing touches, the project will be resubmitted to the GPL as a new branch for other schools to use freely.</p>
<p><strong>Microsoft-California Class Action Settlement:</strong><br />
[<a href="http://www.microsoftcalsettlement.com/" target="_blank">http://www.microsoftcalsettlement.com/</a>]</p>
<p><strong>Sources:</strong><br />
[<a href="http://www.fsf.org/" target="_blank">http://www.fsf.org/</a>]<br />
[<a href="http://www.gnu.org/" target="_blank">http://www.gnu.org/</a>]<br />
[<a href="http://www.slashdot.org/" target="_blank">http://www.slashdot.org/</a>]<br />
[<a href="http://www.wikipedia.org/" target="_blank">http://www.wikipedia.org/</a>]<br />
[<a href="http://www.washtimes.com/business/20040229-105349-9778r.htm" target="_blank">http://www.washtimes.com/business/20040229-105349-9778r.htm</a>]<br />
Siriani, Carmen and Friedland, Lewis 1995. “Social Capital”, presented at the Social Capital session of the American Sociological Association, August.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/writings/social-capital-within-the-open-source-community/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recording Studio Notes</title>
		<link>http://aim.johnkeston.com/ca2431/recording-studio-notes/</link>
		<comments>http://aim.johnkeston.com/ca2431/recording-studio-notes/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 21:10:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/ca2431/recording-studio-notes/</guid>
		<description><![CDATA[The recording studio (Room 009) at Ai was recently upgraded to Pro Tools HD version 7.4.2 with a Control 24 control surface and a Digidesign 192 I/O interface. A software upgrade to version 8 is planned for the system, at which time I&#8217;ll update this post to reflect new steps for using the studio. If [...]]]></description>
			<content:encoded><![CDATA[<p>The recording studio (Room 009) at Ai was recently upgraded to Pro Tools HD version 7.4.2 with a Control 24 control surface and a Digidesign 192 I/O interface. A software upgrade to version 8 is planned for the system, at which time I&#8217;ll update this post to reflect new steps for using the studio. If you&#8217;re using the headphone amplifier in the recording room, make sure that &#8220;monitor to aux&#8221; is pressed on the Control 24.</p>
<p>Getting Started:</p>
<ol>
<li>After getting a pass card from the Cage, login to the Mac with username: studio and password: studio.</li>
<ol type="a">
<li>You may need to turn on the projector to see the menus.</li>
<li>To change this under System Prefs > Display > Arrangment drag the menu bar icon to the preferred monitor.</li>
</ol>
<li>Turn on the Digidesign 192 I/O and <strong>wait for it to completely finish its boot process</strong>.</li>
<li>Start Pro Tools once all the lights have stopped blinking on the 192 I/O.</li>
<li>Turn on the Mackie monitors with the button on the front of each speaker.</li>
<li>Start a new session in Pro Tools and save it on the Student Drive</li>
<li>Start a new track</li>
<ol type="a">
<li>Use tracks 1-8 for microphones in sequence</li>
<li>Plug the mics into corresponding inputs on the snake (i.e. 1 -> A1, etc.).</li>
<li>Set the &#8220;source&#8221; on the Control 24 to &#8220;mic&#8221; for tracks to record from mics.</li>
<li>Use the &#8220;gain&#8221; to adjust the input levels before recording</li>
</ol>
<li>Important: when you are finished turn off the monitors before exiting Protools or shutting down the system.</li>
<li>Set the I/O on your tracks based on the following:</li>
<ol type="a">
<li>A1, A2, A3, A4, A5, A6, A7, A8 for mono mic input tracks (set source to &#8220;mic&#8221;)</li>
<li>A1-2 for analog input from the CD player (set source to &#8220;line&#8221;)</li>
<li>A3-4 for analog input from the DAT deck (set source to &#8220;line&#8221;)</li>
<li>A5-6 for analog input from the Yamaha keyboard (set source to &#8220;line&#8221;)</li>
<li>A7-8 for analog input from the internal Mac sound card (set source to &#8220;line&#8221;)</li>
</ol>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/recording-studio-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syllabus and Meeting Times</title>
		<link>http://aim.johnkeston.com/im1480/syllabus-and-meeting-times-4/</link>
		<comments>http://aim.johnkeston.com/im1480/syllabus-and-meeting-times-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 04:12:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/syllabus-and-meeting-times-4/</guid>
		<description><![CDATA[The course introduces students to the history, trends, terminology, and concepts in the field of interactive design. Through materials presented in the course, students become familiar with the roles and responsibilities of people working in the field, professional organizations, and significant organizations. Students are also introduced to the basic concepts and tools for developing interactive [...]]]></description>
			<content:encoded><![CDATA[<p>The course introduces students to the history, trends, terminology, and concepts in the field of interactive design.  Through materials presented in the course, students become familiar with the roles and responsibilities of people working in the field, professional organizations, and significant organizations.  Students are also introduced to the basic concepts and tools for developing interactive media applications. (Course Prerequisite: GD1400 Computer Applications)</p>
<p><strong>Instructor: John Keston</p>
<p>Meeting Times and Location:</strong><br />
Room P112 (The Pence Building on 8th and Hennepin) 2:00pm &#8211; 4:50pm</p>
<p>Syllabus: <a href="/im1480/im1480syllabus.doc">im1480syllabus.doc</a></p>
<p><a href="../week-1-4">Week 1</a> | <a href="../week-2-4">Week 2</a> | <a href="../week-3-4">Week 3</a> | <a href="../week-4-4">Week 4</a> | <a href="../week-5-4">Week 5</a> | <a href="../week-6-4">Week 6</a><br />
<a href="../week-7-4">Week 7</a> | <a href="../week-8-4">Week 8</a> | <a href="../week-9-4">Week 9</a> | <a href="../week-10-4">Week 10</a> | <a href="../week-11-4">Week 11</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/syllabus-and-meeting-times-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 1</title>
		<link>http://aim.johnkeston.com/im1480/week-1-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-1-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 04:28:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-1-4/</guid>
		<description><![CDATA[Session 1: In this class we&#8217;ll be exploring interactive design through the use of several excellent software tools. The tools include Dreamweaver and Flash. We&#8217;ll also be making use of FTP client software, creating and publishing a website and manipulating digital imagery with programs like Photoshop and Fireworks. For the final project we will be [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>In this class we&#8217;ll be exploring interactive design through the use of several excellent software tools. The tools include Dreamweaver and Flash. We&#8217;ll also be making use of FTP client software, creating and publishing a website and manipulating digital imagery with programs like Photoshop and Fireworks. For the final project we will be authoring a full website. </p>
<p>  We will start the class by using Dreamweaver to create a basic five page website. Dreamweaver is an HTML editor. It <strong>does not</strong> create Dreamweaver documents, it is used to help you build and edit HTML documents, allowing you to publish content on the World Wide Web.</p>
<p>Before getting started in Dreamweaver it&#8217;s important to understand a little about HTML and how websites operate. In this class you&#8217;re not expected to become HTML experts, but it&#8217;s important to have a good understanding of it when involved in virtually any technology field. Thursday I&#8217;ll demonstrate some of the basic functionality within Dreamweaver, and talk more about our first project, which is a five page website using links, images and tables.</p>
<p>  Assignment 1: &quot;Project Portal&quot; Static Web Page<br />
  Due Session 1, Week 2 (10 points)</p>
<p>  For the official assignment requirements, <a href="/im1480/im_portal.doc">download the assignment sheet in MS Word format</a>.</p>
<p>  This assignment is an introduction to the most basic concepts of building a web page (i.e. hyperlinks, uploading files, creating directories, creating HTML pages in Dreamweaver). It is also the mechanism through which I will grade all of your subsequent assignments. First you will log in to your OLS account and create four new directories within your /htdocs directory. You will then build one web page with links to the new directories you created, and upload the page. This page will be the &quot;project portal&quot; for this class. You are free to use it for other classes too, just make sure to label your assigment links clearly. </p>
<p>  <strong>Session 2: </strong>Today I&#8217;ll be demonstrating a couple of ways to produce the &quot;Project Portal&quot; assignment that we discussed last time. We will also start our duscussion on HTML, look at some functionality within the Dreamweaver application, and discuss the requirements for the next project shown below.</p>
<p><strong>Dreamweaver Project &#8211; &quot;The World&quot; Website</strong><br />
  <strong>Due Date &#8211; Session 2, Week 6 </strong><br />
  <strong>Total Points &#8211; 40 </p>
<p></strong>For the &quot;The World&quot; project requirements, <a href="/im1480/im_world.doc">download the assignment sheet in MS Word format</a>.</p>
<p><strong>Assignment Overview:</strong><br />
  Using Dreamweaver create a 6 page website about a country other than the United States. Each page should include images specifically prepared for the web in either jpg, gif, or png format. Use tables to organized the information on each page. Include text content, hard links, relative links and an email link. Also use the properties panel to choose specific fonts, font sizes, font styles and colors.</p>
<p>  <strong>Content Specifics:</strong><br />
  Website size &#8211; 6 pages.<br />
  Images on each page must be formatted as jpg, gif or png.<br />
  Text content must be included on each page. Pages consisting entirely of images are unacceptable.<br />
  Must be fully navigable, create universal navigation to get the user from one page to any other page.<br />
  Completed project must be uploaded to your OLS account and accessible over the internet.</p>
<p>  <strong>Competencies:</strong><br />
Proper image formatting<br />
Use of tables for layout<br />
Use of links: email, relative and absolute<br />
Use of page titles<br />
Proper file naming<br />
Use of CSS to format content<br />
Setting document properties for text, tables and images<br />
File transfer<br />
Usability concepts (information design / navigation)<br />
Originality of design and content organization</p>
<p>  <strong>Grading Standards:</strong><br />
  Grading is based on the above requirements (i.e. following the instructions as given in the content area, technical area, and competencies). Presentations of the &quot;Word Almanac&quot; will be held in class on the due date. Not presenting will result in a 5% reduction in your grade for the project.</p>
<p><strong>Check these links for information on countries:<br />
  </strong><a href="http://www.cia.gov/cia/publications/factbook/" target="_blank">http://www.cia.gov/cia/publications/factbook/ </a><br />
  <a href="http://www.unicef.org/infobycountry/" target="_blank">http://www.unicef.org/infobycountry/</a> <br />
  <a href="http://en.wikipedia.org/" target="_blank">http://en.wikipedia.org/</a> </p>
<p><strong>Check these links for tutorials and information:<br />
  </strong><a href="http://hotwired.lycos.com/webmonkey/" target="_blank">http://hotwired.lycos.com/webmonkey/</a><br />
  <a href="http://www.macromedia.com/support/dreamweaver/" target="_blank">http://www.macromedia.com/support/dreamweaver/</a><br />
  <a href="http://www.projectseven.com/tutorials/index.htm" target="_blank">http://www.projectseven.com/tutorials/index.htm</a><br />
  <a href="http://www.siteownersdesign.com/design-tutorials/dreamweaver-mx-tutorial" target="_blank">http://www.siteownersdesign.com/design-tutorials/dreamweaver-mx-tutorial</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-1-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 2</title>
		<link>http://aim.johnkeston.com/im1480/week-2-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-2-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:03:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-2-4/</guid>
		<description><![CDATA[Session 1: I&#8217;ll be demonstrating some of the basics in Dreamweaver including how to create, export and import site definitions. I&#8217;ll also be discussing some of the basics of FTP (File Transfer Protocol). Session 2: Let&#8217;s look carefully at tables and how they can improve the look of our web pages. Let&#8217;s also take a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>I&#8217;ll be demonstrating some of the basics in Dreamweaver including how to create, export and import site definitions. I&#8217;ll also be discussing some of the basics of FTP (File Transfer Protocol).</p>
<p><strong>Session 2:</strong> <strong> </strong>Let&#8217;s look carefully at tables and how they can improve the look of our web pages. Let&#8217;s also take a look at some basic HTML commands. It&#8217;s not the goal of this class to learn the HTML language, but a basic introduction will help you understand how your website works. It will also help you understand how to fix technical problems when they arise, such as bad links, broken images and alignment issues.</p>
<p><strong>Topics Covered:</strong><br />
Tables<br />
Table Attributes<br />
Using Dreamweaver<br />
Setting Properties<br />
Web Dimensions</p>
<p><strong>World Project Milestone 1 Due Session 2, Week 3</strong><br />
Have a mostly complete design of one page in XHTML<br />
Dimensions, colors, fonts and typesetting should be adjusted<br />
Complete navigation scheme should be applied to your design</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-2-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 3</title>
		<link>http://aim.johnkeston.com/im1480/week-3-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-3-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:25:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-3-4/</guid>
		<description><![CDATA[Session 1: What are web graphics? Why do we need them and how can they improve website development? We will talk about these and other issues in class today. The chart below has some features of the three graphic formats we can use in web productions. These are .png, .jpg and .gif. Photoshop and Fireworks [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> What are web graphics? Why do we need them and how can they improve website development? We will talk about these and other issues in class today. The chart below has some features of the three graphic formats we can use in web productions. These are .png, .jpg and .gif. Photoshop and Fireworks are two applications which allow us to generate and manipulate graphics for the web.</p>
<table width="708" border="0">
<tr bgcolor="#CCCCCC">
<td width="149"><strong>Image Format </strong></td>
<td width="153"><strong>Transparencies</strong></td>
<td width="141"><strong>Gradient Trans. </strong></td>
<td width="101"><strong>File Size </strong></td>
<td width="130"><strong>Best Purpose </strong></td>
</tr>
<tr>
<td>PING (.png)</td>
<td>Yes</td>
<td>
<p>Yes (not supported in all browsers) </p>
</td>
<td>Largest</td>
<td>Flash / Director</td>
</tr>
<tr bgcolor="#CCCCCC">
<td>GIF (.gif)</td>
<td>Yes</td>
<td>No</td>
<td>Smallest</td>
<td>Graphics</td>
</tr>
<tr>
<td>JPEG (.jpg)</td>
<td>No</td>
<td>No</td>
<td>Small</td>
<td>Photos</td>
</tr>
</table>
<p><strong>Topic covered:</strong><br />
Image Processing<br />
Image Dimensions<br />
File / Asset Management</p>
<p><p><strong>Session 2:</strong> Today we&#8217;ll look at some design issues and how to use CSS in Dreamweaver to place web graphics. I will also be looking at your designs for the <strong>World Project Milestone 1 due today</strong>. Those of you who have questions regarding site mangement, here&#8217;s a link to some tutorials which go over the details of setting up your site both locally and remotely:</p>
<p><a href="http://www.macromedia.com/support/dreamweaver/manage.html" target="_blank">http://www.macromedia.com/support/dreamweaver/manage.html</a></p>
<p><strong>Topic covered:</strong><br />
CSS Floats<br />
FTP / Site Mangement</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-3-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 4</title>
		<link>http://aim.johnkeston.com/im1480/week-4-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-4-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:26:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/imd_topics/week-4-4/</guid>
		<description><![CDATA[Session 1: Flash is an extremely versatile application which allows it&#8217;s users to create an infinite array of applications from something as simple as motion graphics to as complex as fully functional arcade style games. Our first assignment will be to create a bouncing ball in Flash. Click here to view an example. To create [...]]]></description>
			<content:encoded><![CDATA[<p><font face="Arial, Helvetica, sans-serif"><b>Session 1:</b> </font>Flash is an extremely versatile application which allows it&#8217;s users to create an infinite array of applications from something as simple as motion graphics to as complex as fully functional arcade style games. Our first assignment will be to create a bouncing ball in Flash. Click <a href="/im1480/bounce.swf" target="_blank">here</a> to view an example.</p>
<p>  <font face="Arial, Helvetica, sans-serif">To create the bouncing ball, start a new document in Flash MX. Select the oval tool and draw a circle. To constrain your ball to a perfect circle, hold down the shift key while dragging. You can also choose to select a fill color or gradient to make your ball a little more fancy. After your satisfied, from the Insert menu choose &quot;Convert to Symbol&quot;. Make sure you name it and select graphic as the type. </font></p>
<p><font face="Arial, Helvetica, sans-serif">Insert a key frame at frame 10 and another at frame 20 (for a slower bounce try inserting the key frames at 20 and 40). Select the middle key frame and shift+drag the ball to the bottom of the scene. Here you can also adjust the height property of the ball so that it appears to squash down a bit as it strikes the floor. </font></p>
<p>Now select the 1st key frame and in the properties panel choose &quot;motion&quot; under &quot;Tween&quot; and set the ease to -100. On the middle turn on the motion tween as well and set the ease equal to 100. Hit ctrl+enter to watch the animated ball bounce. When you&#8217;re finished please copy your assignment to the drop off drive for credit. </p>
<p><strong>Flash Exercise &#8211; The Bouncing Ball</strong><br />
  <strong>Due Date &#8211; 1st Class or Week 5</strong><br />
  <strong>Total Points &#8211; 10</strong></p>
<p><a href="http://www.flashkit.com">http://www.flashkit.com</a><br />
  <a href="http://www.macromedia.com">http://www.macromedia.com</a> <br />
  <a href="http://www.macromedia.com/support/flash/">http://www.macromedia.com/support/flash/</a><br />
  <a href="http://www.actionscripts.org">http://www.actionscripts.org</a></p>
<p><font face="Arial, Helvetica, sans-serif"><b>Session 2: </b></font>Today we&#8217;ll be discussing the main Flash project. Below is an outline of the requirements for the project. Please carefully review the assignment. Nest week we will be demonstrating each of the competencies required for this project.</p>
<p><strong>Flash Project &#8211; Interactive Flash Animation: &quot;Four Seasons&quot; </strong>(4 scenes)<br />
  <strong>Due Date &#8211; 2nd Class of Week 7 (beginning of class)</strong><br />
  <strong>Total Points &#8211; 45</strong></p>
<p><strong>Assignment Overview:<br />
  </strong>For the &quot;The Four Seasons &quot; project detailed requirements, <a href="im_seasons.doc">download the assignment sheet in MS Word format</a>. Using Flash as an interactive tool, you will create a 4 scene interactive animation based on the four seasons. You will create 4 animated landscapes or city scenes representing the seasons of the year. For example, one animated element during the winter scene could be snow falling.</p>
<p>  <strong>Content Specifics:</strong><br />
  Animation Length &#8211; 10 second minimum per scene.<br />
  Minimum of 4 unique landscape scenes.<br />
  Design can be a combination of raster and vector artwork.<br />
  Must be your original artwork, including any photos (vacation photos would work great).<br />
  Must be fully interactive, navigate to any scene from any scene.<br />
  Completed project must be uploaded to your OLS account to be on the WWW</p>
<p>  <strong>Competencies:</strong><br />
  Importing of Digital Images into Flash<br />
  Using vector tools within Flash<br />
  Using Symbols (Graphics, Movie Clips, &amp; Buttons) within Flash<br />
  Use of Motion tween<br />
  Use of Motion guides<br />
  Use of Shape tweening<br />
  Use of Masks<br />
  Incorporation of ActionScripting for movie control (Stops &amp; Navigation)<br />
  Publishing from Flash<br />
  Uploading Flash movies to the web</p>
<p><strong>Overall Use of Flash (scenes, tweens, ActionScripting) &#8211; 20 points<br />
  Design &#8211; 15 points<br />
  Use of OLS &#8211; 10 points<br />
  </strong><strong><br />
  Flash Samples:</strong><br />
  <a href="http://analogik.com/multimedia_samorost.asp" target="_blank">http://analogik.com/multimedia_samorost.asp</a><br />
  <a href="http://www.2advanced.com">2advanced</a><br />
  <a href="http://www.adobe.com/cfusion/showcase/">Adobe Flash Showcase</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-4-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 5</title>
		<link>http://aim.johnkeston.com/im1480/week-5-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-5-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:26:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-6-4/</guid>
		<description><![CDATA[Session 1: Today your bouncing ball is due. Also, let&#8217;s take a look at scenes, buttons, navigation, and some simple ActionScripting in Flash MX. ActionScript allows us to control navigation throughout a Flash project. Certain &#34;Actions&#34; can only be applied to buttons, while others only to movie clips. Take a look at this example of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Today your bouncing ball is due. Also, let&#8217;s take a look at scenes, buttons, navigation, and some simple ActionScripting in Flash MX. ActionScript allows us to control navigation throughout a Flash project. Certain &quot;Actions&quot; can only be applied to buttons, while others only to movie clips. Take a look at this example of the seasons project by Corvis.</p>
<p>  <a href="http://www.pjsattic.com/flash/seasons.htm">http://www.pjsattic.com/flash/seasons.htm</a></p>
<p><strong>Session 2:</strong> </p>
<p><strong>New Requirements for the Bouncing Ball Project:</strong><br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2008/11/bouncing_ball1.doc' title='Bouncing Ball Project Requirements'>Download the Bouncing Ball Project Requirements in MS Word format</a></p>
<p>To create the bouncing ball, start a new document in Flash MX. From the insert menu choose &#8220;New Symbol&#8221;. Call the symbol &#8220;Ball1&#8243;, check &#8220;Movie Clip&#8221; and set the registration to the center of the object. Inside the new symbol. Select the oval tool and draw a circle. To constrain your ball to a perfect circle, hold down the shift key while dragging. You can also choose to select a fill color or gradient to make you&#8217;re ball a little more fancy. At this stage your ball is a shape and need to be converted to a graphic in order for you to be able to apply motion tweens. Select your shape with the selection tool and from the Insert menu choose &#8220;Convert to Symbol&#8221;. Make sure you name it and select graphic as the type.</p>
<p>Insert a key frame at frame 20 and another at frame 40 (for a slower bounce try inserting the key frames at 30 and 60). Select the middle key frame and shift+drag the ball to the bottom of the scene. Here you can also adjust the height property of the ball so that it appears to squash down a bit as it strikes the floor.</p>
<p>Now select the 1st key frame and in the properties panel choose &#8220;motion&#8221; under &#8220;Tween&#8221; and set the ease to -100. On the middle turn on the motion tween as well and set the ease equal to 100. Hit ctrl+enter to watch the animated ball bounce. After you have added a shadow and sound, duplicate the movie clip and adjust the new movie clips timeline. When you have at least three new Ball movie clips drag them to the stage in the main timeline and test your movie. Publish your movie and put the appropriate files on the server to connect your project to your project portal.</p>
<p>Flash Exercise – The Bouncing Ball<br />
Due Date – Session 1, Week 7<br />
Total Points &#8211; 15</p>
<p><strong>The following curriculum is out of sync, please ignore until later in the quarter:<br />
</strong><br />
Incorporation of ActionScripting for movie control including stops &amp; navigation is probably the trickiest thing in Flash that we will be doing. However, just a couple of very short scripts are what is needed to accomplish this. </p>
<p>  Stops are needed to prevent your movie from looping and give the user a chance to make a choice based on navigation options that have been presented in the piece. The ActionScript command &quot;stop();&quot; can be placed on a keyframe to accomplish this.</p>
<p>  <font face="Courier New, Courier, mono">stop();</font></p>
<p>  To create navigational behaviors, place ActionSricpts on buttons. Usually the &quot;on&quot; method is used to handle mouse click functionality, such as &quot;release&quot; for mouse button up actions. Apply the following example to navigate to the first frame in a different scene:</p>
<p><font face="Courier New, Courier, mono">on (release) {<br />
  &nbsp;&nbsp;&nbsp;&nbsp;gotoAndPlay(&quot;Scene 2&quot;,1);<br />
  }</font></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-5-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 6</title>
		<link>http://aim.johnkeston.com/im1480/week-6-5/</link>
		<comments>http://aim.johnkeston.com/im1480/week-6-5/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:31:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-6-5/</guid>
		<description><![CDATA[Session 1: Today we&#8217;ll go over sound, motion paths and masks. First of all I would like to review tweening. Here are a few points to keep in mind about motion tweens: 1. Remember to convert to symbol (Modify/Convert to Symbol, or F8) before making motion tweens. 2. Use the scale checkbox in the frame [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we&#8217;ll go over sound, motion paths and masks. First of all I would like to review tweening. Here are a few points to keep in mind about motion tweens:</p>
<p>  1. Remember to convert to symbol (Modify/Convert to Symbol, or F8) before making motion tweens.<br />
  2. Use the scale checkbox in the frame properties (next to tween) to apply transform to motion tweens.<br />
  3. It&#8217;s a good idea to put each shape or symbol on it&#8217;s own layer if you before tweening.</p>
<p><strong>Shape Tweens:</strong><br />
  <span class="style1">Excerpted from the <em>Macromedia Flash MX Help File</em></span> <br />
  1. Click a layer name to make it the current layer, and create or select a keyframe where you want the animation to start.</p>
<p>  2. Create or place the artwork for the first frame of the sequence. For best results, the frame should contain only one item (a graphic object or broken-apart group, bitmap, instance, or text block).</p>
<p>  3. Select the keyframe in the Timeline.</p>
<p>  4. Choose Window &gt; Properties.</p>
<p>  5. In the Property inspector, select Shape from the Tween pop-up menu.</p>
<p>  6. Drag the arrow next to the Easing value or enter a value to adjust the rate of change between tweened frames. (By default, the rate of change between tweened frames is constant. Easing creates a more natural appearance of transformation by gradually adjusting the rate of change.)</p>
<p>  7. Choose an option for Blend: Distributive creates an animation in which the intermediate shapes are smoother and more irregular. Angular creates an animation that preserves apparent corners and straight lines in the intermediate shapes. Note: Angular is appropriate only for blending shapes with sharp corners and straight lines. If the shapes you choose do not have corners, Flash reverts to distributive shape tweening.</p>
<p>  8. Create a second keyframe the desired number of frames after the first keyframe.</p>
<p>  9. With the second keyframe selected, select the artwork you placed in the first keyframe and do one of the following: Modify the shape, color, or position of the artwork. Delete the artwork and place new artwork in the second keyframe.</p>
<p><strong>Session 2:</strong> The last thing we&#8217;ll go over in Flash before moving on to our final project is a refresher on how to publish your Flash projects on the internet. Everyone has an account on the OLS which includes at least 5 megabytes of web space. To access your account you can use FTP client software such as RBrowserLite in the Mac labs. Documents you wish to publish on the web need to be copied into the &quot;htdocs&quot; directory, or subdirectories within it. </p>
<p>  Make sure you get your project published to your website before Session 2 so we can view them on the web in class. If you&#8217;re not absolutely confident on how to do it, make an attempt during lab today and I&#8217;ll help any of you who need it.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-6-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 7</title>
		<link>http://aim.johnkeston.com/im1480/week-7-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-7-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:32:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-7-4/</guid>
		<description><![CDATA[Session 1: Today we&#8217;ll be discussing the final project which is a full interactive website. We will be combining several types of media within the site, but some important factors not to be overlooked are design and usability. An excellent set of usability criteria goes by the acronym SCANMIC. These guidelines can improve the design [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we&#8217;ll be discussing the final project which is a full interactive website. We will be combining several types of media within the site, but some important factors not to be overlooked are design and usability. An excellent set of usability criteria goes by the acronym SCANMIC. These guidelines can improve the design of your site in many ways. Here&#8217;s a brief overview of the criteria:</p>
<p> <strong>1. Screen Design </strong>(Space, choice of color, readability, image placement, etc.)<br />
  <strong>2. Content </strong>(Who, What, Where, When)<br />
  <strong>3. Accessibility </strong>(Fast Load Times, Browser Compatibility, Easy to Read)<br />
  <strong>4. Navigation </strong>(Title Bar, Headers, Highlighted Navigation Links. Good navigation is like a roadmap, know where you are where you&#8217;ve been and where to go next.)<br />
  <strong>5. Media Use </strong>(Graphics help keep users attention and can enhance usability, poor use slows down sites and distract users, Sound, Animation, and Video)<br />
  <strong>6. Interactivity </strong>(e-commerce, feedback, discussions, chat, user customization)<br />
  <strong>7. Consistency </strong>(Page size/page layout, navigation buttons/ images, menus, etc. text &#8211; font, font size and color). </p>
<p><strong>Full Webiste &#8211; Interactive Website with Flash Elements</strong><br />
  <strong>Due Date &#8211; 1st Class of Week 11<br />
  Evaluations &#8211; 1st and 2nd Class of Week 11 <br />
  (5% of final project grade)</strong></p>
<p>  <strong>Components:<br />
  Proposal 25 pts. Due week 8 Class 2<br />
  Mockups 10 points. Due 1st Class of Week 9<br />
  </strong><strong>Beta Version 15 points. Due 1st Class of Week 10 <br />
  Final site 50 points. Due 1st Class of Week 11</strong><strong><br />
  Total Points &#8211; 100</strong></p>
<p><strong>Assignment Overview:</strong><br />
  Using Dreamweaver and Flash create an interactive website with a minimum of 10 content areas. Universal navigation, text content, images, sound, and motion graphics are required in your site. Sites will be evaluated based on the SCANMIC criteria. </p>
<p>  <strong>Content Specifics:<br />
  </strong>- Choose a subject, product or service for your site.<br />
  &#8211; Content of site must be approved by me.<br />
  &#8211; Design must be your original work.<br />
  &#8211; Include at least 2 uses of audio (background/sound effects).<br />
  &#8211; Include a minimum of 8 photo stills.<br />
  &#8211; Use a maximum of 3 font styles. <br />
  &#8211; Incorporate self designed buttons, rollovers, and headers.<br />
  &#8211; A minimum of 10 pages or content areas are required.<br />
  &#8211; Content must include text as well as graphics (all image sites are unacceptable).<br />
  &#8211; Universal navigation is required so users can easily get around your site.<br />
  &#8211; Links to related websites outside of your project are required.<br />
  &#8211; Final project must be uploaded to your OLS or comparable account and available on the World Wide Web.</p>
<p>  <strong>Competencies:</strong><br />
  Project planning and organization.<br />
  Resource gathering.<br />
  Using Symbols (Graphics, Movie Clips, &amp; Buttons) within Flash<br />
  incorporation of ActionScripting for movie control (Stops &amp; Navigation)<br />
  Publishing from Flash<br />
  Uploading Flash movies to the web<br />
  Processing of Digital Images into a web format<br />
  Using Dreamweaver to create html documents<br />
  Creating tables within Dreamweaver<br />
  Creation of consistent navigation systems.<br />
  Creating relative links for navigation and hard links for linking outside your site<br />
  Linking to an email address<br />
  Targeting links to different areas<br />
  Publishing a website to the WWW</p>
<p> <strong>Grading Standards:<br />
  </strong>Completion of the project by the required deadline does not guarantee a passing grade. Your project must demonstrate the knowledge of the project competencies and a moderate level of design detail.</p>
<p> <strong>Schedule / Points Breakdown:</strong><br />
  2nd Class of Week 8 &#8211; Paper copy of the proposal is due (25 points).<br />
  1st Class of Week 9 &#8211; Mockups required for feedback (10 points).<br />
  1st Class of Week 10 &#8211; Beta version due for review (15 points).<br />
  Week 11 &#8211; Final Project Due 1st Class of Week 11 (50 points).<br />
  Week 11 &#8211; Evaluations: Session 1 / Session 2 (5% of Final Project grade).</p>
<p>  <strong>Session 2: </strong>A very important part of building interactive media projects is the planning stage. Let&#8217;s discuss each of the components required for our design documents (often called development plan) for your final project. Here&#8217;s a list of components generally included in this type of document:</p>
<p>  1. Title page (Title, Author, Table of Contents, etc.)<br />
  2. Summary/Overview (A brief summary of what the project does and what it&#8217;s for, etc.)<br />
  3 . Feature Lists/Requirements (A list of the features with brief descriptions)<br />
  4 . Flow Charts (Represent each unique screen of the project with a shape connected via navigation)*<br />
  5 . Screen Schematics (Simple pages shown with wire frame boxes for nav buttons, and images. Also include notes describing the purpose of each screen.) <br />
  6. Proposal/Bid in hours (time per pages, etc.)</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-7-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 8</title>
		<link>http://aim.johnkeston.com/im1480/week-8-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-8-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:33:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-8-4/</guid>
		<description><![CDATA[Session 1: Try to finish selecting the subject for your site and get a good start on your development plans today. Remember that paper prints of your design documents (development plans) are due next class. If you have finished your proposal you can start working on your mockups. Use your favorite graphic design application to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Try to finish selecting the subject for your site and get a good start on your development plans today. Remember that paper prints of your design documents (development plans) are due next class. If you have finished your proposal you can start working on your mockups. Use your favorite graphic design application to create your mockups (Photoshop, Illustrator, FIreworks, etc.).</p>
<p>Seasons Project Milestone:<br />
1. Have at least one type of tween in you project<br />
2. Have two working examples of ActionScript navigation</p>
<p><strong>Session 2:</strong> Please don&#8217;t forget to hand in your printed design documents today. Let&#8217;s continue working on our mockups. Mockups are fully designed layouts which we will later convert into templates for our websites. We should create a mimum of three uniques designs for one page. Out of the three designs we will choose the best and use it as a consistent template for the rest of the site.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-8-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 9</title>
		<link>http://aim.johnkeston.com/im1480/week-9-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-9-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:39:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-9-4/</guid>
		<description><![CDATA[Session 1: I will be looking at everyone&#8217;s mockups today (10 points). Based on the feedback I give you, choose your design, make any final adjustments and start creating a template. I suggest using FIreworks MX to create your HTML template. I&#8217;ll demonstrate the process of creating HTML templates from your mockups in Fireworks today [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>I will be looking at everyone&#8217;s mockups today (10 points). Based on the feedback I give you, choose your design, make any final adjustments and start creating a template. I suggest using FIreworks MX to create your HTML template. I&#8217;ll demonstrate the process of creating HTML templates from your mockups in Fireworks today as well.</p>
<p>  <strong>Session 2: </strong>Let&#8217;s look at importing flash content into HTML documents.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-9-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 10</title>
		<link>http://aim.johnkeston.com/im1480/week-10-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-10-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:40:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-10-4/</guid>
		<description><![CDATA[Session 1: Today I&#8217;ll be looking at the &#34;beta&#34; versions of your website (15 points). A beta version is a nearly complete version of software or web projects that is used to make sure that nothing is wrong with the project. This is commonly refered to as beta testing. Session 2: Today is the last [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today I&#8217;ll be looking at the &quot;beta&quot; versions of your website (15 points). A beta version is a nearly complete version of software or web projects that is used to make sure that nothing is wrong with the project. This is commonly refered to as beta testing.</p>
<p><strong>Session 2: </strong>Today is the last chance to get my feedback on your final projects and work out any difficulties you may be having.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-10-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 11</title>
		<link>http://aim.johnkeston.com/im1480/week-11-4/</link>
		<comments>http://aim.johnkeston.com/im1480/week-11-4/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 05:41:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM1480 Fundamentals of IMD]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-11-4/</guid>
		<description><![CDATA[Session 1: Evaluations. Session 2: Evaluations.]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Evaluations.</p>
<p>  <strong>Session 2: </strong>Evaluations.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im1480/week-11-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the Fostex FR-2LE</title>
		<link>http://aim.johnkeston.com/ca2431/using-the-fostex/</link>
		<comments>http://aim.johnkeston.com/ca2431/using-the-fostex/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 00:48:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CA2431 Audio Production]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/imd_topics/using-the-fostex-fr-2le/</guid>
		<description><![CDATA[The Fostex FR-2LE field memory recorders are designed to allow you to make high quality recordings outside of the recording studio. The unit requires four AA batteries not provided by the cage. I also recommend using a 1 gig or higher compact flash card to make your recordings (the unit is supplied with a 128mb [...]]]></description>
			<content:encoded><![CDATA[<p>The Fostex FR-2LE field memory recorders are designed to allow you to make high quality recordings outside of the recording studio. The unit requires four AA batteries not provided by the cage. I also recommend using a 1 gig or higher compact flash card to make your recordings (the unit is supplied with a 128mb card that allows for about 11 minutes of stereo audio or 23 minutes in mono). </p>
<p><strong>Recording to the Fostex FR-2LE</strong><br />
1. Install four AA batteries or connect the unit to an AC outlet using the power adapter.<br />
2. Flip the power switch up and release it to turn on the unit.<br />
3. If the compact flash card needs formatting follow these steps (all data on the card will be lost).<br />
&nbsp; &nbsp; a) Navigate in the menu to &#8220;Disk > Format&#8221;<br />
&nbsp; &nbsp; b) Use +/- to move to &#8220;FS/BIT Mode&#8221;<br />
&nbsp; &nbsp; c) Choose &#8220;BWF44/16&#8243; for CD quality<br />
&nbsp; &nbsp; d) Set the &#8220;Track Mode&#8221; to either mono or stereo<br />
&nbsp; &nbsp; e) Choose &#8220;[EXECUTE]&#8221; and press MENU / ENTER<br />
&nbsp; &nbsp; f) Choose &#8220;[EXECUTE]&#8221; again and press MENU / ENTER again</p>
<p>4. Plug your Mic(s) into the Analog in XLR jacks on the left side of the unit.<br />
5. If you are using a condenser microphone that requires phantom power in the menu go to &#8220;Setup > Phantom&#8221; and set it to &#8220;On&#8221;.<br />
6. Press the grey &#8220;REC STBY&#8221; (record standby) button to prepare for recording and check your levels.<br />
7. Use the &#8220;MIC TRIM&#8221; knobs to adjust your levels.<br />
8. Press the red &#8220;REC&#8221; (record) button to start recording, &#8220;REC STBY&#8221; to pause, or &#8220;STOP/CANCEL&#8221; to stop.</p>
<p><strong>Transferring Your Recording to a Computer</strong><br />
1. Connect a USB cable from the unit to a compter<br />
2. In the MENU go to &#8220;USB Mode > USB Device Mode&#8221;<br />
3. Drag and drop your recording to the hard drive on the computer<br />
4. You can now import your recordings into Protools. </p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/ca2431/using-the-fostex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Syllabus and Meeting Times</title>
		<link>http://aim.johnkeston.com/im2420/schedule-and-meeting-times/</link>
		<comments>http://aim.johnkeston.com/im2420/schedule-and-meeting-times/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 21:59:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/schedule-and-meeting-times/</guid>
		<description><![CDATA[IM2420 Fundamemtals of Scripting Languages Students develop and refine basic programming skills. Emphasis is placed on programming concepts including logic, problem solving, process flow and flowcharting, syntax and structures, and debugging and troubleshooting. Students will acquire skills needed to design, develop, and produce practical interactive applications. (Course Prerequisite: IM1480 Fundamentals of Interactive Design) Note: WDIM [...]]]></description>
			<content:encoded><![CDATA[<h1>IM2420 Fundamemtals of Scripting Languages</h1>
<p>Students develop and refine basic programming skills. Emphasis is placed on programming concepts including logic, problem solving, process flow and flowcharting, syntax and structures, and debugging and troubleshooting. Students will acquire skills needed to design, develop, and produce practical interactive applications. (Course Prerequisite: IM1480 Fundamentals of Interactive Design) <strong>Note:</strong> WDIM students must earn a C or better to pass this capstone course.</p>
<p><strong>Instructor: John Keston</strong></p>
<p>Meeting Times and Location Section (M/W):<br />
Session 1 / Session 2<br />
M/W 2pm – 5pm (with appropriate breaks), Room P108, Pence building</p>
<p>Syllabus: <a href='http://aim.johnkeston.com/wp-content/uploads/2008/06/im2420_fund_of_scripting_su10_keston.doc'>IM2420 Fundamentals of Scripting</a><br />
Textbook:</strong> <a href="http://www.amazon.com/XHTML-Sixth-Visual-Quickstart-Guide/dp/0321430840/" target="_blank">HTML, XHTML &amp; CSS (6th edition) Visual Quickstart Guide by Elizabeth Castro</a></p>
<p><a href="../week-1-5">Week 1</a> | <a href="../week-2-5">Week 2</a> | <a href="../week-3-5">Week 3</a> | <a href="../week-4-5">Week 4</a> | <a href="../week-5-5">Week 5</a> | <a href="../week-6-5">Week 6</a><br />
<a href="../week-7-5">Week 7</a> | <a href="../week-8-5">Week 8</a> | <a href="../week-9-5">Week 9</a> | <a href="../week-10-5">Week 10</a> | <a href="../week-11-5">Week 11</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/schedule-and-meeting-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 1</title>
		<link>http://aim.johnkeston.com/im2420/week-1-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-1-5/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 14:32:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-1-5/</guid>
		<description><![CDATA[Session 1: Learn about and utilize basic HTML tags, including tables, in a web calendar of the current year. Our assignment for the week is to create a 12 month calendar for the current year. Each month must contain all the accurate days for the month arranged in a table structure of columns and rows. [...]]]></description>
			<content:encoded><![CDATA[<p><b>Session 1:</b> Learn about and utilize basic HTML tags, including tables, in a web calendar of the current year. Our assignment for the week is to create a 12 month calendar for the current year. Each month must contain all the accurate days for the month arranged in a table structure of columns and rows. The requirements for this exercise are as follows:</p>
<p>1. Use a typeface other than the default.<br />
2. Include some content besides day numbers (i.e. holidays, etc.).<br />
3. Create borders without using the table border attribute.<br />
4. Create navigation to get to every month from any month.<br />
5. Use background images in some of the cells.<br />
6. Use background colors to enhance your design.<br />
7. Upload to the OLS or comparable hosting.<br />
8. Place internet shortcut to your project on the dropoff drive under &#8220;John Keston:IM2420:&lt;your name&gt;:Calendar URL&#8221;.</p>
<p>This assignment is <strong>due Week 2, Session 2.</strong> Here are some tag definitions and example tags to work from. Remember to use the resources linked below.</p>
<pre class="brush: xml;">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Basic Tags and Attributes&lt;/title&gt;
Body Tag and Attributes:
&lt;body bgcolor=&quot;#ffffff&quot; background=&quot;image.jpg&quot; link=&quot;#ff0000&quot;
vlink=&quot;#cc6633&quot; alink=&quot;#cccccc&quot;&gt;All page content goes here&lt;/body&gt;

HTML Comment:
&lt;!-- Type your comments here --&gt;

Headings, etc:
&lt;h1&gt;Heading&lt;/h1&gt;
&lt;h2&gt;Subheading&lt;/h2&gt;
&lt;h3&gt;Subheading&lt;/h3&gt;
&lt;h4&gt;Subheading&lt;/h4&gt;
&lt;h5&gt;Subheading&lt;/h5&gt;
&lt;h6&gt;Subheading&lt;/h6&gt;
&lt;center&gt;Centered Information&lt;/center&gt;
&lt;p&gt;Paragraph&lt;/p&gt;
&lt;b&gt;Bold&lt;/b&gt;
&lt;i&gt;Italic&lt;/i&gt;
&lt;u&gt;Underline&lt;/u&gt; (Can be mistaken for a link)
&lt;br /&gt;Line break

&lt;!-- Typefaces are usually managed with styles --&gt;
&lt;font face=&quot;Arial, Helvetica, sans-serif&quot; color=&quot;red&quot; size=&quot;1&quot;&gt;
Font Attributes&lt;/font&gt;

Ordered Lists:
&lt;ol type=&quot;1, A, a, I, i&quot;&gt;
&lt;li&gt;list items&lt;/li&gt;
&lt;li&gt;list items&lt;/li&gt;
&lt;/ol&gt;

Unordered Lists:
&lt;ul type=&quot;circle, square, disc&quot;&gt;
&lt;li&gt;list items&lt;/li&gt;
&lt;li&gt;list items&lt;/li&gt;
&lt;/ul&gt;

Image Tag and Paths:
&lt;img src=&quot;images/mugshot1.jpg&quot; width=&quot;150&quot; height=&quot;75&quot; border=&quot;0&quot;
 alt=&quot;Click Here to Contact Us&quot; lowsrc=&quot;lowimage.gif&quot;&gt;

Relative Link:
&lt;a href=&quot;contact/contact_list.html&quot;&gt;click here to view contacts&lt;/a&gt;

Internal Link or Anchor:
&lt;a name=&quot;linkname&quot;&gt;Top of Page&lt;/a&gt;
&lt;!-- Page Content ---&gt;
&lt;a href=&quot;#linkname&quot;&gt;Click here to go to the top&lt;/a&gt;

Absolute or Hard Link:
&lt;a href=&quot;http://www.startribune.com/news&quot;&gt;click here&lt;/a&gt;

Table Tags and Attributes:
&lt;table width=&quot;600&quot; height=&quot;300&quot; border=&quot;0&quot; bgcolor=&quot;#FFFFFF&quot;
cellspacing=&quot;1&quot; cellpadding=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td align=&quot;left, right, center&quot; valign=&quot;top, middle, bottom&quot;
bgcolor=&quot;&quot; colspan=&quot;&quot; rowspan=&quot;&quot;&gt;info&lt;/td&gt;
&lt;td align=&quot;left, right, center&quot; valign=&quot;top, middle, bottom&quot;
bgcolor=&quot;&quot; colspan=&quot;&quot; rowspan=&quot;&quot;&gt;info&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
</pre>
<p><strong>Required Reading:</strong><br />
Reading from Textbook: Introduction and Chapter 1 (pages 13-42), Skim chapters 2,3,4 (pages 43-79)<br />
Online reading: <a href="http://hotwired.lycos.com/webmonkey/teachingtool/learn.html">Authoring: HTML Basics</a></p>
<p><strong>Resources:</strong><br />
<a href="http://www.webmonkey.com/reference/HTML_Cheatsheet">HTML Cheat Sheet</a> (an excellent html resource)<br />
<a href="http://www.webmonkey.com/">www.webmonkey.com</a> (a comprehensive web development resource)</p>
<p><strong>Session 2:</strong> Today we will be looking more carefully at tables to organize information in a grid, like a calendar. We will also cover some techniques on how to trick tables into being more flexible like using bgcolor and cellspacing to create a border, or using &#8220;colspan&#8221; within your table data cells to merge cells without days in the beginning and end of months (i.e. <code>&lt;td colpsan="4"&gt;&amp;nbsp;&lt;/td&gt;</code>). Try adding images and/or text for holidays or birthdays. Also, use &#8220;width&#8221; and &#8220;height&#8221; attributes to line up the calendar days. Here&#8217;s an example month: </p>
<pre class="brush: xml;">
&lt;table width=&quot;100%&quot; height=&quot;100%&quot;&gt;
&lt;tr&gt;
&lt;th width=&quot;14%&quot;&gt;Sunday&lt;/th&gt;
&lt;th width=&quot;14%&quot;&gt;Monday&lt;/th&gt;
&lt;th width=&quot;14%&quot;&gt;Tuesday&lt;/th&gt;
&lt;th width=&quot;14%&quot;&gt;Wednesday&lt;/th&gt;
&lt;th width=&quot;14%&quot;&gt;Thursday&lt;/th&gt;
&lt;th width=&quot;14%&quot;&gt;Friday&lt;/th&gt;
&lt;th width=&quot;14%&quot;&gt;Saturday&lt;/th&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;#999999&quot; height=&quot;20%&quot;&gt;
&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;1&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;2&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;3&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;4&lt;/td&gt;
&lt;td valign=&quot;top&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;#999999&quot; valign=&quot;top&quot; height=&quot;20%&quot;&gt;
&lt;td&gt;5&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;#999999&quot; valign=&quot;top&quot; height=&quot;20%&quot;&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;#999999&quot; valign=&quot;top&quot; height=&quot;20%&quot;&gt;
&lt;td&gt;20&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;#999999&quot; valign=&quot;top&quot; height=&quot;20%&quot;&gt;
&lt;td&gt;27&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
</pre>
<p><strong>Note:</strong> The use of HTML escape sequences such as &amp;nbsp; allows you to place special characters into your HTML documents. Less than (&#8220;<") and greater than (">&#8220;) symbols would not be available without using an escape sequence. View the link below for a complete list of HTML escape sequences.</p>
<p><a href="http://www.hybridelephant.com/computer/tutorial/spechar.html" target="_blank">HTML Escape Sequences</a></p>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2008/07/im2420_problem_set_1.zip'>Download: IM2420 Problem Set 1</a><br />
1. All IM2420 problems are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an assigned classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-1-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 2</title>
		<link>http://aim.johnkeston.com/writings/week-2-5/</link>
		<comments>http://aim.johnkeston.com/writings/week-2-5/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 20:39:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>
		<category><![CDATA[Writings]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-2-5/</guid>
		<description><![CDATA[Session 1: Make sure that your link on the drop off drive is there and working properly. If we have time we may look at a few of your calendar projects during the lab. These are not required presentations. Stylesheets (technically Cascading Stylesheets), or CSS allow web developers much more control over the look of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Make sure that your link on the drop off drive is there and working properly. If we have time we may look at a few of your calendar projects during the lab. These are not required presentations. </p>
<p>Stylesheets (technically Cascading Stylesheets), or CSS allow web developers much more control over the look of their web pages than with HTML alone. They make it possible to define styles globally for a site, eliminating the need for repetitive font tags, color tags, alignment attributes and so on. This creates better organization by separating form from structure. Sytlesheets are a critical tool for any web developer and make creating sites infinitely faster and easier, once you&#8217;ve learned how to use them.There are four ways to include styles in your HTML documents. </p>
<p><strong>1. Local or Inline</strong> is right inside a tag and overrides other definitions. Example: <code>&lt;h1 style="color: orange; font-size: 18pt; font-family: Verdana, sans-serif"&gt;This is an INLINE style&lt;/h1&gt;</code></p>
<h1 style="color: orange; font-size: 18pt; font-family: Verdana, sans-serif">This is an INLINE style</h1>
<p><strong>2. Global or Embedded</strong>. A better solution is to include the style definitions in a style tag otherwise known as by using the global (embedded) technique. Like this <a href="/im2420/css_demo/style_demo1.html" target="_new">example</a>:</p>
<pre class="brush: xml;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Style Demo Page 1&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
h1 { color: red; font-size: 24px; font-family: arial }
p { text-indent: 1cm; background: #eeeeee; font-family: courier }
td { font-family: arial }
b, i { color: green; font-size: 20px }
--&gt;
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;TEST&lt;/h1&gt;
&lt;p&gt;Hello World&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;I'm in a TD tag with no font tag&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;b&gt;bold. &lt;u&gt;underline&lt;/u&gt; within bold (no style)&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;italics&lt;/i&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><strong>3. Linked</strong> stylesheets are even better because they allow you to define the styles for an entire website once, then when you modify the stylesheet the changes take effect over the entire site, or wherever the stylesheet is linked. Here&#8217;s how you link a stylesheet:</p>
<pre class="brush: xml;">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Untitled Document&lt;/title&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;/im2420/my_styles.css&quot; type=&quot;text/css&quot;&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;TEST&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>and here&#8217;s what the stylesheet document (my_styles.css) looks like:</p>
<pre class="brush: css;">
/* CSS Document */
h1 { color: red; font-size: 24px; font-family: arial }
p { text-indent: 1cm; background: #eeeeee; font-family: courier }
td { font-family: arial }
b, i { color: green; font-size: 20px }
</pre>
<p><strong>4. Imported</strong> stylesheet go within a style tag, thus allowing you to include other global styles which will override what&#8217;s imported. In the following example the h1 definition will override the h1 definition found in my_styles.css:</p>
<pre class="brush: css;">
&lt;STYLE TYPE=&quot;text/css&quot;&gt;
&lt;!--
@import url(my_styles.css);
h1 { color: #FF00FF; font-family: impact }
textarea { text-transform: uppercase }
--&gt;
&lt;/STYLE&gt;
</pre>
<p>Click any of the following links to view the examples we looked at in class:<br />
<a href="/im2420/css_demo/style_demo0.html" target="_blank">style_demo0.html</a><br />
<a href="/im2420/css_demo/style_demo1.html" target="_blank">style_demo1.html</a><br />
<a href="/im2420/css_demo/style_demo2.html" target="_blank">style_demo2.html</a><br />
<a href="/im2420/css_demo/style_demo3.html" target="_blank">style_demo3.html </a></p>
<p><strong>Reading assignment: </strong>Stylesheets are extremely powerful and critical to creating useable, consistent and accessible sites. Please take the time to read the following tutorial and checkout other resources so you can take advantage of these techniques in your  projects (<strong>note:</strong> using stylesheets is a requirement in all subsequent projects).<br />
<a href="http://www.webmonkey.com/2010/02/get_started_with_css_3/">Web Monkey Stylesheet Tutorial (Getting Started)</a><br />
<a href="http://www.w3schools.com/css/css_reference.asp">W3Schools CSS Reference</a><br />
<a href="http://www.brainjar.com/css/positioning/" target="_blank">Brainjar CSS Positioning Tutorial</a><br />
<a href="http://css.maxdesign.com.au/selectutorial/index.htm">Selectutorial &#8211; CSS selectors</a></p>
<p><strong>Session 2:</strong> By the end of lab today your calendars are due. A good set of guidelines to follow for web development are the SCANMIC Usability Criteria. Read the the reading assignment linked below to gain a full understanding of the SCANMIC principals. Here&#8217;s a quick outline of each of the criteria:</p>
<p>1. Screen Design (Space, choice of color, readability, image placement, etc.)<br />
2. Content (Who, What, Where, When)<br />
3. Accessibility (Fast Load Times, Browser Compatibility, Easy to Read)<br />
4. Navigation (Title Bar, Headers, Highlighted Navigation Links. Good navigation is like a roadmap, know where you are where you&#8217;ve been and where to go next.)<br />
5. Media Use (Graphics help keep users attention and can enhance usability, poor use slows down sites and distract users, Sound, Animation, and Video)<br />
6. Interactivity (e-commerce, feedback, discussions, chat, user customization)<br />
7. Consistency (Page size/page layout, navigation buttons/ images, menus, etc. text &#8211; font, font size and color).</p>
<p><strong>Assignment:</strong> As a first project utilizing CSS let&#8217;s create single page with the layout, images and type all formatted with CSS. Write the content for your web page as a critique of a website that you consider a bad design. Create a one or two page web based evaluation of the website outlining how your example site does not adequately apply the usability points above. The site you evaluate must be accessible over the internet and shouldn&#8217;t be too high profile or contain inappropriate materials. Make sure you include links to the pages that you&#8217;re evaluating in your web document also include images to illustrate your points. Links to your evaluations will be due on the drop off drive by Session 1, Week 4.</p>
<p>SCANMIC Evaluation Project Requirements<br />
1. Select a poorly designed &#8220;under the radar&#8221; website to evaluate.<br />
2. Write a paragraph or two of content for each of the seven SCANMIC points.<br />
3. Create anchors with navigation to each point from the top of the page.<br />
4. Use a linked or imported custom CSS document to format the type and images.<br />
5. Link your evaluation on the drop off drive by Session 1, Week 4.</p>
<p>Student Example:<br />
<a href="http://www.daneray.com/fundsl/scanmic/scanmic.html" target="_blank">http://www.daneray.com/fundsl/scanmic/scanmic.html</a></p>
<p>Reading Assignment (PDF):<br />
<a href="/im2420/wp0103.pdf">Identifying Web Usability Criteria</a></p>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2008/07/im2420_problem_set_2.zip'>Download: IM2420 Problem Set 2</a><br />
1. All IM2420 problems are due by the beginning of class on the next day that the class meets.<br />
2. Answers must be available via links on the OLS or comparable hosting and copied to the drop off drive.<br />
3. Solutions to each problem set will be given during demonstrations on the day that they are due.<br />
4. Grades will be collected during the solution demonstrations by an assigned classmate.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/writings/week-2-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Week 3</title>
		<link>http://aim.johnkeston.com/im2420/week-3-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-3-5/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 19:47:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-3-5/</guid>
		<description><![CDATA[Session 1: Today we will cover anchor links or &#8220;page jumps&#8221;, link targeting, and frames. Anchor links are used to jump to content within an HTML document. The most typical use is for navigating back to the top of a page where a lot of scrolling is required, or to sections within the content. &#60;a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we will cover anchor links or &#8220;page jumps&#8221;, link targeting, and frames. Anchor links are used to jump to content within an HTML document. The most typical use is for navigating back to the top of a page where a lot of scrolling is required, or to sections within the content.</p>
<pre class="brush: xml;">
&lt;a name=&quot;top&quot;&gt;This is the top of the page&lt;/a&gt;
.
.
.
&lt;a href=&quot;#top&quot;&gt;Go to the top of the page&lt;/a&gt;
</pre>
<p>Link targeting is most commonly used to open the content of a link in a new browser window or tab. This can be achieved by using the &#8220;target&#8221; attribute and setting the value to blank (i.e. <code>&lt;a href="http://www.external-site.com" target="_blank"&gt;External Link&lt;/a&gt;</code>). </p>
<p>Targeting is also required to load content into specific frames. I do not recommend the use of frames, but it is still important to understand how they work. <a href="http://www.useit.com/jakob/" target="_blank">Jakob Neilsen</a>, a prominent usability expert, cited &#8220;Using Frames&#8221; among the top ten mistakes in web design. However, there are rare instances of when frames (generally iframes are preferable) can help solve specific problems. This <a href="/im2420/frames/">example</a> shows how a basic frame set behaves. </p>
<p>Frame Attributes and Targeting:</p>
<pre class="brush: xml;">
&lt;frameset rows=&quot;100,*,100&quot; frameborder=&quot;yes,no&quot;&gt;
&lt;frame src=&quot;doc1.html&quot; name=&quot;top&quot; scrolling=&quot;yes,no,auto&quot;&gt;
&lt;frameset cols=&quot;*,*&quot; frameborder=&quot;yes,no&quot;&gt;
&lt;frame src=&quot;doc2.html&quot; name=&quot;middle_left&quot; scrolling=&quot;yes,no,auto&quot;&gt;
&lt;frame src=&quot;doc3.html&quot; name=&quot;middle_right&quot; scrolling=&quot;yes,no,auto&quot;&gt;
&lt;/frameset&gt;
&lt;frame src=&quot;doc4.html&quot; name=&quot;bottom&quot; scrolling=&quot;yes,no,auto&quot;&gt;
&lt;/frameset&gt;
</pre>
<p>Targeting Links:</p>
<pre class="brush: xml;">
&lt;a href=&quot;link.html&quot; target=&quot;name&quot;&gt;    - Opens in a specific frame
&lt;a href=&quot;link.html&quot; target=&quot;_blank&quot;&gt;  - Opens in a new window or tab
&lt;a href=&quot;link.html&quot; target=&quot;_self&quot;&gt;   - Opens within its own frame
&lt;a href=&quot;link.html&quot; target=&quot;_top&quot;&gt;    - Current browser window
&lt;a href=&quot;link.html&quot; target=&quot;_parent&quot;&gt; - Opens in its outer frameset
</pre>
<p><strong>Session 2:</strong> Now we are going to take a closer look at CSS positioning. CSS can be used to format type, but also be used to position and style <code>&lt;div&gt;</code> layers or containers. Just like HTML tables, CSS positioning can be used to arrange content within the browser. CSS positioning also offers some advantages over the traditional table method; primarily that the content can be separated from the layout to provide better site maintenance and accessibility.</p>
<p><a href="http://www.dmag.org.uk/resources/design_articles/cssvtablesforlayout.asp" target="_blank">CSS vs Tables for Layout</a><br />
<a href="http://www.csszengarden.com/" target="_blank">CSS Zen Garden</a></p>
<p>For the next exercise the content has been provided in a word document. It includes some information about cycling collected from wikipedia. It&#8217;s your job to design a set of six pages using the text content provided. Create a consistent design scheme that incorporates images, navigation and type treatments using CSS styles and positioning. The use of tables for this exercise is not allowed. The requirements and a link to the content follows:</p>
<p>CSS Positioning Exercise<br />
1. Organize the content provided into six pages<br />
2. Create a consistent design scheme<br />
3. Include navigation on each page to all the pages<br />
4. Incorporate images into each page<br />
5. Format type, images and the positioning of the content with CSS<br />
6. Each piece of content (including images) should be contained in a <code>&lt;div&gt;</code> layer/container<br />
7. Use of HTML tables is prohibited<br />
8. <strong>Due before class on Session 2 of Week 5</strong></p>
<p><a href="/im2420/cycling_content.doc">Content for the CSS Positioning Exercise</a><br />
<a href="http://www.maxdesign.com.au/presentation/page_layouts/">Sample CSS Page Layouts </a> &#8211; Step by step tutorial from <a href="http://www.maxdesign.com.au/">Max Design</a><br />
<a href="http://glish.com/css/home.asp" target="_blank">CSS Layout Techniques</a> &#8211; Great tutorial on &#8220;no tables&#8221; layout<br />
<a href="http://www.daneray.com/fundsl/cycling/cycling.html">Student Example of CSS Positioning Exercise</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-3-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Week 4</title>
		<link>http://aim.johnkeston.com/im2420/week-4-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-4-5/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 02:29:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-4-5/</guid>
		<description><![CDATA[Week 4 Reading: Chapter 8 &#8220;Working with Stylesheet Files&#8221; Chapter 17 &#8220;Forms&#8221; Session 1: Today we will look at a variety of CSS layouts starting with a simple two column, fluid layout with a banner that spans both columns (see code example below). We will also examine 3 column layouts and static width layouts. &#60;html [...]]]></description>
			<content:encoded><![CDATA[<p>Week 4 Reading:<br />
Chapter 8 &#8220;Working with Stylesheet Files&#8221;<br />
Chapter 17 &#8220;Forms&#8221;</p>
<p><strong>Session 1:</strong> Today we will look at a variety of CSS layouts starting with a simple two column, fluid layout with a banner that spans both columns (see code example below). We will also examine 3 column layouts and static width layouts.  </p>
<pre class="brush: xml;">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
&lt;title&gt;CSS Layout Example&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
#banner {
    margin: 10px auto 0px auto;
	width: 80%;
	border: #cccccc solid 1px;
	padding: 3px;
}
#container {
    padding: 3px;
    margin: 0px auto 0px auto;
	width: 80%;
	border: #cccccc solid;
	border-width: 0px 1px 1px 1px;
	clear: left;
	overflow: hidden;
}
#left_sidebar {
    padding: 3px;
	border: #cccccc solid;
	border-width: 0px 1px 0px 0px;
    float: left;
	width: 30%;
	margin-right: 5px;
}
#main_content {
    padding: 3px;
}
--&gt;
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id=&quot;banner&quot;&gt;Content for id &quot;banner&quot; Goes Here&lt;/div&gt;
&lt;div id=&quot;container&quot;&gt;
  &lt;div id=&quot;left_sidebar&quot;&gt;
  1. left_sidebar content&lt;br /&gt;
  2. left_sidebar content&lt;br /&gt;
  3. left_sidebar content&lt;br /&gt;
  4. left_sidebar content&lt;br /&gt;
  5. left_sidebar content&lt;br /&gt;
  6. left_sidebar content&lt;br /&gt;
  7. left_sidebar content
  &lt;/div&gt;
  &lt;div id=&quot;main_content&quot;&gt;
Praesent ut nulla. Sed tellus magna, tempor sit amet, pulvinar eu,
dignissim sit amet, purus. Phasellus ultrices massa sed metus. Nulla
scelerisque, metus a ultricies blandit, nisi arcu lacinia orci, et
posuere urna lacus bibendum turpis. Maecenas nibh nulla, cursus in,
pulvinar eu, dictum quis, neque. Curabitur ac purus a ipsum ultrices
consequat. Aliquam sed velit sit amet diam mattis aliquet.
&lt;br /&gt;&lt;br /&gt;
Pellentesque habitant morbi tristique senectus et netus et malesuada
fames ac turpis egestas. Sed bibendum molestie tortor. Sed ut nunc.
Maecenas purus felis, scelerisque id, egestas ut, pretium et, nulla.
Nunc nisl arcu, vulputate et, feugiat non, luctus eu, justo. Quisque
rhoncus. Mauris dapibus orci non dui. Mauris lobortis. Aenean
gravida pede a justo.
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Useful CSS navigation resource:<br />
<a href="http://css.maxdesign.com.au/listamatic/">http://css.maxdesign.com.au/listamatic/</a></p>
<p>Technique to create tiled backgrounds:<br />
<a href="http://psd.tutsplus.com/articles/how-a-turn-a-texture-into-a-seamlessly-tiled-background/">How to Turn a Texture into a Seamlessly Tiled Background</a></p>
<p><strong>Session 2:</strong> Today we will be covering the next assignment which involves creating an interactive XHTML form. There are several parts to this assignment that we will work on sequentially:</p>
<p>1. This week we will start by creating the form and layout using XHTML and CSS.<br />
2. Next we will use some simple Javascript to help validate the input from the user.<br />
3. Thirdly we will will use server side scripting to process the information and email it to ourselves.</p>
<p>Here&#8217;s a very basic tableless form formatted with CSS:</p>
<pre class="brush: xml;">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
&lt;title&gt;Form Demo&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
input {
	display: block;
	width: 150px;
	float: left;
	margin-bottom: 10px;
}
label {
	display: block;
	text-align: right;
	float: left;
	width: 80px;
	padding-right: 5px;
	margin-bottom: 10px;
}

br {
	clear: left;
}
--&gt;
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form action=&quot;mailto:test@email.com&quot; method=&quot;post&quot;&gt;
  &lt;label for=&quot;first_name&quot;&gt;First Name:&lt;/label&gt;
  &lt;input id=&quot;first_name&quot; name=&quot;first_name&quot; type=&quot;text&quot; /&gt;
  &lt;br /&gt;
  &lt;label for=&quot;last_name&quot;&gt;Last Name:&lt;/label&gt;
  &lt;input id=&quot;last_name&quot; name=&quot;last_name&quot; type=&quot;text&quot; /&gt;
  &lt;br /&gt;
  &lt;label for=&quot;email&quot;&gt;Email:&lt;/label&gt;
  &lt;input id=&quot;Email&quot; name=&quot;last_name&quot; type=&quot;text&quot; /&gt;
  &lt;br /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>The following resource illustrates how forms can be put into horizontal, vertical, columnar, and other formats using CSS with fieldset, label, and legend tags:</p>
<p><a href="http://www.themaninblue.com/experiment/InForm/" target="_blank" title="css form layouts">http://www.themaninblue.com/experiment/InForm/</a><br />
<a href="http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/" target="_blank">CSS-Based Forms: Modern Solutions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-4-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 5</title>
		<link>http://aim.johnkeston.com/im2420/week-5-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-5-5/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 23:16:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-5-5/</guid>
		<description><![CDATA[Session 1: Today we&#8217;ll be looking at a complete example of an XHTML form, similar to what is expected for the Interactive Form project. The form demo can be found here: Form Demo Once we have looked carefully at the form I will demonstrate how to use Javascript to pre-validate the input from the user. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Today we&#8217;ll be looking at a complete example of an XHTML form, similar to what is expected for the Interactive Form project. The form demo can be found here:</p>
<p><a href="/im2420/form_demo/">Form Demo</a></p>
<p>Once we have looked carefully at the form I will demonstrate how to use Javascript to pre-validate the input from the user. Javascript validation is a useful way to prevent users from leaving out required information from the form. However, server-side validation is also necessary in case Javascript has been disabled in the browser. </p>
<p>Reading:<br />
<a href="http://www.w3schools.com/js/js_intro.asp" target="_blank">Introduction to Javascript<br />
</a><br />
Also, if you are looking for more ideas on form layout. Have a look at this list hosted on <a href="http://www.smashingmagazine.com/" target="_blank">Smashing Magazine</a>:</p>
<p><a href="http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/" target="_blank">CSS-Based Forms: Modern Solutions</a></p>
<p><strong>Session 2:</strong> Today we will start looking at the server-side scripting necessary in order to make our Interactive Form project handle the data entered by users. The language we will be using to do this is PHP. One of the best resources for PHP is <a href="http://php.net" target="_blank">php.net</a>. </p>
<p><strong>Interactive Form Project Requirements:</strong><br />
Create an interactive form designed to collect information from users, validate that required information has been entered, process the information, and send an email to yourself containing the user input. The form must be designed well using XHTML and CSS positioning. No table layout is acceptable. </p>
<p>1. The form must contain a minimum of ten input fields.<br />
2. Use of text fields, check boxes, radio buttons, select lists, and text areas are required.<br />
3. Design the form with XHTML and CSS (no table layouts).<br />
4. Validate required fields with both Javascript and PHP.<br />
5. Process the user input on the server side using PHP.<br />
6. Automatically email the formatted data to your email address.<br />
<strong>7. Due on Session 2, Week 7.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-5-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Week 6</title>
		<link>http://aim.johnkeston.com/im2420/week-6-4/</link>
		<comments>http://aim.johnkeston.com/im2420/week-6-4/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 15:46:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-6-4/</guid>
		<description><![CDATA[Session 1: Today we will start developing the PHP required to process the information collected in our forms. PHP (PHP Hypertext Pre-processor) is a server-side scripting language that has been designed specifically for web application development. Using PHP will we collect the data from the form, validated any required fields, compile the data into a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we will start developing the PHP required to process the information collected in our forms. PHP (PHP Hypertext Pre-processor) is a server-side scripting language that has been designed specifically for web application development. Using PHP will we collect the data from the form, validated any required fields, compile the data into a message format, and email the results to ourselves. </p>
<p>In order to validate the information efficiently it is important to make sure that the form itself is a PHP document. PHP documents may be a combination of HTML, Javascript, CSS and PHP. In this case it is mostly XHTML, but take note of the PHP instructions dispersed throughout this example:  </p>
<pre class="brush: xml;">
&lt;form action=&quot;&lt;?php echo $_SERVER[PHP_SELF] ?&gt;&quot; method=&quot;post&quot; name=&quot;form_demo&quot; onSubmit=&quot;return validate_form('Form Demo');&quot;&gt;
  &lt;h3&gt;Personal Information&lt;/h3&gt;
  &lt;fieldset&gt;
  &lt;label class=&quot;field-first&quot;&gt;First Name*
  &lt;input type=&quot;text&quot; name=&quot;first_name&quot; value=&quot;&lt;?php echo $_POST[first_name] ?&gt;&quot; /&gt;
  &lt;/label&gt;
  &lt;label class=&quot;field-last&quot;&gt;Last Name*
  &lt;input type=&quot;text&quot; name=&quot;last_name&quot; value=&quot;&lt;?php echo $_POST[last_name] ?&gt;&quot; /&gt;
  &lt;/label&gt;
  &lt;label class=&quot;field-address&quot;&gt;Home Address*
  &lt;input type=&quot;text&quot; name=&quot;address&quot; value=&quot;&lt;?php echo $_POST[address] ?&gt;&quot; /&gt;
  &lt;/label&gt;
  &lt;label class=&quot;field-city&quot;&gt;City*
  &lt;input type=&quot;text&quot; name=&quot;city&quot; value=&quot;&lt;?php echo $_POST[city] ?&gt;&quot; /&gt;
  &lt;/label&gt;
  &lt;label class=&quot;field-state&quot;&gt;State*
  &lt;select name=&quot;state&quot;&gt;
    &lt;option value=&quot;MN&quot;&gt;MN&lt;/option&gt;
    &lt;option value=&quot;WI&quot;&gt;WI&lt;/option&gt;
    &lt;option value=&quot;IO&quot;&gt;IO&lt;/option&gt;
    &lt;option value=&quot;IL&quot;&gt;IL&lt;/option&gt;
    &lt;option value=&quot;MI&quot;&gt;MI&lt;/option&gt;
  &lt;/select&gt;
  &lt;/label&gt;
  &lt;label class=&quot;field-postal&quot;&gt;Postal Code*
  &lt;input type=&quot;text&quot; name=&quot;postal&quot; value=&quot;&lt;?php echo $_POST[postal] ?&gt;&quot; /&gt;
  &lt;/label&gt;
  &lt;br style=&quot;clear: left;&quot; /&gt;
  &lt;label class=&quot;field-email&quot;&gt;Email*
  &lt;input type=&quot;text&quot; name=&quot;email&quot; value=&quot;&lt;?php echo $_POST[email] ?&gt;&quot; /&gt;
  &lt;/label&gt;
  &lt;label class=&quot;field-phone&quot;&gt;Phone
  &lt;input type=&quot;text&quot; name=&quot;phone&quot; value=&quot;&lt;?php echo $_POST[phone] ?&gt;&quot; /&gt;
  &lt;/label&gt;
  &lt;/fieldset&gt;
  &lt;h3&gt;How often do you eat sushi?&lt;/h3&gt;
  &lt;fieldset&gt;
  &lt;label class=&quot;radioitem&quot; for=&quot;radiobutton1&quot;&gt;&lt;input id=&quot;radiobutton1&quot; type=&quot;radio&quot; name=&quot;sushi&quot; value=&quot;Raw fish? Gross!&quot; /&gt;Raw fish? Gross!&lt;/label&gt;
  &lt;label class=&quot;radioitem&quot; for=&quot;radiobutton2&quot;&gt;&lt;input id=&quot;radiobutton2&quot; type=&quot;radio&quot; name=&quot;sushi&quot; value=&quot;&quot; /&gt;Once in a while&lt;/label&gt;
  &lt;label class=&quot;radioitem&quot; for=&quot;radiobutton3&quot;&gt;&lt;input id=&quot;radiobutton3&quot; type=&quot;radio&quot; name=&quot;sushi&quot; value=&quot;&quot; /&gt;Every payday&lt;/label&gt;
  &lt;label class=&quot;radioitem&quot; for=&quot;radiobutton4&quot;&gt;&lt;input id=&quot;radiobutton4&quot; type=&quot;radio&quot; name=&quot;sushi&quot; value=&quot;&quot; /&gt;Breakfast, lunch, AND dinner&lt;/label&gt;
  &lt;/fieldset&gt;
  &lt;h3&gt;I have never tried...&lt;/h3&gt;
  &lt;fieldset&gt;
  &lt;label for=&quot;checkbox1&quot; class=&quot;field-checkbox&quot;&gt;&lt;input id=&quot;checkbox1&quot; type=&quot;checkbox&quot; name=&quot;never[]&quot; value=&quot;Spelunking&quot; /&gt;Spelunking&lt;/label&gt;
  &lt;label for=&quot;checkbox2&quot; class=&quot;field-checkbox&quot;&gt;&lt;input id=&quot;checkbox2&quot; type=&quot;checkbox&quot; name=&quot;never[]&quot; value=&quot;Exotic Travel&quot; /&gt;Exotic Travel&lt;/label&gt;
  &lt;label for=&quot;checkbox3&quot; class=&quot;field-checkbox&quot;&gt;&lt;input id=&quot;checkbox3&quot; type=&quot;checkbox&quot; name=&quot;never[]&quot; value=&quot;Scuba Diving&quot; /&gt;Scuba Diving&lt;/label&gt;
  &lt;/fieldset&gt;
  &lt;h3&gt;Comments&lt;/h3&gt;
  &lt;fieldset&gt;
  &lt;label class=&quot;field-routine&quot;&gt;What's your morning routine?&lt;br /&gt;&lt;textarea name=&quot;routine&quot; cols=&quot;40&quot; rows=&quot;5&quot;&gt;&lt;/textarea&gt;&lt;/label&gt;
  &lt;/fieldset&gt;
  &lt;h3&gt;Send&lt;/h3&gt;
  &lt;fieldset&gt;
  &lt;label&gt;Click &quot;Send&quot; to post your information&lt;/label&gt;
  &lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Send&quot; /&gt;
  &lt;input type=&quot;hidden&quot; name=&quot;submitted&quot; value=&quot;true&quot; /&gt;
  &lt;/fieldset&gt;
&lt;/form&gt;
</pre>
<p><strong>Session 2:</strong> The next step in completing our form project involves creating the logic necessary to process the data entered into the form by the user. The code I&#8217;ll be demonstrating today will perform several tasks using PHP. </p>
<p>1. We&#8217;ll use a PHP include in the form to perform the tasks<br />
2. The first tasks performed will be to validate the data entered into the form<br />
3. The data will be processed to prevent harmful header injection attacks<br />
4. An email will be sent containing all the processed data from the form entry<br />
5. Adequate feedback will be provided for the user as a response message</p>
<p>Take a look at this function that we will be using to validate form input for email addresses:</p>
<pre class="brush: php;">
	function is_valid_email($email) {
		$result = true;
		$pattern = '/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])' .
'(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i';
		if(!preg_match($pattern, $email)) {
			$result = false;
		}
		return $result;
	}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-6-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 7</title>
		<link>http://aim.johnkeston.com/im2420/week-7-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-7-5/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 15:14:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-7-5/</guid>
		<description><![CDATA[Session 1: Let&#8217;s finish working on our form projects today, so that we can move on to the next assignment that involves delving deeper into the possibilities of Javascript within web application design. We will be looking at several Javascript frameworks and then utilize JQuery to implement motion graphic elements into a web application. There [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1: </strong>Let&#8217;s finish working on our form projects today, so that we can move on to the next assignment that involves delving deeper into the possibilities of Javascript within web application design. We will be looking at several Javascript frameworks and then utilize <a href="http://jquery.com/" target="_blank">JQuery</a> to implement motion graphic elements into a web application. There are many advantages to using pre-existing Javascript frameworks, rather than writing new code from the ground up. </p>
<p>1. You are not reinventing the wheel<br />
2. Browser compatibility in built into most frameworks<br />
3. Large development and support communities surround the projects<br />
4. Security exploits are quickly found and resolved by the developer community</p>
<p>Reading Assignment:<br />
<a href="http://docs.jquery.com/How_jQuery_Works " target="_blank">How jQuery Works</a><br />
<a href="http://jqueryvsmootools.com/" target="_blank">jQuery vs. MooTools</a></p>
<p><strong>Sessione 2:</strong> Today we will be discussing the requirements for the next project as well as having a look at your form projects. </p>
<p>Javascript Framework Project:<br />
In this project we will be using a Javascript framework called JQuery to add functionality beyond what is possible with XHTML and CSS alone. Due on session 2 of week 8.</p>
<p>1. Use JQuery to animate hidden content into view<br />
2. Integrate JQuery animation techniques to text navigation<br />
3. Apply one or more tutorials from <a href="http://docs.jquery.com/Tutorials" target="_blank">http://docs.jquery.com/Tutorials</a> under one of the following headings:<br />
&nbsp; &nbsp; a) General Tutorials<br />
&nbsp; &nbsp; b) Manipulation, Attributes, and CSS<br />
&nbsp; &nbsp; c) Traversing and Selectors<br />
&nbsp; &nbsp; d) Using jQuery with&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-7-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Week 8</title>
		<link>http://aim.johnkeston.com/im2420/week-8-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-8-5/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 13:49:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-8-5/</guid>
		<description><![CDATA[Session 1: Today I&#8217;ll be demonstrating how to enable a Javascript framework within an HTML document. We will also start looking at how to apply functionality that exists in the framework to our web applications, including content animation behaviors as shown here: http://wayfarerweb.com/animate-example.php Session 2: After discussing the final project requirements we will look at [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today I&#8217;ll be demonstrating how to enable a Javascript framework within an HTML document. We will also start looking at how to apply functionality that exists in the framework to our web applications, including content <a href="http://wayfarerweb.com/animate-example.php">animation</a> behaviors as shown here:</p>
<p><a href="http://wayfarerweb.com/animate-example.php">http://wayfarerweb.com/animate-example.php</a></p>
<p><strong>Session 2:</strong> After discussing the final project requirements we will look at your JQuery exercises. </p>
<p><strong>Final Project Requirements:</strong><br />
The final project we are producing for this class involves creating a web application with a minimum of six content areas. The site content must be formatted using XHTML and CSS. It is also required that the site use behaviors included in the <a href="http://jquery.com">JQuery</a> Javascript framework.</p>
<p><strong>Final Web Application Content:</strong><br />
1. Portfolio sites are not acceptable<br />
2. Create something that might be suited for your portfolio<br />
3. Sites for organizations or businesses work well<br />
4. Informational sites are also acceptable (FAQ, etc.)</p>
<p><strong>Final Web Application Requirements:</strong><br />
1. You must include a minimum of 6 content areas<br />
2. All content must be formatted with XHTML and CSS<br />
3. It is required that the JQuery Javascript framework is used for animations, etc.<br />
4. Use JQuery to animate hidden content into view<br />
5. Apply one or more tutorials from <a href="http://docs.jquery.com/Tutorials" target="_blank">http://docs.jquery.com/Tutorials</a> under one of the following headings:<br />
&nbsp; &nbsp; a) General Tutorials<br />
&nbsp; &nbsp; b) Manipulation, Attributes, and CSS<br />
&nbsp; &nbsp; c) Traversing and Selectors<br />
&nbsp; &nbsp; d) Using jQuery with&#8230;<br />
&nbsp; &nbsp; e) Interface<br />
6. You may use Flash if necessary, however, all Flash sites are unacceptable for this project</p>
<p><strong>Final Web Application Evaluation:</strong><br />
1. All requirements must be met to achieve a passing grade on the final<br />
2. The SCANMIC criteria will be used to evaluate the design and functionality</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-8-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 9</title>
		<link>http://aim.johnkeston.com/im2420/week-9-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-9-5/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 21:44:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im2420/week-9-5/</guid>
		<description><![CDATA[Session 1: Let&#8217;s continue examining JQuery behaviors and how we can apply them to our web applications. Also, here are the requirements for the mockup milestone which are due before class starts on Session 2 of Week 9. Mockup Milestone: Two mockups of one page design are required for in class critiques on Session 2, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Let&#8217;s continue examining JQuery behaviors and how we can apply them to our web applications. Also, here are the requirements for the mockup milestone which are due before class starts on Session 2 of Week 9.</p>
<p><strong>Mockup Milestone:</strong><br />
Two mockups of one page design are required for in class critiques on Session 2, Week 9<br />
1. Create a minimum of two mockups of a single page that contains a typical amount of content<br />
2. No mockups of splash pages!<br />
3. Try changing navigation, typefaces, layout, color schemes and/or logos<br />
4. Acceptable formats include: jpg, gif, png, pdf, html<br />
5. Presenting your mockups in class earns you 5% of the points for the final project<br />
6. Place your mockups in a folder under your name on the drop off drive before class on session 2, week 9 (next session).</p>
<p><strong>Session 2:</strong> Today we will be reviewing everyone&#8217;s mockups in class. This is a group participation project that will last most of the session due to the size of the class. </p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-9-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 10</title>
		<link>http://aim.johnkeston.com/im2420/week-10-5/</link>
		<comments>http://aim.johnkeston.com/im2420/week-10-5/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 03:18:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/im1480/week-10-5/</guid>
		<description><![CDATA[Session 1: Today we&#8217;ll be discussing how things are going on your final projects, most of the day will be focused on individually answering questions and help with troubleshooting. Session 2: Let try to continue to get a better understanding of how jQuery works and apply it to our finals. Prototype Milestone Today I would [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we&#8217;ll be discussing how things are going on your final projects, most of the day will be focused on individually answering questions and help with troubleshooting.</p>
<p><strong>Session 2:</strong> Let try to continue to get a better understanding of how jQuery works and apply it to our finals.</p>
<p><strong>Prototype Milestone</strong><br />
Today I would like to see a working prototype of your final project.</p>
<p>1. Include working navigation to a minimum of three pages<br />
2. Demonstrate  the use of CSS in your layout<br />
3. Discuss how you intent to use Javascript behaviors in your site</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-10-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 11</title>
		<link>http://aim.johnkeston.com/im2420/week-11-6/</link>
		<comments>http://aim.johnkeston.com/im2420/week-11-6/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 15:17:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/?p=161</guid>
		<description><![CDATA[Session 1: Today we&#8217;ll critique your final projects. These critiques are a required component for you final project, so don&#8217;t miss the class. If you have an emergency and can&#8217;t be in class, let me know as soon as possible. If we have anytime after the critiques we can continue reviewing for the final exam. [...]]]></description>
			<content:encoded><![CDATA[<p>Session 1: Today we&#8217;ll critique your final projects. These critiques are a required component for you final project, so don&#8217;t miss the class. If you have an emergency and can&#8217;t be in class, let me know as soon as possible. If we have anytime after the critiques we can continue reviewing for the final exam.</p>
<p>Session 2: Take final exam. No late work will be accepted after this date. I hope you all enjoyed this class. Thanks, and have a good break!</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/week-11-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syllabus and Meeting Times</title>
		<link>http://aim.johnkeston.com/gd1400/syllabus-and-meeting-times-5/</link>
		<comments>http://aim.johnkeston.com/gd1400/syllabus-and-meeting-times-5/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 23:58:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400-computer-applications/syllabus-and-meeting-times-5/</guid>
		<description><![CDATA[GD1400 Computer Applications This course is designed to introduce students to the world of computers through lecture and laboratory sessions. Lectures will introduce the conceptual framework of computer systems and how they work, as well as implications of computer technology in our contemporary environment. The laboratory sessions will provide hand skills on a specific computer [...]]]></description>
			<content:encoded><![CDATA[<h3>GD1400 Computer Applications</h3>
<p><img src="http://johnkeston.com/images/video_wall1.jpg" class="img_fr" height="150" width="200" />This course is designed to introduce students to the world of computers through lecture and laboratory sessions.  Lectures will introduce the conceptual framework of computer systems and how they work, as well as implications of computer technology in our contemporary environment.  The laboratory sessions will provide hand skills on a specific computer system and will teach functions within a computer environment to complete projects.</p>
<p><strong>Instructor: John Keston</strong></p>
<p>Meeting Times and Location Section M2 (T/R):<br />
Session 1 / Session 2<br />
T/R 8am-11am (with appropriate breaks), Room 108, Pence Building. </p>
<p>Syllabus: <a href='http://aim.johnkeston.com/wp-content/uploads/2009/01/gd1400_computer_apps_su09_keston.doc'>GD1400 Computer Applications</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/syllabus-and-meeting-times-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 1</title>
		<link>http://aim.johnkeston.com/gd1400/week-1-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-1-6/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 01:17:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-1-6/</guid>
		<description><![CDATA[Session 1: Syllabus and introductions. What was your first computer? Session 2: Email. What it is? When did it start (1965)? How has it evolved? Email / Online etiquette. Email Assignment (5 points) Due Session 2, Week 1 1. Setup a Gmail account. 2. Forward your OLS email to Gmail. 3. Choose a theme. 4. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Syllabus and introductions. What was your first computer? </p>
<p><strong>Session 2:</strong> Email. What it is? When did it start (1965)? How has it evolved? Email / Online etiquette. </p>
<p><strong>Email Assignment (5 points)<br />
Due Session 2, Week 1</strong><br />
1. Setup a Gmail account.<br />
2. Forward your OLS email to Gmail.<br />
3. Choose a theme.<br />
4. Add contacts.<br />
5. Create labels.<br />
6. Create an email filter. </p>
<p>Reading: <a href="http://en.wikipedia.org/wiki/Email">http://en.wikipedia.org/wiki/Email</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-1-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 2</title>
		<link>http://aim.johnkeston.com/gd1400/week-2-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-2-6/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 01:27:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-2-6/</guid>
		<description><![CDATA[Session 1: Consumer based computer applications are no longer limited to out-of-the-box proprietary products from developers like Microsoft and Adobe. The contemporary software environment includes a vast landscape of Open Source applications like Mozilla Firefox and Open Office as well as web based applications like Flickr and Google Docs. For the first few exercises in [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Consumer based computer applications are no longer limited to out-of-the-box proprietary products from developers like Microsoft and Adobe. The contemporary software environment includes a vast landscape of Open Source applications like Mozilla Firefox and Open Office as well as web based applications like Flickr and Google Docs. For the first few exercises in this class we will be utilizing Gmail and Google Docs to demonstrate how typical computing tasks can be solved via free to use web applications.</p>
<p><strong>Sharing Part 1 – Email and Contacts (5 points)</strong></p>
<p>Setup a Gmail account and add the email address jck362@gmail.com to your contacts. Send an email to jck362@gmail.com so I can add you as a contact as well. Add two or three other contacts as well. Use the OLS preferences page (http://stu.aii.edu) to forward your OLS emails to your Gmail account. Choose one of the available themes for your Gmail account. Create one or more labels and filter specific messages into your filter.<br />
<strong><br />
Sharing Part 2 – Text Documents (10 points)</strong></p>
<p>Using Google Docs create a document that contains definitions for all of the computer terms in the assignment sheet. Use a search engine like Wikipedia, Google, or Yahoo to find short and concise definitions. Paste the definitions into your document. Once it is complete. Share the document with me (jck362@gmail.com) using the sharing option in Google Docs.</p>
<p>For complete instructions download the following word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/01/gd1400_sharing_exercise.doc' title='GD1400 Sharing Exercise (15 points)'>GD1400 Sharing Exercise (15 points)</a></p>
<p><strong>Session 2:</strong> Spreadsheet applications have been available since the dawn of the personal computer. VisiCalc (the Apple IIs killer app) is considered the first example of commercially available spreadsheet software for personal computers. Spreadsheets may contain rows and columns of data, or lists of contact information. It might include formulas to make calculations such as averages, or sums. They are often used for financial information because one change in the document can automatically trigger a recalculation of all the formulas with it. Other uses include grading students, compiling survey figures, sales data, invoices, budget plans, and expense reports. A recent development is the emergence of web-based spreadsheets, which allow for strong multi-user collaboration features.</p>
<p>For complete instructions download the following word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/01/gd1400_spreadsheet_exercise.doc' title='GD1400 Spreadsheet Exercise (15 points)'>GD1400 Spreadsheet Exercise (15 points)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-2-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 3</title>
		<link>http://aim.johnkeston.com/gd1400/week-3-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-3-6/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 01:41:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/imd_topics/week-3-6/</guid>
		<description><![CDATA[Session 1: Today we will be finishing Part 2 of the spreadsheet assignment. Secondly, we will discuss the next assignment the Warhol project (details in class). Scanning. Bring a three dimensional item to scan in the flat bed scanners. Session 2: Intro to Photoshop filters. Image manipulation has become commonplace in our industry and society [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we will be finishing Part 2 of the spreadsheet assignment. Secondly, we will discuss the next assignment the Warhol project (details in class). Scanning. Bring a three dimensional item to scan in the flat bed scanners. </p>
<p><strong>Session 2:</strong> Intro to Photoshop filters. </p>
<p><img src="http://aim.johnkeston.com/images/warhol_marilyn_1967.jpg" alt="Marilyn" /></p>
<p>Image manipulation has become commonplace in our industry and society in general. Print, television and, interactive media all rely on techniques made possible with image processing applications like Photoshop. Photoshop is intended for processing bitmap images versus another type of imagery called vectors that we will be examining as well. In this assignment we will be using filters to create a grid of four filtered images in the spirit of Andy Warhol&#8217;s Marilyn portraits. </p>
<p><strong>Warhol Assignment (15 points)<br />
Due Session 2, Week 4</strong></p>
<p>For complete instructions download the following word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/01/gd1400_warhol_project1.doc' title='GD1400 Warhol Assignment (Photoshop Filters)'>GD1400 Warhol Assignment (Photoshop Filters)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-3-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 4</title>
		<link>http://aim.johnkeston.com/gd1400/week-4-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-4-6/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 08:28:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-4-6/</guid>
		<description><![CDATA[Session 1: Processing photographic imagery is used in a wide variety tasks. Print advertising, packaging, promotional materials, presentations, and fine art all take advantage of techniques made possible with photo processing software. Using processed photographic images in presentations is an important skill regardless of ones chosen professional field. The photo manipulation and slideshow project provides [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Processing photographic imagery is used in a wide variety tasks. Print advertising, packaging, promotional materials, presentations, and fine art all take advantage of techniques made possible with photo processing software. Using processed photographic images in presentations is an important skill regardless of ones chosen professional field. The photo manipulation and slideshow project provides an opportunity to learn several ways to process photos and include them in a presentation with titles, textual captions, and transitions. </p>
<p>Use a digital camera to shoot a minimum of twelve photographs. Choose a theme for your photos like buildings, people, animals, objects, or textures. Be creative. Shoot photos in both portrait and landscape modes. Process each photograph in Photoshop to prepare the images for use in a presentation. Crop and resize all you photo and use at least one example of each of the following techniques: convert to black and white (grayscale), convert to duotone (i.e. sepia tone), brightness/contrast, hue/saturation, and invert. </p>
<p>For complete instructions download the following Word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/02/gd1400_photo_manip_slides.doc' title='Photo Manipulation and Slideshow Presentation'>Photo Manipulation and Slideshow Presentation</a></p>
<p><strong>Session 2:</strong> Use PowerPoint to create a twelve-panel slideshow presentation of your processed photographs. Each slide must include the photo, a title for the photo and a short description. Experiment with different layout techniques for each slide. Apply transitions between slides to learn how to apply transitions, and then never do it again. Transitions should be used sparingly so as not to distract your audience. </p>
<p>To keep things in perspective, the following article explains the dangers of using PowerPoint, or similar applications for presentations.<br />
<a href="http://www.wired.com/wired/archive/11.09/ppt2.html">PowerPoint Is Evil By Edward Tufte</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-4-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 5</title>
		<link>http://aim.johnkeston.com/gd1400/week-5-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-5-6/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 17:49:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-5-6/</guid>
		<description><![CDATA[Session 1: Flash is an extremely versatile application, which allows users to create an infinite array of applications from something as simple as motion graphics to as complex as fully functional, arcade style games. Our next assignment will be to create a bouncing ball in Flash. An example of a bouncing ball made in Flash [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Flash is an extremely versatile application, which allows users to create an infinite array of applications from something as simple as motion graphics to as complex as fully functional, arcade style games. Our next assignment will be to create a bouncing ball in Flash. An example of a bouncing ball made in Flash is available here: </p>
<p><a href="http://aim.johnkeston.com/im1480/bounce.swf. ">Bouncing Ball Example</a></p>
<p>For complete instructions download the following Word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/02/gd1400_flash_bouncing_ball.doc' title='Bouncing Ball Assignment (Adobe Flash)'>Bouncing Ball Assignment (Adobe Flash)</a></p>
<p><strong>Session 2:</strong> Today I&#8217;ll be demonstrating exactly how to create a bouncing ball in Flash. To create the bouncing ball, start a new document in Flash. Select the oval tool and draw a circle. To constrain your ball to a perfect circle, hold down the shift key while dragging. You can also choose to select a fill color or gradient to make your ball a little more fancy. After your satisfied, from the Insert menu choose &#8220;Convert to Symbol&#8221;. Make sure you name it and select graphic as the type.</p>
<p>Insert a key frame at frame 10 and another at frame 20 (for a slower bounce try inserting the key frames at 20 and 40). Select the middle key frame and shift+drag the ball to the bottom of the scene. Here you can also adjust the height property of the ball so that it appears to squash down a bit as it strikes the floor.</p>
<p>Now select the 1st key frame and in the properties panel choose &#8220;motion&#8221; under &#8220;Tween&#8221; and set the ease to -100. On the middle turn on the motion tween as well and set the ease equal to 100. Hit ctrl+enter to watch the animated ball bounce. When you’re finished please email a copy your assignment to jck362@gmail.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-5-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 6</title>
		<link>http://aim.johnkeston.com/gd1400/week-6-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-6-6/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 04:31:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-6-6/</guid>
		<description><![CDATA[Session 1: Today we are going to continue experimenting with Flash. Specifically we will be learning how to apply shape tweens. Shape tweens can be used to morph objects from one shape to another (i.e. a circle to a square). This technique is especially useful for animation. Another technique you can use in Flash is [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we are going to continue experimenting with Flash. Specifically we will be learning how to apply shape tweens. Shape tweens can be used to morph objects from one shape to another (i.e. a circle to a square). This technique is especially useful for animation. Another technique you can use in Flash is to create unique logos by shape tweening between characters in a typeface. This will allow you to create unique logos that would otherwise be very difficult to create. Here&#8217;s an example logo that I created using this technique. </p>
<p><a href="http://unearthedmusic.com" target="_blank"><img src='http://aim.johnkeston.com/wp-content/uploads/2009/02/uem_logo.png' alt='uem_logo.png' style="border: none;" /></a></p>
<p>For complete instructions download the following Word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/02/gd1400_flash_logo1.doc' title='Shape Tween Logo Assignment (Adobe Flash)'>Shape Tween Logo Assignment (Adobe Flash)</a></p>
<p><strong>Session 2:</strong> Adobe Illustrator can be used for more deliberate techniques. The principal difference between Photoshop and Illustrator is the concept of bitmap versus vector graphics. Vector graphics have a distinct advantage of bitmap images for logo designs because of the ability to print or display at any size without seeing any loss of detail, like you would with a bitmap image. </p>
<p>The next assignment involves creating a set of five vector based logos using Illustrator. For your first logo, use the same technique we used for the Flash logo, then save if from Flash as an Illustrator file and place it in your project. For the rest of the logos make them out of a group of letters and use a different font for each logo. Place all five logos in the same document one after another and align them on the page. Experiment with the kerning, tracking, and type treatments. Use transform and drawing tools to manipulate several of the logos. Use the create outlines function to convert the type into vector shapes. Ungroup your shape to manipulate individual letters using the white arrow tool, scale, and transform tool. </p>
<p><img src='http://aim.johnkeston.com/wp-content/uploads/2009/02/picture-2.png' alt='A Variety of Type Treatments and Transformations Using Illustrator' /></p>
<p>For complete instructions download the following Word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/02/gd1400_illustrator_logos.doc' title='Illustrator Logos Project'>Illustrator Logos Project</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-6-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 7</title>
		<link>http://aim.johnkeston.com/gd1400/week-7-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-7-6/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 01:59:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-7-6/</guid>
		<description><![CDATA[Session 1: School closed. Session 2: Today we will start working on our first project that involves using the web server space that we all have available through the school on the OLS system. The Internet is a vast and complex network that includes the World Wide Web. A simple way to imagine the Web [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> School closed.</p>
<p><strong>Session 2:</strong> Today we will start working on our first project that involves using the web server space that we all have available through the school on the <a href="http://stu.aii.edu">OLS</a> system. The Internet is a vast and complex network that includes the World Wide Web. A simple way to imagine the Web is as a delivery platform. Postal services deliver physical packages to geographical locations. The Web delivers electronic packages to and from computers all over the world. These data packages are reassembled into files made up of text, images, video, sound, and interactive content. In the next project we will make some of our own content available on a web page including a thumbnail link to a full sized image, text, and links.</p>
<p>For complete instructions download the following Word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/02/simple_web_page.doc' title='Assignment 9: Simple Web Page'>Assignment 9: Simple Web Page</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-7-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 8</title>
		<link>http://aim.johnkeston.com/gd1400/week-8-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-8-6/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 06:57:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-8-6/</guid>
		<description><![CDATA[Session 1: Today we will start working on our final project. For the final project we will be building a web site using Dreamweaver as an authoring tool. This will be the most complicated and difficult project for the class, therefore we will build the project in stages. Each stage will include a weekly, required [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today we will start working on our final project. For the final project we will be building a web site using Dreamweaver as an authoring tool. This will be the most complicated and difficult project for the class, therefore we will build the project in stages. Each stage will include a weekly, required project milestone. For each milestone you will be expected to demonstrate that you have completed specific tasks leading up to the completion of the project by week 11, Session 1.</p>
<p>For complete instructions download the following word document:<br />
<a href='http://aim.johnkeston.com/wp-content/uploads/2009/03/final_web_site.doc' title='Assignment 10: Final Web Site'>Assignment 10: Final Web Site</a></p>
<p><strong>Session 2:</strong> Today I&#8217;ll be demonstrating how to design a web page using tables. As we begin designing the final web site, keep in mind areas of the screen needed for design elements, navigation, and content. </p>
<p><strong>Final Project Milestone 1:</strong><br />
1. Demonstrate how to set document properties in Dreamweaver<br />
2. Show an example of a table centered with content and background colors<br />
3. All text content must be set to a typeface other than the default</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-8-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 9</title>
		<link>http://aim.johnkeston.com/gd1400/week-9-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-9-6/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 16:23:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-9-6/</guid>
		<description><![CDATA[Session 1: Today I&#8217;ll be demonstrating some techniques in Dreamweaver to help you setup the navigation links on your final website project. I also show you how to produce the &#8220;Photos&#8221; page where you are expected to have a minimum of four thumbnails organized on the same page. I suggest that you make each thumbnail [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today I&#8217;ll be demonstrating some techniques in Dreamweaver to help you setup the navigation links on your final website project. I also show you how to produce the &#8220;Photos&#8221; page where you are expected to have a minimum of four thumbnails organized on the same page. I suggest that you make each thumbnail exactly the same dimensions. This means you may have to crop your images for the thumbnail, but the full size versions can maintain the original aspect ratio. </p>
<p><strong>Session 2:</strong> Today I&#8217;ll be reviewing how to upload your content to the OLS server. We will also be reviewing your projects to make sure you are meeting the second milestone requirements (listed below).</p>
<p><strong>Final Project Milestone 2:</strong><br />
1. Have a minimum of two pages completed<br />
2. Be prepared to illustrate your navigation functioning on two pages<br />
3. Show two examples of your content uploaded to your OLS account</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-9-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 10</title>
		<link>http://aim.johnkeston.com/gd1400/week-10-6/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-10-6/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 05:03:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-10-6/</guid>
		<description><![CDATA[Session 1: Today I&#8217;ll be demonstrating how to present a Flash animation in a web page. I will also be showing some more techniques for improving the overall design of your final websites. For example, I&#8217;ll show how to make the larger content that expands when clicking on thumbnail images into the same design format [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Today I&#8217;ll be demonstrating how to present a Flash animation in a web page. I will also be showing some more techniques for improving the overall design of your final websites. For example, I&#8217;ll show how to make the larger content that expands when clicking on thumbnail images into the same design format as the rest of your pages. We will also make a list of things that you can do to improve your site</p>
<p><strong>Session 2:</strong> Today is the third and last of our project milestones. It&#8217;s also the last opportunity to get feedback on your final project. For milestone number three we are expecting you to have all five of your pages uploaded to the OLS as well as your navigation and Flash animation all working properly. </p>
<p><strong>Project Milestone 3:</strong><br />
1. It&#8217;s recommended that you have you site completed and ready for final feedback<br />
2. All five pages of your final website must be uploaded to the OLS<br />
3. Navigation must complete and work from each page to every other page<br />
4. The Flash bouncing ball animation must function properly on the Animation page</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-10-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week 11</title>
		<link>http://aim.johnkeston.com/gd1400/week-11-5/</link>
		<comments>http://aim.johnkeston.com/gd1400/week-11-5/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 17:41:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[GD1400 Computer Applications]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/gd1400/week-11-5/</guid>
		<description><![CDATA[Session 1: Final Web Site presentations. Session 2: Final Web Site presentations continued.]]></description>
			<content:encoded><![CDATA[<p><strong>Session 1:</strong> Final Web Site presentations.</p>
<p><strong>Session 2:</strong> Final Web Site presentations continued.</p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/gd1400/week-11-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Examples from Class</title>
		<link>http://aim.johnkeston.com/im2420/examples-from-class/</link>
		<comments>http://aim.johnkeston.com/im2420/examples-from-class/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 21:29:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[IM2420 Fundamentals of Scripting Languages]]></category>

		<guid isPermaLink="false">http://aim.johnkeston.com/?p=190</guid>
		<description><![CDATA[Here are archives of the examples shown in class that were stored on the WDIM drive during the course. IM2420 Fall Quarter 2009 Examples]]></description>
			<content:encoded><![CDATA[<p>Here are archives of the examples shown in class that were stored on the WDIM drive during the course. </p>
<p><a href='http://aim.johnkeston.com/wp-content/uploads/2009/09/IM2420_examples.zip'>IM2420 Fall Quarter 2009 Examples</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aim.johnkeston.com/im2420/examples-from-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
