<?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>Innovative Interactivity (II) &#187; Programming tips</title>
	<atom:link href="http://innovativeinteractivity.com/category/programming-tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://innovativeinteractivity.com</link>
	<description>a digital watering hole for multimedia enthusiasts</description>
	<lastBuildDate>Mon, 20 May 2013 15:50:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>A primer on NoSQL technologies</title>
		<link>http://innovativeinteractivity.com/2012/01/03/a-primer-on-nosql-technologies/</link>
		<comments>http://innovativeinteractivity.com/2012/01/03/a-primer-on-nosql-technologies/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 04:29:20 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Programming tips]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=11334</guid>
		<description><![CDATA[I recently finished the course "Large Scale Databases for Social Networking Systems" and learned a great deal about Google's BigTable, Amazon's SimpleDB and Dynamo, Facebook's Cassandra, Twitter's  HBase, LinkedIn's Voldemort, and other open source technologies including Couchbase and MongoDB, among others. For the tech journalists out there, media companies are also utilizing NoSQL technology, including The Guardian and The New York Times, just to name a few. I think it's extremely important to understand the basic strengths and weaknesses of this up-and-coming technology and when to choose one system over another. I never envision myself programming in them, but I do hope that one day I can make strategic decisions regarding a company's NoSQL implementation. Regardless if you are a programmer or a manager, hopefully my high-level overview of NoSQL and the major players will be helpful.]]></description>
				<content:encoded><![CDATA[<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/latest/nosql_header.jpg" alt="NoSQL technologies" /></a></div>
<p>I recently finished the course &#8220;<a href="http://sils.unc.edu/courses/special-topics/#163">Large Scale Databases for Social Networking Systems</a>&#8221; and learned a great deal about Google&#8217;s BigTable, Amazon&#8217;s SimpleDB and Dynamo, Facebook&#8217;s Cassandra, Twitter&#8217;s  HBase, LinkedIn&#8217;s Voldemort, and other open source technologies including Couchbase and MongoDB, among others. For the tech journalists out there, media companies are also utilizing NoSQL technology, including The Guardian and The New York Times, just to name a few. </p>
<p>I think it&#8217;s extremely important to understand the basic strengths and weaknesses of this up-and-coming technology and when to choose one system over another. I never envision myself programming in them, but I do hope that one day I can make strategic decisions regarding a company&#8217;s NoSQL implementation. Regardless if you are a programmer or a manager, hopefully my high-level overview of NoSQL and the major players below will be helpful.</p>
<h3>Background</h3>
<p>Up until now, most sites were powered with relational databases (aka RDBMS). It links data together by relationships, such as person A attends course B taught by professor C. One of the main reasons to use RDBMS is for its ACID properties, namely atomicity, consistency, isolation and durability. In other words, if you are processing sensitive information such as credit card numbers, you need ACID guarantees.</p>
<p>Around 2009, a non-relational technology known as NoSQL came on the scene (the nerds out there can smirk about the true NoSQL technology from the early 90s and why the former should really be known as NoRel). Regardless, there were a number of different reasons to embrace NoSQL: money, speed, growth/scalability, availability, fault tolerance, distribution, etc. ACID properties are costly to deploy and relational databases are often times too complex (and too small!) for many needs. For instance, it is not mandatory that a Facebook profile page is up-to-date and consistent to all viewers at every second. Thus, NoSQL allows for properties such as lazy synchronization and eventual consistency, which greatly increases the speed of the site. The saying goes if your data is complex but process is simple, use SQL. If your data is simple and your process is complex, use NoSQL.</p>
<div class="captionleft"><a href="http://blog.beany.co.kr/archives/275"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/posts/cap_theorem.jpg" alt="cap theorem" /></a>
<p>Image source: blog.beany.co.kr</p>
</div>
<p>Databases can only have two of three guarantees, known as the CAP Theorem: consistency, availability, and partition-tolerance. If you choose AP (such as Facebook&#8217;s Cassandra), you lose the guarantee that each client always has the same view of the data. On the other hand, if you choose CP (such as Google&#8217;s BigTable), you lose the guarantee that clients can always read and write. Lastly, RDBMS such as MySQL and Postgres lay on the CA side since they forgo partition-tolerance.</p>
<p>There are three main types of NoSQL databases: column-stores (ex. Google&#8217;s BigTable), document-stores (ex. MongoDB), and key/value-stores (ex. Amazon&#8217;s Dynamo). If you are interested in doing a deep dive into each type of database and more into NoSQL in general, I highly recommend you read <a href="http://www.christof-strauch.de/nosqldbs.pdf">Christof Strach&#8217;s NoSQL paper</a>.</p>
<h3>Google&#8217;s BigTable</h3>
<p>Google decided to build its own proprietary technology after realizing that no commercial system met its needs. They launched BigTable in early 2005 and it is used for multiple purposes: search, history versioning, map technology, analytics, etc. It is highly distributed across thousands of processing systems and highly compressed. There are three main components to the database: scheduler, filesystem, and lock service. The scheduler is called the Google WorkQueue and processes which reads and writes happen when. The Google File System has a master and three chunk servers that are responsible for replicating, reading and writing data. The Chubby lock service does coarse-grain locking during reads and writes to prevent overwrites. As a neat factoid, Chubby receives 2,000 lock requests each second. </p>
<p>Google uses what are known as bloom filters to find a word in a webpage instead of a traditional hash or index due to massive size issues. It also built a patented technology called MapReduce aka &#8220;scatter and gather&#8221; to retrieve web pages. First, it looks for everything relevant (map), then organizes them and returns in a list (reduce).</p>
<p>One particularly fascinating component (in my opinion) is that the database is query-oriented, meaning that it is organized to facilitate quick querying. That makes sense for Google, obviously, but did you know that Google inverts a URL when searching/retrieving? For instance, it is much easier to search &#8220;com.innovativeinteractivity.www/about.html&#8221; than &#8220;www.innovativeinteractivity.com/about.html&#8221; because Google first searches for all websites with a &#8220;.com&#8221; extension, then within the domain &#8220;innovativeinteractivity&#8221; to quickly retrieve the file named &#8220;about.&#8221;</p>
<p>If you are interested in taking a deep dive into BigTable&#8217;s infrastructure, make sure to read <a href="http://www.google.com/url?sa=t&#038;rct=j&#038;q=&#038;esrc=s&#038;source=web&#038;cd=2&#038;ved=0CDgQFjAB&#038;url=http%3A%2F%2Fresearch.google.com%2Farchive%2Fbigtable-osdi06.pdf&#038;ei=QWECT77jE8HAtgfdn8WPCw&#038;usg=AFQjCNHWt7UiCw7feq5ygj2Y5pWeQLPZ9Q">&#8220;Bigtable: A Distributed Storage System For Structured Data.&#8221;</a></p>
<h3>Amazon&#8217;s SimpleDB and Dynamo</h3>
<p>Amazon has a slew of database technologies: SimpleDB refers to their external database that users can run queries on their own content in Amazon&#8217;s cloud and pay on a per-GB-download basis; Dynamo is their internal database for their storefront; EC2 (Elastic Compute Cloud) is their cloud computing initiative; S3 (Simple Storage Service) is their external file storage system, similar to Dropbox.</p>
<p>SimpleDB launched in 2006 and initially they charged for data input but subsequently over charged for usage and had to reduce its prices. Now it only charges for data download and is used more for short-term analysis and storage rather than long-term archiving. To learn more about SimpleDB, read the <a href="http://awsdocs.s3.amazonaws.com/SDB/latest/sdb-dg.pdf">Developer Guide</a>.</p>
<p>Dynamo is Amazon&#8217;s highly available key/value-store database for its storefront and S3. Interestingly enough, since it&#8217;s on the AP side of the CAP theorem, it gives up consistency. Did you ever realize that you might not be seeing the most recent version of content in Amazon? That was news to me! For some jaw-dropping stats: Dynamo handles 3 million checkouts a day; 100,000s of concurrent transactions; 10s of millions of customers; 10s of thousands of servers. To learn more about Dynamo, read <a href="http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf">&#8220;Dynamo: Amazonâ€™s Highly Available Key-value Store&#8221;</a>.</p>
<h3>Facebook&#8217;s Cassandra</h3>
<p>Cassandra is a mix of Google&#8217;s BigTable and Amazon&#8217;s Dynamo. At a high-level, Cassandra takes a logical view of the data model from BigTable with column families, and takes partitioning, replication, gossip protocol model from Dynamo. Following details key similarities and differences between the three:</p>
<p>Cassandra is AP, thus forgoing consistency, whereas BigTable is CP. Cassandra relies on its local filesystem, pulling the majority of data from disk, versus BigTableâ€™s GFS. Cassandra is open source whereas BigTable is proprietary.  </p>
<p>Cassandra and Dynamo are both AP, but Cassandra is open source and Dynamo is proprietary. Cassandra is a column-store whereas Dynamo is a key/value-store. Data within Cassandra has structure whereas data within Dynamo is blob format. Cassandra has many BigTable properties such as timestamps, versus Dynamo, which has vector clocks.</p>
<p>To learn the details of Cassandra, make sure to read <a href="http://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf">&#8220;Cassandra &#8211; A Decentralized Structured Storage System.&#8221;</a></p>
<h3>Twitter&#8217;s HBase</h3>
<p>HBase is the open source version of Googleâ€™s proprietary system BigTable. HBase and BigTable are both column-stores and CP on the CAP theorem, so they give up availability. HBase uses ZooKeeper as its lock service (replacing Google&#8217;s Chubby) and HDFS as its file service (replacing the Google File System, GFS), but it does provide support for MapReduce (the open source version is called Apache Hadoop). Twitter uses HBase for its 7TB/day incoming data, analytics and people search, among others. (It also uses a multitude of other technologies, such as Cassandra and MySQL.) Yahoo, StumbleUpon, Meetup, Adobe and Mozilla also use HBase. For a deep dive into HBase, check out <a href="http://www.google.com/url?sa=t&#038;rct=j&#038;q=&#038;esrc=s&#038;source=web&#038;cd=5&#038;ved=0CD4QFjAE&#038;url=http%3A%2F%2Fstatic.last.fm%2Fjohan%2Fnosql-20090611%2Fhbase_nosql.pdf&#038;ei=lHICT-TjOtGCtgf9urHPBg&#038;usg=AFQjCNHaB90izrXoi8DHy-RKxYwx6xczgA">Ryan Rawson&#8217;s presentation</a> and <a href="http://www.slideshare.net/amansk/hbase-hadoop-day-seattle-4987041">Amandeep Khurana&#8217;s presentation</a>. </p>
<h3>LinkedIn&#8217;s Voldemort</h3>
<p>Yes, this database is named after the Harry Potter villain. Now that we have that factoid out of the way, Voldemort is an open source (as of January 2009) key-value storage system. LinkedIn uses it for its data-intensive features such as its search, recommendation engine, people you may know feature, who&#8217;s viewed my profile feature, etc. Similar to Dynamo, it forgoes consistency by being on the AP side of the CAP theorem. As Jay Kreps notes, &#8220;Our experience with the system so far has been quite good. We were able to move applications that needed to handle hundreds of millions of reads and writes per day from over 400ms to under 10ms while simultaneously increasing the amount of data we store.&#8221; Other Voldemort users include eHarmony, Gilt Groupe and Nokia. </p>
<p>To learn more about Voldemort, read <a href="http://blog.linkedin.com/2009/03/20/project-voldemort-scaling-simple-storage-at-linkedin/">&#8220;Project Voldemort: Scaling Simple Storage at LinkedIn&#8221;</a> and <a href="http://blog.linkedin.com/2009/04/01/project-voldemort-part-ii-how-it-works/">&#8220;Project Voldemort (Part II): How it works.&#8221;</a></p>
<h3>Couchbase and MongoDB</h3>
<p>There are many other NoSQL technologies including Couchbase and MongoDB. Couchbase is a newly formed company from the merger of NoSQL technologies Membase and CouchDB. To learn more about Couchbase I encourage you to <a href="http://www.slideshare.net/tracynboyer/couchbase-10038778">view my slides</a> from the presentation I gave on the merger. Couchbase will remain open source and resides on the CA side. Customers include Apple, AOL, BBC, The Knot, Zynga and Vodofone, among others.</p>
<p>MongoDB is an open source document-oriented database that is largely known for its speed (2-10x faster than MySQL and ~50x faster than CouchDB, according to <a href="http://www.idiotsabound.com/did-i-mention-mongodb-is-fast-way-to-go-mongo">one source</a>). Customers include Disney, Craig&#8217;s List, Foursquare, Shutterfly, Forbes, Bit.ly, The New York Times, and Business Insider, <a href="http://www.mongodb.org/display/DOCS/Production+Deployments">among many others</a>.</p>
<hr />
<p>Big thanks to my professor <a href="https://www.irods.org/index.php/Arcot_Rajasekar">Arcot Rajasekar</a> for teaching me all of the above and more!</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2012/01/03/a-primer-on-nosql-technologies/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2012/01/03/a-primer-on-nosql-technologies/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Move over Dipity! AVE, a new interactive timeline editor to put on your radar</title>
		<link>http://innovativeinteractivity.com/2011/09/20/ave-abc-visualization-editor/</link>
		<comments>http://innovativeinteractivity.com/2011/09/20/ave-abc-visualization-editor/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 19:11:10 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Interactive examples]]></category>
		<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Australian Broadcasting Corporation]]></category>
		<category><![CDATA[AVE]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[Sam Doust]]></category>
		<category><![CDATA[timeline]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[visualization editor]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=10919</guid>
		<description><![CDATA[All I can say is IT'S ABOUT TIME! I'm excited to introduce you to "AVE" (ABC Visualisation Editor). As I envision it, this may very well do for timelines what Soundslides did for audio slideshows. Read my interview with Sam Doust, Creative Director of Strategic Development at Australian Broadcasting Corporation, to learn more about this tool and when you can expect to test it out for yourself.]]></description>
				<content:encoded><![CDATA[<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/posts/ave_post.jpg" alt="McLuhan Project by ABC" />
<p>McLuhan Project by ABC</p>
</div>
<p>All I can say is IT&#8217;S ABOUT TIME! I&#8217;m excited to introduce you to &#8220;AVE&#8221; (ABC Visualisation Editor). As I envision it, this may very well do for timelines what Soundslides did for audio slideshows. Read my interview with <a href="https://twitter.com/#!/samdoust">Sam Doust</a>, Creative Director of Strategic Development at Australian Broadcasting Corporation, to learn more about this tool and when you can expect to test it out for yourself.</p>
<p>For a little background: I remember coding numerous clunky timelines in Actionscript back in 2008 and continuously thought how major improvements could and should be made to timeline interfaces. Along came <a href="http://www.dipity.com/">Dipity</a>, <a href="http://www.timetoast.com/">Timetoast</a>, and a slew of other programs all trying to solve the same problem of displaying linear data in an aesthetically pleasing fashion, but they all had their drawbacks. </p>
<p>After being inspired by the <a href="http://www.innovativeinteractivity.com/2011/03/24/guardian-arab-protest-timeline/">Arab spring timeline</a> I featured last March, II guest blogger <a href="https://twitter.com/#!/pkfranz">Paul Franz</a> did his research and came upon &#8220;<a href="http://explainerproject.tumblr.com/">The Explainer Project</a>,&#8221; a team of innovative developers in the Strategic Development arm of the Innovation Division at ABC. Since then I got in touch with Sam and conducted the following Q&#038;A via email. Enjoy! </p>
<p><strong>Q. What is your rationale behind building a new timeline editor?</strong></p>
<p><strong>A.</strong> After building a <a href="http://www.abc.net.au/environment/cc_timeline.html">bespoke timeline for another project</a>, we returned to the idea of templating this approach to visualising data sets. The editor arose out of that work &#8211; a way for producers, journalists, anyone and especially without developer skills to quickly assemble complex data structures and output them in immersive, captivating ways. It was an exercise in building a powerful tool to explain complex data sets.</p>
<p><strong>Q. What are the features of the editor?</strong></p>
<p><strong>A.</strong> It allows you to curate data and visualise it in different ways. The taxonomy priciples are based around Events that can occur in time, as in timelines, or as milestones, as in projects, or more non linear occurrences such as genus types, for example. These Events have media assets associate with them, in the forms of text, audio, video, images, tags, web links and deep links. For example, one can append any video deployed on the web (eg You Tube) and it will be encapsulated as part of the event&#8217;s presentation. This basic unit of the Event can then be sorted by caregory and group and linked by tags to create various meanings for the data.</p>
<p>By example, in tracking events that took place in the first week or two after the Japanese earthquake earlier this year, categories delineated concurrent events into those relating to nuclear, geophysical, economic and rescue efforts. The visualisation of these events allows for the audience to quickly see clearly relationships between different types of events occurring concurrently in time.</p>
<p>The editor stores these events and their media assets and the taxonomy around the events that the author has created. This data set can be output in a number of different ways. We presently allow for two visualisations &#8211; a card array and a road.  </p>
<p><strong>Q. Do you have plans to make the editor publicly available?</strong></p>
<p><strong>A.</strong> Yes, we&#8217;re planning to make the editor publicly available as an AIR application. We&#8217;re also looking at open sourcing the project, so that people can create their own visualisations of data coming out of the Editor.</p>
<p><strong>Q. What is the price?</strong></p>
<p><strong>A.</strong> When available, it will be free.</p>
<p><strong>Q. What is the workflow like? Time to completion? Programming language knowledge?</strong></p>
<p><strong>A.</strong> No programming knowledge is required to use the Editor. Including installation, the basics of using the Editor can be taught in under half an hour. An extended knowledge of the Editor is aquired over time. For instance, the approach influences the way one thinks about data and its presentation. That&#8217;s why using it is best described as curating, because it builds upon the existing skills of journalists, storyteller, or anyone wanting to present data, and makes one think about the concurrence and relationships between events on a deeper level. Work-flow varies depending upon the project. There is data entry and relationship creation, then there&#8217;s visual design (which is most often catered for immediately by design themes, but is also catered for with a comprehensive WYSIWYG editor), and then there&#8217;s publishing. Presently, the outputs we&#8217;ve created are SWF and PDF files, which although visually rich are beginning to feel a bit anachronistic, so we&#8217;re looking at HTML5 versions too. And part of the intention of open-sourcing the application in the future is to encourage diversity in visualisations.</p>
<p><strong>Q. What are some example projects that have used the editor in the past?</strong></p>
<p><strong>A.</strong> (Note these are all data sets coming out of the same version of the Editor &#8211; one can publish the same data sets in either or both visual style simply by choosing the style of output):</p>
<p>Â· Marshall McLuhan: A Centenary in Media<br />
Â· <a href="http://www.abc.net.au/news/specials/2010-year-in-review/">2010 in Review</a><br />
Â· <a href="http://www.abc.net.au/news/specials/antarctic-summer/">Antarctic Summer</a> (scroll to bottom of page)<br />
Â· <a href="http://abc.net.au/news/specials/rebuilding-the-block/rebuilding-the-block-subpages/timeline/">A History of Redfern&#8217;s Block housing estate</a><br />
Â· <a href="http://www.abc.net.au/science/indepth/indepthfeature/spaceflight/?topic=latest">A History of Spaceflight</a></p>
<p><strong>Q. Do you envision your editor to be for timelines what soundslides is for audio slideshows?</strong></p>
<p><strong>A.</strong> We do think it&#8217;s a very powerful tool for building complex, highly detailed timelines (capable of spanning minutes, days, months, years, decades, centuries, milennia, non-linear, etc), and also because it treats data and visualisation separately, as well as allowing for currency, in terms of being rapidly updatable.</p>
<p><strong>Q. What improvements do you envision building into the editor in the near future?</strong></p>
<p><strong>A.</strong> If we open source it, we hope that improvements will come out of the community. I&#8217;m not sure we&#8217;ll be able to continually improve upon the Flex/AIR framework as we&#8217;re working on other things, but in terms of the thinking that&#8217;s gone into how you structure and present data, it already has very solid foundations which a community could build upon.</p>
<p><strong>Q. Anything else you want producers to know about your product?</strong></p>
<p><strong>A.</strong> Have a look at the examples and when AVE is available, have a go &#8211; it&#8217;s a powerful tool for creating timelines and context whatever the subject is. Also, visit the <a href="http://explainerproject.tumblr.com/">Explainer Blog on Tumblr</a> that details our broader work &#8220;Explainers.&#8221;<br /><strong>Other posts that might interest you:</strong>
<ul class="similar-posts">
<li><a href="http://innovativeinteractivity.com/2011/09/07/crunching-30-years-into-an-interactive/" rel="bookmark" title="September 7, 2011">Crunching 30 years into an interactive</a></li>
<li><a href="http://innovativeinteractivity.com/2011/08/21/goa-hippy-tribe/" rel="bookmark" title="August 21, 2011">Behind the scenes of &#8220;Goa hippy tribe&#8221;</a></li>
<li><a href="http://innovativeinteractivity.com/2011/09/14/sbs-dragon-children/" rel="bookmark" title="September 14, 2011">SBS launches multimedia site &#8220;Dragon Children&#8221;</a></li>
</ul>
<p><!-- Similar Posts took 15.096 ms --></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2011/09/20/ave-abc-visualization-editor/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2011/09/20/ave-abc-visualization-editor/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Hosting options for multimedia websites</title>
		<link>http://innovativeinteractivity.com/2011/05/05/hosting-options/</link>
		<comments>http://innovativeinteractivity.com/2011/05/05/hosting-options/#comments</comments>
		<pubDate>Thu, 05 May 2011 21:44:45 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[GoDaddy]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[site development]]></category>
		<category><![CDATA[technical support]]></category>
		<category><![CDATA[WebHostGear]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=10151</guid>
		<description><![CDATA[I thought it might be helpful to discuss technical considerations when deploying multimedia websites. In this post I will focus on hosting options for your site and next week I will discuss email marketing options to promote the site once you have it up and running. If there are other technical questions that you would like me to cover, please leave a comment and I'll be more than happy to tackle them in the near future!]]></description>
				<content:encoded><![CDATA[<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/latest/hosting_header.jpg" alt="web hosting" />
<p><a href="http://www.eeasywebhosting.com/" TARGET = "blank">Photo Credit: EasyWebHosting.com</a></p>
</div>
<p>I thought it might be helpful to discuss technical considerations when deploying multimedia websites. In this post I will focus on hosting options for your site and next week I will discuss email marketing options to promote the site once you have it up and running. If there are other technical questions that you would like me to cover, please leave a comment below and I&#8217;ll be more than happy to tackle them in the near future!</p>
<p><strong>GoDaddy.com</strong></p>
<p>I have religiously used <a href="http://www.godaddy.com/" target = "blank">GoDaddy</a> in the past for all of my hosting and domain support. Even though their website seems overly confusing, their technical support is exceptional. Both times when II crashed in the past numerous technicians worked with me over the phone for hours to get the site back up and running. In addition to basic hosting packages, they also offer options specifically for particular CMS&#8217;s, such as the <a href="http://www.godaddy.com/hosting/wordpress-hosting.aspx?ci=15005" target = "blank">WordPress version</a> that I use for this site. </p>
<p><strong>Hosting.com</strong></p>
<p>A recent client of mine was already set up with <a href="http://www.hosting.com/" target = "blank">Hosting.com</a>, so I moved them from a Windows server to a Linux one when I redesigned their site using WordPress (I try to use a CMS for all of my sites nowadays to simplify future updates to site content!). This company was extremely easy to work with, and they set me up with a temporary domain to build out the new site so that there was no down time during the transition. I did notice that their hosting was pricier than the one I use with GoDaddy, but there are so many bells and whistles to each plan that you will need to research all of your options to figure out what price point fits your needs.</p>
<p><strong>WebHostGear.com</strong></p>
<p>I have also heard good things about <a href="http://www.webhostgear.com/coldfusion-web-hosting.php" target = "blank">Coldfusion hosting</a> through WebHostGear, particularly for scalable projects. Since I have not personally used it, here is a short description from their site:</p>
<p>&#8220;If you are planning a database driven website where scalability is a requirement, Coldfusion hosting is an option well worth considering. Coldfusion is a &#8220;rapid application development platform&#8221;, meaning it is used for quickly building web-based applications. Although Coldfusion is a dynamic scripting language, it is similar in syntax to HTML. Since Coldfusion was originally developed to access database information and for use as a web development language, it natively performs complex business logic with a minimum amount of code. These factors make the Coldfusion language much easier for most developers to learn than its counterparts, PHP and ASP.&#8221;</p>
<p>As I mentioned above, if you are going to use a CMS like WordPress, you can&#8217;t use a <a href="http://www.webhostgear.com/windows-hosting.php" target = "blank">windows web hosting</a> solution. However, if you are building out a static site, such as my multimedia project &#8220;<a href="http://www.internationalhunger.com/" target = "blank">Honduras and the Hidden Hunger</a>,&#8221; you can look into a Windows server, which is normally more affordable than the Linux and Coldfusion options mentioned above.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2011/05/05/hosting-options/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2011/05/05/hosting-options/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>&#8220;Django 1.0 Template Development&#8221; book review</title>
		<link>http://innovativeinteractivity.com/2009/10/12/django-1-0-template-development-book-review/</link>
		<comments>http://innovativeinteractivity.com/2009/10/12/django-1-0-template-development-book-review/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 01:33:34 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Packt Publishing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Richard Cornish]]></category>
		<category><![CDATA[Scott Newman]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=2854</guid>
		<description><![CDATA[Ultimately, buying Django 1.0 Template Development comes down to what kind of learner you are: Django's official documentation, the Django Book, and the Django users Google Group, should give most Web developers and template authors enough to learn most of the template system, but the book can be a handy reference and walk-through that will hold your hand in a lot of sticky points. The examples in the book are bound to teach something to even the most seasoned Django developers.]]></description>
				<content:encoded><![CDATA[<p>Guest blogger <a href="http://www.richardcornish.com/" target = "blank">Rich Cornish</a> reviews &#8220;Django 1.0 Template Development,&#8221; a new programming book hot off the press, to help you make an informed decision whether this book is right for you. To get an overview on Django, read Cornish&#8217;s post from June, &#8220;<a href="http://www.innovativeinteractivity.com/2009/06/17/a-gentle-introduction-to-the-django-web-framework/" target = "blank">A gentle introduction to the Django Web framework</a>.&#8221;</p>
<hr />
<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/posts/django_book_post.jpg" alt="Django 1.0 Template Development" /></div>
<p><cite>Django 1.0 Template Development</cite> by Scott Newman teaches development practices for the <a href="http://www.djangoproject.com/" target = "blank">Django Web framework template system</a>. The book brands itself as &#8220;a practical guide to Django template development with custom tags, filters, multiple templates, (and) caching,&#8221; and is published by Packt Publishing.</p>
<p>I found the book to be a solid but also technical reference, especially on views, URL configuration, and pagination, making it more appropriate for the book&#8217;s intended audience of &#8220;Web developers and template authors.&#8221; I&#8217;m familiar with Django template development during my work as an Interaction Designer where Django was created at the <a href="http://www.ljworld.com/" target = "blank">Lawrence Journal-World</a> newspaper in Lawrence, Kan.</p>
<p>The book assumes the reader completed the <a href="http://docs.djangoproject.com/en/dev/intro/install/" target = "blank">installation of Django</a> and the <a href="http://docs.djangoproject.com/en/dev/intro/tutorial01/" target = "blank">introductory tutorials</a>, in particular creating a project, an application, and some models, and development using at least Django 1.0. The book also assumes some basic knowledge of HTML, Python, and a Unix-like environment. I recommend learning essentials, such as the set up of basic Unix-like environments and how they use Python via the Python Path, before reading this book.</p>
<h3>By the chapter</h3>
<p>Chapter 1&#8242;s &#8220;An Introduction to the Django Template System&#8221; is a good overview and philosophy of the template system. Chapter 2&#8242;s &#8220;Views, URLs, and Generic Views&#8221; and Chapter 3&#8242;s &#8220;Template Context&#8221; cover the technical background in how Django renders templates and was mainly written for Web developers. Chapter 4&#8242;s &#8220;Using the Built-In Tags and Filters&#8221; contains examples of almost <em>every tag and filter</em> Django gives for free, which is very welcome because not even Django&#8217;s official documentation has such a reference!</p>
<p>Chapter 5&#8242;s &#8220;Loading and Inheriting Templates&#8221; starts real-world template examples, but recommends storing templates in &#8220;projects/(project name)/templates/&#8221; as a best practice, which I found to be questionable: The most common template storage practices I have seen are &#8220;(project name)/(application name)/templates/&#8221; or a dedicated directory; the former is especially common in redistributable Django applications on <a href="http://code.google.com/" target = "blank">Google Code</a> and <a href="http://github.com/" target = "blank">GitHub</a>.</p>
<p>Chapter 6&#8242;s &#8220;Serving Multiple Templates&#8221; covers the juicier parts of the book: printer-friendly pages, site themes, and mobile versions (courtesy of my former co-worker Matt Croydon&#8212;Hi, Matt!). The printer-friendly pages were solid, although the mobile solution falls just short of perfection by not using cookies. I found site themes&#8212;manually adding and remove template directories&#8212;not to be a practical solution.</p>
<p>Chapters 7 through 11 have corresponding online documentation topics: <a href="http://docs.djangoproject.com/en/dev/howto/custom-template-tags/" target = "blank">custom tags and filters</a>, <a href="http://docs.djangoproject.com/en/dev/topics/pagination/" target = "blank">pagination</a>, <a href="http://docs.djangoproject.com/en/dev/obsolete/admin-css/" target = "blank">customizing the admin</a>, <a href="http://docs.djangoproject.com/en/dev/topics/cache/" target = "blank">caching</a>, and <a href="http://docs.djangoproject.com/en/dev/topics/i18n/" target = "blank">internationalization</a>. The chapter on pagination curiously failed to mention the <a href="http://code.google.com/p/django-pagination/" target = "blank">django-pagination</a> application, but the chapter on caching elegantly addresses a confusing topic.</p>
<h3>The good and the not-so-good</h3>
<p>The book shows many helpful screenshots, but I would have liked more than its <em>three</em> information graphics, which reiterated the text preceding it; however I did find the text to be generally free of technical errors.</p>
<p>The book should have answered some of the more basic questions I had when first learning templates:</p>
<ul>
<li>Why do templates end in the <code>.html</code> extension rather than some kind of Django template extension, such as &#8220;<code>.django-html</code>&#8220;? Answer: The Django creators wanted your current text editor to continue highlighting HTML elements. If you come from PHP, this is definitely noteworthy.</li>
<li>What is a template variable&#8217;s syntax? Answer: <code>{{ model.field }}</code>. The book rarely mentions models.</li>
<li>Is there a diverse template strategy I should use? Answer: It depends, possibly with design layouts.</li>
</ul>
<p>The book oddly chose to author a press release application and not the most-desired blog application, covering only simple, list-, and detail-based generic views&#8212;not date-based generic views, which would have been desirable, but best practices, such as empty blocks for extra CSS and JavaScript in the base template, are covered.</p>
<p>Acknowledgment of the Django universe&#8217;s free and open applications on the Internet could have given designers and front-end developers the edge in making their templates shine, such as:</p>
<ul>
<li><a href="http://code.google.com/p/typogrify/" target = "blank">typogrify</a>: Tags and filters in prettifying your text</li>
<li><a href="http://code.google.com/p/django-template-utils/" target = "blank">django-template-utils</a>: Commonly used template enhancements beyond djbuilt-in tags and filters</li>
<li>django-robots: Easy creation of <a href="http://en.wikipedia.org/wiki/Robots_exclusion_standard" target = "blank">robots.txt</a> for search engines</li>
<li><a href="http://code.google.com/p/django-oembed/" target = "blank">django-oembed</a>: Auto-detection of media-esque URLs and their no-fuss replacement</li>
<li><a href="http://docs.djangoproject.com/en/dev/ref/contrib/flatpages/" target = "blank">flatpages</a>: Acknowledgment of the most basic built-in Django application showing template basics</li>
</ul>
<h3>For you, blue?</h3>
<p>These documentation topics and <a href="http://www.djangobook.com/en/2.0/" target = "blank">Django Book</a> chapters roughly correspond to many of the chapters in <cite>Django 1.0 Template Development</cite>:</p>
<ul>
<li><a href="http://docs.djangoproject.com/en/dev/topics/templates/" target = "blank">The Django template language</a></li>
<li><a href="http://docs.djangoproject.com/en/dev/ref/templates/builtins/" target = "blank">Built-in template tags and filters</a></li>
<li><a href="http://docs.djangoproject.com/en/dev/ref/templates/api/" target = "blank">The Django template language: For Python programmers</a></li>
<li><a href="http://docs.djangoproject.com/en/dev/howto/custom-template-tags/" target = "blank">Custom template tags and filters</a></li>
<li><a href="http://www.djangobook.com/en/2.0/chapter04/" target = "blank">Django Book, Chapter 4: Templates</a></li>
<li><a href="http://www.djangobook.com/en/2.0/chapter09/" target = "blank">Django Book, Chapter 9: Advanced Templates</a></li>
</ul>
<p>Ultimately, buying <cite>Django 1.0 Template Development</cite> comes down to what kind of learner you are: Django&#8217;s official documentation, the Django Book, and the <a href="http://groups.google.com/group/django-users/" target = "blank">Django users Google Group</a>, should give most Web developers and template authors enough to learn most of the template system, but the book can be a handy reference and walk-through that will hold your hand in a lot of sticky points. The examples in the book are bound to teach something to even the most seasoned Django developers.</p>
<p>Django 1.0 Template Development is available on Packt Publishing&#8217;s website and <a href="http://www.amazon.com/exec/obidos/ASIN/1847195709/ref=nosim/richacorni-20" target = "blank">Amazon.com</a>.</p>
<hr />
<p><a href="http://www.richardcornish.com/" target = "blank"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/posts/guest_series/rich_cornish.jpg" alt="Richard Cornish" style="float: left; margin: 0 1em 1em 0;"></a> <a href="http://www.richardcornish.com/" target = "blank">Richard Cornish</a> is a former interaction designer at the <a href="http://www.ljworld.com/" target = "blank"><cite>Lawrence Journal-World</cite></a> in Lawrence, Kan., where the <a href="http://www.djangoproject.com/" target = "blank">Django Web framework</a> was created. His first love is design but a close second is the Old Navy track jacket that he wears almost every day. It&#8217;s a security thing.</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2009/10/12/django-1-0-template-development-book-review/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2009/10/12/django-1-0-template-development-book-review/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Create a Multimedia Promo Widget</title>
		<link>http://innovativeinteractivity.com/2009/09/21/how-to-create-a-multimedia-promo-widget/</link>
		<comments>http://innovativeinteractivity.com/2009/09/21/how-to-create-a-multimedia-promo-widget/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 01:16:33 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Advice & inspiration]]></category>
		<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[Knight Digital Media Center]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=2624</guid>
		<description><![CDATA[After being inspired by the Globe and Mail's promo embed for their latest package "Behind the Veil," I was pleasantly surprised to see that the Knight Digital Media Center has an easy tutorial teaching users how to create a publication widget. While the Globe and Mail built a separate flash file with corresponding embed code, this tutorial will teach you how to use Widgetbox to make a customizable widget for a blog/twitter feed, photo/video gallery, and much more. So, while in the mood to learn a new trick, I followed the simple steps to make a widget for II. ]]></description>
				<content:encoded><![CDATA[<p>After being inspired by the Globe and Mail&#8217;s promo embed for their latest package &#8220;<a href="http://www.theglobeandmail.com/news/world/behind-the-veil/" target = "blank">Behind the Veil</a>,&#8221; I was pleasantly surprised to see that the <a href="http://multimedia.journalism.berkeley.edu/" target = "blank">Knight Digital Media Center</a> has an easy tutorial teaching users <a href="http://multimedia.journalism.berkeley.edu/tutorials/widgets/" target = "blank">how to create a publication widget</a>. While the Globe and Mail built a separate flash file with corresponding embed code, this tutorial will teach you how to use <a href="http://www.widgetbox.com/" target = "blank">Widgetbox</a> to make a customizable widget for a blog/twitter feed, photo/video gallery, and much more. So, while in the mood to learn a new trick, I followed the simple steps to make a widget for II. </p>
<p>Below is the result of my widget. In case you are an avid II fan (shucks, thanks!) and want to promote the site wherever you live online, click the &#8220;Get Widget&#8221; button to copy the embed code.</p>
<p>I would encourage others out there to glance over the tutorial and keep this option in mind for future projects. If you want more control over your widget, it&#8217;s only $3.99 a month to get a pro account to delete the unwanted ads. Happy &#8220;widgeting&#8221; everyone!</p>
<p><center><script type="text/javascript" src="http://cdn.widgetserver.com/syndication/subscriber/InsertWidget.js"></script><script>if (WIDGETBOX) WIDGETBOX.renderWidget('3cbb1bde-f6da-4968-b4fa-97ed815a0cdf');</script><br />
<noscript>Get the <a href="http://www.widgetbox.com/widget/innovative-interactivity">Innovative Interactivity</a> widget and many other <a href="http://www.widgetbox.com/">great free widgets</a> at <a href="http://www.widgetbox.com">Widgetbox</a>!</noscript>
<p></center></p>
<p><strong>Other posts that might interest you:</strong>
<ul class="similar-posts">
<li><a href="http://innovativeinteractivity.com/2011/07/07/7-interactive-tools/" rel="bookmark" title="July 7, 2011">Seven interactive tools to strengthen your next multimedia package</a></li>
<li><a href="http://innovativeinteractivity.com/2011/08/08/quantifying-the-value-of-digital-content/" rel="bookmark" title="August 8, 2011">Quantifying the value of digital content</a></li>
<li><a href="http://innovativeinteractivity.com/2011/06/23/five-ways-to-rock-an-advocacy-video/" rel="bookmark" title="June 23, 2011">Five ways to rock an advocacy video</a></li>
</ul>
<p><!-- Similar Posts took 11.361 ms --></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2009/09/21/how-to-create-a-multimedia-promo-widget/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2009/09/21/how-to-create-a-multimedia-promo-widget/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Multimedia Advice: How to build map mashups</title>
		<link>http://innovativeinteractivity.com/2009/08/12/multimedia-advice-how-to-build-map-mashups/</link>
		<comments>http://innovativeinteractivity.com/2009/08/12/multimedia-advice-how-to-build-map-mashups/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 23:06:16 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Advice & inspiration]]></category>
		<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Chris Zaluski]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[Roanoke.com]]></category>
		<category><![CDATA[The Roanoke Times]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=2363</guid>
		<description><![CDATA[As mashups become increasingly more popular in multimedia presentations, it is important that producers learn how to create them. Therefore, I asked Chris to explain how to get started building map mashups, with information on both the Google map API and UMapper. ]]></description>
				<content:encoded><![CDATA[<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/posts/map_mashup_post.jpg" alt="'Tucked-away Treasures' by Roanoke.com" /></p>
<p><a href="http://roanoke.com/212586" TARGET = "blank">Tucked-away Treasures</a> by Roanoke.com</p>
</div>
<p>I recently came across an elegant map mashup, &#8220;<a href="http://roanoke.com/212586" target = "blank">Tucked-away Treasures</a>,&#8221; by Roanoke.com interactive producer <a href="http://www.chriszaluski.com/wordpress/" target = "blank">Chris Zaluski</a>.  </p>
<p>As mashups become increasingly more popular in multimedia presentations, it is important that producers learn how to create them. Therefore, I asked Chris to explain how to get started building map mashups, with information on both the Google map API and UMapper. </p>
<p>&#8220;Like any new technological endeavor, getting started is the hardest part.  My experience with the Google Maps API was no exception. But considering that I had limited experience beforehand and was able to create <a href="http://roanoke.com/212586" target = "blank">a functional map that incorporated video, sidebar navigation and rollover effects</a>, I&#8217;d say it&#8217;s worth a try for any person willing to spend a few hours sorting through foreign code.</p>
<p>When I say API, I&#8217;m essentially referring to a collection of rules (or codes) provided by a programmer so others can follow those guidelines in order to create applications.  The Google Maps&#8217; API allows a person to take a normal Google Map (as you would find on <a href="http://www.maps.google.com" target = "blank">maps.google.com</a>) and customize it.  This process is also known as a map &#8220;mashup,&#8221; and it can be done using a variety of other API&#8217;s such as Yahoo or <a href="http://umapper.com/" target = "blank">UMapper</a>.</p>
<p>For the purposes of this blog post, I&#8217;ll mostly discuss how to get started using the Google Maps&#8217; JavaScript API, but I will also talk briefly about UMapper.  The differences between the two can vary depending on which Google API you use, but I&#8217;ll talk about that later.</p>
<p>The main benefit of using Google Maps is that their presence on the Web is so pervasive that navigation is inherit to most users. Secondly, the maps are very easy to build. </p>
<p>To get started you need <a href="http://code.google.com/apis/maps/signup.html" target = "blank"> an API key.</a> The key is free when you sign up and is basically so Google can keep track of which Web sites are using the API.</p>
<p>Once the key is generated, you&#8217;ll have access to the <a href="http://code.google.com/apis/maps/documentation/index.html" target = "blank">full documentation</a> of Google Maps.  However, unless you know JavaScript, that nitty gritty code will look like a foreign language.  The <a href="http://code.google.com/apis/maps/documentation/introduction.html" target = "blank">&#8220;Map Basics&#8221; section</a> is much easier to digest.</p>
<p>The main piece of advice I can give from this point forward is just go with the flow and get used to looking through source code.  I still don&#8217;t fully understand all the lines of code, but it&#8217;s through a guess-and-check process that this whole thing begins to take shape.</p>
<p>You can find the main &#8220;meat&#8221; of your code on the <a href="http://code.google.com/apis/maps/documentation/introduction.html#The_Hello_World_of_Google_Maps" target = "blank">Google Map API</a> section on Google Code.</p>
<p>If you copy that entire block of code and paste it into an .html document, the only things you will need to modify are two parts: add your personal API key and change the sensor setting to &#8220;true&#8221; or &#8220;false.&#8221; Once you do those two things, you will see a Google Map on your .html page.  Pretty easy, really. (And the sensor setting applies to whether or not the application is using a sensor such as GPS to find the user&#8217;s location. Unless you&#8217;re designing this map for a mobile device, keeping it on &#8220;false&#8221; should be fine.)</p>
<p>From here, I spent a lot of time looking through the Google Maps API for example maps and then reading the source code of those maps.  </p>
<p>There are two really good things about this JavaScript API.  The first is that the map&#8217;s code rests in the .html code, so if you run across a mashup you really like, just check out the page&#8217;s source code to see the JavaScript technique that was used.</p>
<p>The second nice thing is that if you don&#8217;t know a lick of JavaScript, most of the functions are still pretty common sense.  For example, just by looking through the code above, I bet you can figure out how to change the map&#8217;s starting location (map.setCenter(new GLatLng(<strong>37.4419, -122.1419</strong>), 13);).  Or if you wanted to change the type of map that was used, the function is &#8220;map.setMapType(G_HYBRID_MAP).&#8221;  It&#8217;s pretty easy to recognize what the lines of code mean when you&#8217;re reading through unknown source code.</p>
<p>The best resource I found was this <a href="http://econym.org.uk/gmap/" target = "blank">&#8220;Google Maps API Tutorial&#8221;</a>.  It&#8217;s easy to use and has a &#8220;succeed-then-decipher&#8221; method where the source code is given first, then the explanation second.  This site was linked from the Google Maps&#8217; API site, so just keep in mind that much of what you&#8217;re looking for will be on Google&#8217;s API site.</p>
<p>Other effects that I added to my map were <a href="http://econym.org.uk/gmap/basic10.htm" target = "blank">tabbed info windows</a>, <a href="http://econym.org.uk/gmap/basic2.htm" target = "blank">a clickable sidebar</a>, embedded Youtube videos and custom markers with rollover effects.  Just by browsing through the API site and the resource site mentioned above, I was able to find existing source code that I modified to fit my map.  It&#8217;s also easy to <a href="http://econym.org.uk/gmap/basic3.htm" target = "blank">link .xml files</a> with your map in order to upload large amounts of markers (here&#8217;s a simple example, <a href="http://roanoke.com/multimedia/212608"  target = "blank">&#8220;Tracking Gov. Kaine,&#8221;</a> and here&#8217;s an example that uses a <a href="http://code.google.com/p/gheat/" target = "blank">heat map effect</a>).</p>
<p>In addition to Google Maps, another easy way to do a map mashup is with <a href="http://umapper.com/" target = "blank">UMapper</a>.  The difference with UMapper is that you&#8217;re actually exporting the map into ActionScript, which you can use in Flash.</p>
<p>One of the main benefits of UMapper is the site&#8217;s easy interface.  It allows you to design a map on their site by simply dragging and dropping markers and then clicking the &#8220;Export&#8221; button to get an ActionScript code block.  Once in Flash, the map can interact with other elements on the page in a much more dynamic way than Google Maps.</p>
<p>Choosing which map program to use largely depends on the project at hand and your skill set.  If you&#8217;re starting from scratch, the Google Maps&#8217; API or the Yahoo Maps API are both easy ways to get started.</p>
<p><strong>Some more examples of what can be done:</strong></p>
<ul>
<li><a href="http://data.cincinnati.com/navigator/" target = "blank">Cinci Navigator (created in Yahoo Maps using Yahoo&#8217;s YUI)</a></li>
<li><a href="http://vort.org/media/data/crashes.html" target = "blank">Auto and bike accidents in Davis, Calif. (created using Google Maps API)</a></li>
<li>A guided tour of St. Louis professional ballparks (created in Google Maps, I believe)</li>
<li><a href="http://www.umapper.com/blog/?p=1352" target = "blank">Geo dart game (created in UMapper)</a></li>
<li><a href="http://www.roanoke.com/wb/xp-193792" target = "blank">Roanoke housing projects crime statistics (created in UMapper)&#8221;</a></li>
</ul>
<p><strong>Other posts that might interest you:</strong>
<ul class="similar-posts">
<li><a href="http://innovativeinteractivity.com/2011/06/02/five-videography-tips/" rel="bookmark" title="June 2, 2011">Five tips for emerging video journalists</a></li>
<li><a href="http://innovativeinteractivity.com/2011/06/23/five-ways-to-rock-an-advocacy-video/" rel="bookmark" title="June 23, 2011">Five ways to rock an advocacy video</a></li>
</ul>
<p><!-- Similar Posts took 11.290 ms --></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2009/08/12/multimedia-advice-how-to-build-map-mashups/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2009/08/12/multimedia-advice-how-to-build-map-mashups/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>FlashTip: Updated tips on SWFAddress</title>
		<link>http://innovativeinteractivity.com/2009/06/22/flashtip-updated-tips-on-swfaddress/</link>
		<comments>http://innovativeinteractivity.com/2009/06/22/flashtip-updated-tips-on-swfaddress/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 14:35:36 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[deeplinking]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashTip]]></category>
		<category><![CDATA[SWFAddress]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=2172</guid>
		<description><![CDATA[Since October, I have been receiving at least one email a week on my deeplinking with SWFAddress tutorial. I thought that one in particular might be of use to others trying to master deeplinking, so I am posting it here with his approval.]]></description>
				<content:encoded><![CDATA[<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/latest/flashTip.jpg" alt="Flash logo" /></p>
<p>Flash man by <a href="http://www.zerofractal.com/" TARGET = "blank">Zerofractal Studio</a></p>
</div>
<p><strong>Read the original post from 10/17/2008 <a href="http://www.innovativeinteractivity.com/2008/10/17/flash-tip-deep-linking-with-swfaddress/" TARGET = "blank">HERE</a></strong></p>
<p><strong>Read the later version with sample files from 2/25/09 <a href="http://www.innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/" TARGET = "blank">HERE</a></strong></p>
<p>Since October, I have been receiving at least one email a week on my <a href="http://www.innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/" target = "blank">deeplinking with SWFAddress tutorial</a>. I thought that one in particular might be of use to others trying to master deeplinking, so I am posting it here with his approval.</p>
<p>Vaughan van Dyk also provided a wealth of files for users. Here are his comments:</p>
<p>&#8220;I have CS2, so I&#8217;ve attached your original in that format along with as many comments as possible in the time available (<a href="http://www.innovativeinteractivity.com/wp-content/uploads/swf_address-v/" target="blank">swf_address-v</a>), because comments will likely be the easiest for people to follow along to. (Download the files for personal use <a href="http://www.innovativeinteractivity.com/wp-content/uploads/swf_address-v.zip" target="blank"><strong>HERE.</strong></a>)</p>
<p>I have also attached my stripped-down version (<a href="http://www.innovativeinteractivity.com/wp-content/uploads/simple-v/" target="blank">simple-v</a>), which removes preloader/splash screen/neat titles and just demos use of core SWFAddress. Maybe people start there with the basics and then progress onto your swf-address, and then eventually to the samples. You are welcome to use these however you need â€“ I hope they can be of help.&#8221; (Download the files for personal use <a href="http://www.innovativeinteractivity.com/wp-content/uploads/simple-v.zip" target="blank"><strong>HERE.</strong></a>)</p>
<p><del datetime="2009-07-22T13:30:21+00:00">He also provided sample files, but I am unable to access my server while in Honduras, so I will post them upon returning in late July.</del> If you have other tips and/or suggestions, please add them in the comments below so we can grow out this troubleshooting forum for SWFAddress!</p>
<p>Hi Tracy,</p>
<p>Firstly I just want to thank you for the brilliant service you provided to the world by giving your &#8216;cut-down&#8217; example of SWFAddress in action!</p>
<p>I recently happened upon SWFAddress and explored using it for some Flash work where I wanted a smooth solution for jumping to specific frames in a Flash file. But the official SWFAddress documentation is particularly workmanlike (just telling you what everything does but not how to get it working together) and all the samples involve a needless number of other features without any commented code to let you know why they are doing what they&#8217;re doing.</p>
<p>I almost gave up eventually, but thankfully found your post:<br />
<a href="http://www.innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/" target = "blank">http://www.innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/</a></p>
<p>Using that, I could achieve what I was looking for!</p>
<p>As a small thank-you and if you don&#8217;t mind, I&#8217;d like to suggest that your code/example could be cut down even further, to a truly bare-bones implementation so that those who want to add extra features (e.g. preloader) can do so, but don&#8217;t have to have excess code lying around if they aren&#8217;t going to use those features.</p>
<p>Here&#8217;s what I found, and please note that I am a long-time traditional programmer but a fairly-new ActionScript coder so errors and omissions expected:</p>
<p>1. Your swf_address zip file includes two .DS_Store files, which aren&#8217;t necessary for this.</p>
<p>2. Although the article talks of using AS2, the actual FLA in the zip was authored in CS3. It would be nicer to have it in CS2, which would be forwards-compatible.</p>
<p>3. In frame 2&#8242;s AS, the following code is only needed if you have a preloader on frame 1 &#8211; if you don&#8217;t, it can be entirely omitted because the first frame will be your title page:<br />
   if (_currentframe  2 &#038;&#038; value  &#8221;) {<br />
       intro.play();<br />
   } else {<br />
       gotoAndStop(&#8216;$&#8217; + value);<br />
   }</p>
<p>4. Frame 2&#8242;s three &#8220;custom utilities&#8221; functions manipulate the frame label to make it neater for displaying in the title bar of the browser. The three functions are quite complex but are entirely optional.</p>
<p>5. In the onChange function, the getPath and getParameter methods are only needed if you have multi-level pages. In the SWFAddress Portfolio sample, they use this for the Portfolio &#8211; 1 2 3 subpages that create URLs such as http://www.asual.com/swfaddress/samples/flash/#/portfolio/2/. If you&#8217;re not going to use subpages, you don&#8217;t need these two methods &#8211; getValue is all we want.</p>
<p>6. It&#8217;s not necessary to repeat frame 3&#8242;s AS code in every frame thereafter.</p>
<p>Also it would be useful to point out that your and my versions here use SWFAddress 2.2 (and AS2 as you mention). SWFAddress recently updated the AS/JS to version 2.3 but that did bring with it a few issues for some. I&#8217;m sticking with 2.2 for now.</p>
<p>And the following are just some of my findings about using SWFAddress for jumping to specific frames. Probably all of it you know but may be useful for some of your readers:</p>
<p>Important: You can only test SWFAddress by running the HTML file from a server. So you can&#8217;t just load it normally on your local machine and see the URL change dynamically. This was a bit of a worry given that you&#8217;d actually want to test it first. So you will need to use something like XAMPP and put your folder in the xampphtdocs folder and then with XAMPP running, in a browser go to http://localhost/yourfolder/index.html  &#8230;voila the URL now changes dynamically.</p>
<p>Once you strip out all that excess code, using SWFAddress for jumping to a specific frame is really rather simple. At its core, it&#8217;s one major function and a few methods:</p>
<p>* the main function is SWFAddress.onChange and it&#8217;s triggered everytime the URL changes; basically stripping out the important bit from the URL (e.g. the #page05 bit) and using that in Flash to go to the appropriate frame with that label</p>
<p>* then every button that affects navigation uses SWFAddress methods for the following three button events:</p>
<p>   onRollOver (optional &#8211; uses setStatus to add to the URL that displays in the browser&#8217;s status/prompt bar at the bottom of the browser when your pointer rolls over the button)</p>
<p>   onRelease (important &#8211; uses setValue and specifies what to add to the URL to uniquely identify the page by specifying the named frame to jump to, which of course will then trigger onChange &#8211; you do not need to use gotoAndStop as well in this onRelease event because that is done in onChange)</p>
<p>   onRollOut (optional &#8211; uses resetStatus to clear the browser&#8217;s status/prompt bar so that nothing displays there when your pointer rolls away from the button)</p>
<p>* I wanted to remove references to # in the original code to save one having to set all the named labels to have # in front (e.g. #page08) but it caused the pages to cycle when one jumps to a specific frame and I&#8217;m not sure why. For now, it&#8217;s definitely safest to just prepend frame labels with a #<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Again, I am not trying to be critical in the least with this, just some suggestions and findings. Especially for the slightly newer coder out there who will find this article. As I said, your site is the true saviour of SWFAddress and I just want to see it grow!</p>
<p>Keep up the great work and thanks again.<br />
Vaughan<br />
<br /><strong>Other posts that might interest you:</strong>
<ul class="similar-posts">
<li><a href="http://innovativeinteractivity.com/2011/09/20/ave-abc-visualization-editor/" rel="bookmark" title="September 20, 2011">Move over Dipity! AVE, a new interactive timeline editor to put on your radar</a></li>
</ul>
<p><!-- Similar Posts took 8.845 ms --></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2009/06/22/flashtip-updated-tips-on-swfaddress/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2009/06/22/flashtip-updated-tips-on-swfaddress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Conforming multimedia packages to user standards</title>
		<link>http://innovativeinteractivity.com/2009/04/28/conforming-multimedia-packages-to-user-standards/</link>
		<comments>http://innovativeinteractivity.com/2009/04/28/conforming-multimedia-packages-to-user-standards/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 22:50:05 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Advice & inspiration]]></category>
		<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[multimedia]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[screen resolution]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=1860</guid>
		<description><![CDATA[We have all heard the saying, "Design sites for your user's computer, not your own." If you are fortunate enough to have the freedom to build projects free of prior size and display constraints, you then have to decide how to conform your design appropriately. I was lucky to get this opportunity at The Roanoke Times, where all of my interactives lived separate from Roanoke.com.  So, let's look at how I handled it, what I could have done better, and what the experts say.]]></description>
				<content:encoded><![CDATA[<p>We have all heard the saying, &#8220;Design sites for your user&#8217;s computer, not your own.&#8221; If you are fortunate enough to have the freedom to build projects free of prior size and display constraints, you then have to decide how to conform your design appropriately. I was lucky to get this opportunity at The Roanoke Times, where all of my interactives lived separate from <a href="http://www.roanoke.com/wb/xp-index" TARGET = "blank">Roanoke.com</a>.  So, let&#8217;s look at how I handled it, what I could have done better, and what the experts say.</p>
<p>My first large package, <a href="http://www.roanoke.com/multimedia/hellgate/interactive.html" TARGET = "blank">Hellgate</a>, was sized to 757&#215;650 and centered on the page.</p>
<p>My <a href="http://www.roanoke.com/multimedia/vtech_anniversary/portraits/interactive.html" TARGET = "blank">Virginia Tech anniversary</a> package was sized to 900&#215;700 and centered.</p>
<p>My <a href="http://www.roanoke.com/multimedia/artmuseum/" TARGET = "blank">art museum</a> interactive was sized to 1000&#215;670 and centered. </p>
<p>As you can see, I only remained consistent in terms of centering my packages. This wasn&#8217;t by accident though &#8211; after learning more about my audience and looking at the analytics, I realized that it was relatively safe to design beyond the 800&#215;600 safety frame.</p>
<p>However, I fear that some viewers got the horizontal scroll bar on my art museum package, which is never a good sign. I don&#8217;t remember Roanoke.com&#8217;s audience stats anymore, but let&#8217;s take a look at II&#8217;s audience:</p>
<p>Within the last month, here is the break-down:</p>
<p>Screen Resolutions:<br />
1440&#215;900 &#8212; 20.56%<br />
1280&#215;800 &#8212; 16.48%<br />
1680&#215;1050 &#8212; 15.23%<br />
1024&#215;768 &#8212; 13.40%<br />
1280&#215;1024 &#8212; 11.24%<br />
1920&#215;1200 &#8212; 10.77%</p>
<p>Browsers:<br />
Firefox &#8212; 59.03%<br />
Safari &#8212;- 18.40%<br />
IE &#8212;&#8212;- 17.36%<br />
Chrome &#8212;   3.38%</p>
<p>Operating Systems:<br />
Windows &#8212; 51.93%<br />
Macintosh &#8212; 45.68%<br />
iPhone &#8212;&#8211;     .95%</p>
<p>So, from this data I can tell that if I were to replace my WordPress site with a Flash package sized at 1024&#215;768, I would know that 85% of my audience would see it perfectly without having to scroll. Also, looking at the different versions of browsers that you all are using, I know that my WordPress theme is compatible with everyone&#8217;s preferences. For an HTML site, browser type is especially important as certain blocks of code do not work in previous versions. </p>
<p>Monitor size, resolution, alignment and layout should all be considered when designing your site. Sometimes it is impossible to design for the ancient giants like Netscape 4 or IE 4, but it is important to design sites to fulfill the majority of needs. You can get this information by tracking your visitors with <a href="https://www.google.com/analytics/reporting/login?ctu=https%3A%2F%2Fwww.google.com%2Fanalytics%2Fsettings%2F%3F" TARGET = "blank">google analytics</a> or another usage tracker.</p>
<p>For instance, at <a href="http://www.thecounter.com/stats/2009/March/browser.php" TARGET = "blank">TheCounter.com</a>, stats from March show that 75% of worldwide traffic is utilizing IE 6 or 7. However, it is scary to see that more than 170,000 people are still using IE 5, a browser that just turned 10 years old.</p>
<p>In addition, the stats also show that 75% of worldwide traffic either uses a resolution size of 1024&#215;768 or 1280&#215;1024. So maybe it is time to stop using 800&#215;600 as the standard size since only 7% are stuck on that itty-bitty screen &#8230;</p>
<p>While reading <a href="http://oreilly.com/catalog/9780596009878/" TARGET = "blank">Web Design in a Nutshell</a>, I also learned more about the debate between fixed versus liquid web pages (ie. fixed at a particular size vs able to resize and adapt to various windows). I prefer the latter, also called fluid, simply because I enjoy having the choice of how I want to view it. A great example of a fluid site is New York Times&#8217; producer Tom Jackson&#8217;s masterpiece, <a href="http://www.whitecitystories.org/" TARGET = "blank">White City Stories</a>.</p>
<p>There is also a debate about pop-up browsers and automatically sizing content. I think the author said it best:</p>
<p>&#8220;Another, more drastic, approach is to run a Javascript that resizes the user&#8217;s current browser window to accommodate your design. In my opinion, this is just bad manners &#8212; like visiting a stranger&#8217;s house and rearranging their furniture without asking.&#8221;</p>
<p><a href="http://www.sun-sentinel.com/broadband/theedge/sfl-edge-test,0,5812278.htmlpage" TARGET = "blank">The Edge</a>, South Florida Sun-Sentinel&#8217;s multimedia gallery, is guilty as charged in resizing browsers to display multimedia content and it drives me crazy.  </p>
<p> So I&#8217;m curious &#8230; what standards do you go by in designing sites and multimedia interactives? Do you have a personal preference in the ongoing debate between fixed vs. fluid, centered vs flush left, pop-ups vs. resizing code?</p>
<p><strong>Other posts that might interest you:</strong>
<ul class="similar-posts">
<li><a href="http://innovativeinteractivity.com/2011/06/23/five-ways-to-rock-an-advocacy-video/" rel="bookmark" title="June 23, 2011">Five ways to rock an advocacy video</a></li>
<li><a href="http://innovativeinteractivity.com/2011/07/06/facebook-product-manager-bubba-murarka/" rel="bookmark" title="July 6, 2011">Facebook product manager Bubba Murarka on designing for the social Web</a></li>
<li><a href="http://innovativeinteractivity.com/2011/12/30/best-of-ii-2011/" rel="bookmark" title="December 30, 2011">Best of II, 2011</a></li>
</ul>
<p><!-- Similar Posts took 14.082 ms --></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2009/04/28/conforming-multimedia-packages-to-user-standards/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2009/04/28/conforming-multimedia-packages-to-user-standards/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Example files and tips for deeplinking with Flash SWF Address</title>
		<link>http://innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/</link>
		<comments>http://innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 02:01:34 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[deeplinking]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[SWF Address]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=1375</guid>
		<description><![CDATA[Back in October I wrote a tutorial on how to utilizing deep links in Flash files. This post has consistently been the most viewed page on the site and I have been receiving several emails asking for help fixing bugs. Although I am happy to help individual cases, I decided it might be best to provide my files as well as publish other II reader's trials, tribulations and success stories to help everyone out there who is also working with SWF Address.]]></description>
				<content:encoded><![CDATA[<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/latest/flashTip.jpg" alt="Flash logo" />
<p>Flash man by <a href="http://www.zerofractal.com/" TARGET = "blank">Zerofractal Studio</a></p>
</div>
<p><strong>7/22/09 UPDATE: Read the latest tips, and download more simplified and updated files <a href="http://www.innovativeinteractivity.com/2009/06/22/flashtip-updated-tips-on-swfaddress/" TARGET = "blank">HERE.</a></strong></p>
<p>Back in October I wrote a <a href="http://www.innovativeinteractivity.com/2008/10/17/flash-tip-deep-linking-with-swfaddress/" TARGET = "blank">tutorial on how to utilizing deep links in Flash files</a>. This post has consistently been the most viewed page on the site and I have been receiving several emails asking for help fixing bugs. Although I am happy to help individual cases, I decided it might be best to provide my files as well as publish other II reader&#8217;s trials, tribulations and success stories to help everyone out there who is also working with SWF Address.</p>
<p><a href="http://www.innovativeinteractivity.com/wp-content/uploads/swf_address/" TARGET="blank">Here is my example</a>, where I built the very basic core functionality of a Flash file using AS2 with deep links. Notice how the forward and back button on the browser works to navigate through the site. </p>
<p>(You aren&#8217;t judging the lack of design, right?? &#8230; hey, I am a student so I have to balance my time!)</p>
<p><a href="http://www.innovativeinteractivity.com/wp-content/uploads/swf_address.zip" TARGET="blank">Click here to download these files.</a> Included you will find eight files:</p>
<p>swf_address.fla (CS3)<br />
swf_address.swf<br />
index.html<br />
AC_RunActiveContent.js<br />
SWFAddress.as<br />
SWFAddressEvent.as</p>
<p>swfaddress folder with two files:<br />
swfaddress.html<br />
swfaddress.js</p>
<p>I suggest that you begin by opening my file, adding buttons and the corresponding code to make it work on your own. Then, start with a fresh .fla in the same directory, using all of the other javascript files, and try to make that work. Once you get the basic functionality working, then try to integrate it into a larger project with other code. This way you will know whether or not pre-existing code is preventing your deep links from working correctly.  </p>
<p>Here are case examples from II readers who have used it in their projects:</p>
<p>Pieter Brink successfully integrated it into his African production company website. He got it working from my <a href="http://www.innovativeinteractivity.com/2008/10/17/flash-tip-deep-linking-with-swfaddress/" TARGET = "blank">initial tutorial</a>, so congrats to him!</p>
<p>Camilo Cadena is incorporating deeplinking into a small business site. Currently, this version has a bug in IE 6 and 7 that aborts the script and begins looping if the user repeatedly hits the back button. I am assuming it is because the file is so large that it takes a second for the deep link to update, and this delay breaks the code. While he works out this last bug, here are his tips for getting as far as he did:</p>
<ul>
<li>&#8220;space (renders as &#8220;%20&#8243;) underscores or dashes are not-friendly characters&#8221; for the deep link declarations</li>
<li>&#8220;the value on the declared title MUST match the property name after &#8220;$&#8221; sign&#8221;</li>
<li>&#8220;While debugging, I erased the SWFAddress.setStatus(&#8216;STATUS&#8217;) [in the onRollOver state] and at the end worked fine without it.&#8221;</li>
<li>Most importantly, &#8220;coding can be challenging, can be frustrating at times, but once things work out, yummy, code goes back to cool.&#8221; That is something we can all agree with!</li>
</ul>
<p>Reader Julianne Veterre is also currently on the verge of getting it to work. Since she is using CS4 (lucky her) I cannot see her files, but here is her situation in case others have done through something similar and figured it out:</p>
<p>&#8220;I have the pages and the links changing. However my loader quit working, and when you hit the back button, in FF, the link changes but the page stays the same&#8230;and in IE hitting the back button takes you all the way back out of the page.&#8221;</p>
<p>So, for all you programmers out there, if you can help Camilo and/or Julianne, please leave suggestions in the comments! For everyone else, I hope my example files help you accomplish deep linking for your future projects.</p>
<p>Happy coding II readers!</p>
<p><strong>Other posts that might interest you:</strong>
<ul class="similar-posts">
<li><a href="http://innovativeinteractivity.com/2011/09/20/ave-abc-visualization-editor/" rel="bookmark" title="September 20, 2011">Move over Dipity! AVE, a new interactive timeline editor to put on your radar</a></li>
</ul>
<p><!-- Similar Posts took 9.470 ms --></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2009/02/25/example-files-and-tips-for-deeplinking-with-flash-swf-address/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>FlarToolkit introduces augmented reality using Flash</title>
		<link>http://innovativeinteractivity.com/2009/02/11/flartoolkit-introduces-augmented-reality-using-flash/</link>
		<comments>http://innovativeinteractivity.com/2009/02/11/flartoolkit-introduces-augmented-reality-using-flash/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 00:10:49 +0000</pubDate>
		<dc:creator>Tracy Boyer Clark</dc:creator>
				<category><![CDATA[Programming tips]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[FlarToolkit]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.innovativeinteractivity.com/?p=1296</guid>
		<description><![CDATA[My former classmate Jason Tucker passed along a fascinating concept that he discovered using FlarToolkit. In layman's terms, he described it to me as a tool that "uses your webcam, tracks a shape and then uses that with PaperVision and Flash Player 10 to create an augmented reality." He continued by saying that "you could potentially use it to track a person's eyes and use their webcam to control a panoramic image as they rotate their head." That got my attention!]]></description>
				<content:encoded><![CDATA[<div class="captionleft"><img src="http://www.innovativeinteractivity.com/wp-content/themes/tma/images/latest/augmented_reality_header.jpg" alt="Image credit: Columbia University's New Media Technology Center" />
<p><a href="http://www.columbia.edu/cu/record/23/20a/reality.html" TARGET = "blank">Image credit: Columbia University&#8217;s New Media Technology Center</a></p>
</div>
<p>My former classmate Jason Tucker passed along a fascinating concept that he discovered using FlarToolkit. In layman&#8217;s terms, he described it to me as a tool that &#8220;uses your webcam, tracks a shape and then uses that with PaperVision and Flash Player 10 to create an augmented reality.&#8221; He continued by saying that &#8220;you could potentially use it to track a person&#8217;s eyes and use their webcam to control a panoramic image as they rotate their head.&#8221; That got my attention!</p>
<p>I am still trying to figure out what exactly <a href="http://www.howstuffworks.com/augmented-reality.htm" TARGET = "blank">&#8220;augmented reality&#8221;</a> means. GE is using it in an <a href="http://ge.ecomagination.com/smartgrid/#/augmented_reality" TARGET = "blank">interactive about their smart grid</a>. I went to check it out, but it couldn&#8217;t find my MacBook Pro&#8217;s built-in camera (which obviously is a major problem). I watched their promo video though and my curiosity grew:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NK59Beq0Sew&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/NK59Beq0Sew&#038;rel=0&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><a href="http://www.youtube.com/watch?v=NK59Beq0Sew&#038;feature=related" TARGET = "blank">> Watch the original video on YouTube and other augmented reality videos</a></p>
<p>Blogger <a href="http://www.mikkoh.com/blog/?page_id=168" TARGET = "blank">Mikko Haapoja</a> has two great posts both <a href="http://www.mikkoh.com/blog/?p=129" TARGET = "blank">introducing and describing the concept</a>, and <a href="http://www.mikkoh.com/blog/?p=182" TARGET = "blank">giving an informative tutorial on how to get started</a>.</p>
<p>According to <a href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en" TARGET = "blank">another blog</a>, FlarToolkit uses AS3 and was originally written in Japanese.</p>
<p>Jason put it best in his email: &#8220;I don&#8217;t know what the journalism application could be, but it is certainly cool nonetheless.&#8221;</p>
<p><a href="http://www.cnn.com/2008/TECH/11/06/hologram.yellin/" TARGET = "blank">CNN&#8217;s use of holograms</a> during election night is a type of augmented reality, which got <a href="http://news.cnet.com/stop-the-insanity-cnns-hologram-was-horrendous/" TARGET = "blank">mixed reaction</a> from the blogosphere. I wonder if there will be other instances of this technology use in the near future &#8230;</p>
<p><strong>Other posts that might interest you:</strong>
<ul class="similar-posts">
<li><a href="http://innovativeinteractivity.com/2011/09/20/ave-abc-visualization-editor/" rel="bookmark" title="September 20, 2011">Move over Dipity! AVE, a new interactive timeline editor to put on your radar</a></li>
</ul>
<p><!-- Similar Posts took 8.068 ms --></p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: left; margin-left: 5px; margin-right: 5px;"><g:plusone size="tall" count="1" href="http://innovativeinteractivity.com/2009/02/11/flartoolkit-introduces-augmented-reality-using-flash/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://innovativeinteractivity.com/2009/02/11/flartoolkit-introduces-augmented-reality-using-flash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
