<?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>JavaScript Workshop &#187; Web stuff</title>
	<atom:link href="http://www.javascriptworkshop.com/category/web-stuff/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.javascriptworkshop.com</link>
	<description>Helping others learn JavaScript and web development in general.</description>
	<lastBuildDate>Tue, 06 Sep 2011 11:10:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Monetizing Directly with Advertising</title>
		<link>http://www.javascriptworkshop.com/2010/09/02/monetizing-directly-with-advertising/</link>
		<comments>http://www.javascriptworkshop.com/2010/09/02/monetizing-directly-with-advertising/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 12:38:21 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=1266</guid>
		<description><![CDATA[Advertising is by far the most popular monetization method that bloggers use. After deciding whether to show ads, the next decision is which type. The most popular advertising system with bloggers is Google’s AdSense, but there are several other advertising system options (affiliate networks), including: Amazon Associates: https://affiliate-program.amazon.com/ Commission Junction: https://www.cj.com/ Text Link Ads: http://www.text-link-ads.com/ [...]]]></description>
			<content:encoded><![CDATA[<p>Advertising is by far the most popular monetization method that bloggers use. After deciding whether to show ads, the next decision is which type. The most popular advertising system with bloggers is Google’s <a href="https://www.google.com/adsense/" target="_blank">AdSense</a>, but there are several other advertising system options (affiliate networks), including:</p>
<ul>
<li>Amazon Associates: <a target="_blank" href="https://affiliate-program.amazon.com/">https://affiliate-program.amazon.com/</a></li>
<li>Commission Junction:  <a href="https://www.cj.com/" target="_blank">https://www.cj.com/</a></li>
<li>Text Link Ads:  <a href="http://www.text-link-ads.com/" target="_blank">http://www.text-link-ads.com/</a></li>
<li>Link Share:  <a href="http://www.linkshare.com/" target="_blank">http://www.linkshare.com/</a></li>
<li>AdGenta:  <a href="http://www.qumana.com/adgenta.htm" target="_blank">http://www.qumana.com/adgenta.htm</a></li>
<li>Blogads:   <a href="http://www.blogads.com/" target="_blank">http://www.blogads.com/</a></li>
<li>CrispAds:  <a href="http://www.crispads.com/" target="_blank">http://www.crispads.com/</a></li>
<li>IntelliTXT:   <a href="http://www.vibrantmedia.com/" target="_blank">http://www.vibrantmedia.com/</a></li>
<li>DoubleClick:  <a href="http://www.doubleclick.com/" target="_blank">http://www.doubleclick.com/</a></li>
<li>Kanoodle:  <a href="http://www.kanoodle.com/" target="_blank">http://www.kanoodle.com/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2010/09/02/monetizing-directly-with-advertising/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is a ping?</title>
		<link>http://www.javascriptworkshop.com/2010/02/03/what-is-a-ping/</link>
		<comments>http://www.javascriptworkshop.com/2010/02/03/what-is-a-ping/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:36:22 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=1264</guid>
		<description><![CDATA[Ping, in the simplest terms, is an Internet tool that knocks on the doors of search engines and directories to invite them to crawl your website or blog. When you publish a post on your blog, modern blogging programs send a signal to a pinging service such as Pingomatic which relays a digital invitation to [...]]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://en.wikipedia.org/wiki/Ping">Ping</a>, in the simplest terms, is an Internet tool that knocks on the doors of search engines and directories to invite them to crawl your website or blog.</p>
<p>When you publish a post on your blog, modern blogging programs send a signal to a pinging service such as <a target = "_blank" href="http://pingomatic.com/">Pingomatic</a> which relays a digital invitation to seach engines, tagging services, and other web crawling services to visit your blog.</p>
<p>If you wish to manually ping, do it more than once within a reasonable length of time can result in penalization. Pinging is like submission to a search engine and carries penalization for abuse.</p>
<p>Manual pinging is a great way to reach search engines and directories outside of the most popular indexing services.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2010/02/03/what-is-a-ping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Ways to Speed Web Page Download Time</title>
		<link>http://www.javascriptworkshop.com/2008/11/27/10-ways-to-speed-web-page-download-time/</link>
		<comments>http://www.javascriptworkshop.com/2008/11/27/10-ways-to-speed-web-page-download-time/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 06:42:11 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[page downloading]]></category>
		<category><![CDATA[Speeding web pages]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=216</guid>
		<description><![CDATA[We all want or pages to load as fast as possible. But when we develop our site, time constraints may prevent us from properly designing it for speed. Here are a few tips that should help: 1. Lay out your pages with CSS, not tables 2. Don&#8217;t use images to display text 3. Call up [...]]]></description>
			<content:encoded><![CDATA[<p>We all want or pages to load as fast as possible. But when we develop our site, time constraints may prevent us from properly designing it for speed. Here are a few tips that should help:</p>
<p>1. Lay out your pages with CSS, not tables<br />
2. Don&#8217;t use images to display text<br />
3. Call up decorative images through CSS<br />
4. Use contextual selectors<br />
5. Use shorthand CSS properties<br />
6. Minimize white space, line returns and comment tags<br />
7. Use relative call-ups<br />
8. Remove unnecessary META tags and META content<br />
9. Put CSS and JavaScript into external documents<br />
10. Use / at the end of directory links</p>
<p>For a more detailed explanantion read over this <a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/SpeedUp_WebPages.pdf"> article</a> (.pdf).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/11/27/10-ways-to-speed-web-page-download-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Seven Deadly Sins of Landing Page Usability</title>
		<link>http://www.javascriptworkshop.com/2008/11/16/the-seven-deadly-sins-of-landing-page-usability/</link>
		<comments>http://www.javascriptworkshop.com/2008/11/16/the-seven-deadly-sins-of-landing-page-usability/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 06:05:52 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[web usability]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=233</guid>
		<description><![CDATA[There are seven serious usability mistakes that most corporate websites commit. Interestly, these common errors are often products of sound principles that Web designers mistakenly apply: 1. Too Much Introductory Text on Your Landing Page The worst kind of filler copy usually starts with, &#8220;Welcome to our site&#8221;, click on the blah, blah, etc. Telling [...]]]></description>
			<content:encoded><![CDATA[<p>There are seven serious usability mistakes that most corporate websites commit.  Interestly, these common errors are often products of sound principles that Web designers mistakenly apply:</p>
<p><strong>1. Too Much Introductory Text on Your Landing Page</strong><br />
The worst kind of filler copy usually starts with, &#8220;Welcome to our site&#8221;, click on the blah, blah, etc. Telling people what to do on your site futile.  The user will go where he or she feels like.  People generally read very little on a website.  Instead, users scan the page, picking out words that are relevant to them.</p>
<p><strong>2. Not Showing What Your Site Offers to Users</strong><br />
Many sites are horrible at explicitly stating what they offer and how their services or products differ from those of their key competitors. Keep in mind that users will only spend a few seconds to scan teh site for what they need.</p>
<p><strong>3. Using Gratuitous Animation and Graphics on a Site</strong><br />
The dirty secret among site owners is that they love to see cool animation and graphics, even though these don&#8217;t contain real content.<br />
<span id="more-233"></span><br />
<strong>4. Not Showing Usrs Where They Have Been on Your Site</strong><br />
Knowing what pages have been visited is a basic function that all navigational designs should support. Flash sites are notorious for this basic omission.  Only one-third of corporate sites use link color to show users at a glance where they have been. Without this basic browser function, the result is navigational confusion and users re-visiting the same page twice.</p>
<p><strong>5. Not Telling Users What the Site Does on its Landing Page</strong><br />
One of the most popular links on a website is hte &#8220;About Us&#8221; link.  Most people click to find out what the company does or what the site is all about. It&#8217;s popular because the tag lines and advertising copy are so generic and content-free that users have to work hard to find out who you are or what you sell.</p>
<p><strong>6. Using a Heading to Label a Search Area</strong><br />
Sites that label a &#8220;Search&#8221; area with an information field, followed by a &#8220;Go!&#8221; button waste space with extraneous labeling. Like most search engines, your site&#8217;s internal search should have as few elements as possible to communicate its function.</p>
<p><strong>7. Making a Home Page Link on the Home Page</strong><br />
You should never have a link that points to the current page. If the user clicks it, he or she wastes time and begins to question whether they really are on the home page or not.  Disable or highlight the link of the page the user is currently on to avoid confusion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/11/16/the-seven-deadly-sins-of-landing-page-usability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Color Theory and Web Design</title>
		<link>http://www.javascriptworkshop.com/2008/10/20/color-and-web-design/</link>
		<comments>http://www.javascriptworkshop.com/2008/10/20/color-and-web-design/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 08:57:05 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[color blindness]]></category>
		<category><![CDATA[color theory]]></category>
		<category><![CDATA[color wheel]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=217</guid>
		<description><![CDATA[Color theroy is a set of principles that enables the creation of harmonious color combinations via the comprehension of color relationships. Making things more complicated is the fact that color theory doesn&#8217;t take tints, tones and shades into account, instead it concerns itself solely with the base hues themselves. There are significant psychological aspects to [...]]]></description>
			<content:encoded><![CDATA[<p>Color theroy is a set of principles that enables the creation of harmonious color combinations via the comprehension of color relationships.  Making things more complicated is the fact that color theory doesn&#8217;t take tints, tones and shades into account, instead it concerns itself solely with the base hues themselves.</p>
<p>There are significant psychological aspects to color; it&#8217;s a cultural signifier and can even affect mood. Much of this works on an entirely subconscious level. Marketing and design decisions have long been influenced by the psychology of color. Color schemes are picked for their subconscious significance or for positive associations with the intended audience.</p>
<p>At the most basic level, colors can be categorized by their attributes.  Red-based colors are warm, while blues are cool.  The use of neutral colors such as black, greys and whites, as well as some browns and beiges with the chosen palette limited to accent colors, can help to calm down a design, bringing greater harmony to the palette.</p>
<p><span id="more-217"></span></p>
<p><strong>Color Wheels</strong></p>
<p>A key tool in color theory is the color wheel.  The color wheel is a visual representation of the color spectrum wrapped onto a circular device.  One of the earliest accurate wheels was devised by Goethe in the 19th century, building on the work of Issac Newton.  Newton&#8217;s earlier version didn&#8217;t take into account the idea of complementary symmetry.</p>
<p>The purpose of the color wheel is deceptively simple &#8212; harmonious color combinations consist of any two colors opposite of each other on the color wheel, any three colors eqally spaced around the wheel in a triangle, or any four colors that form a rectangle.  Despite sounding rather rarefield, the color wheel is actually a very useful design device.</p>
<p>For a start, it brings sound scientific principles to something that might otherwise be an incomprehensible and fashion-led veil of confusion. When using a color wheel, it&#8217;s worth looking beyond simple complementary colors.  A design based solely on complementary colors will surely work, but it will also be high-contrast, vibrant, jazzy and perhaps a bit harsh.  Depending on the design, such a color scheme could be very strong or it could be overwhelming. </p>
<p>A color scheme based on analogous colors, meanwhile, is much more likely to feel relaxed and harmonised, although it could be lacking in contrast.  </p>
<p>The color model used in displays such as CRT and LCD montors or televisions is RGB, which stands for red, green and blue.  As displays create images from light emissions rather than pigment, colors are created by addition.  Combining one of the three additive primary colors emitted from the light source, with another in equal amounts, produces an additive secondary color: cyan, magenta or yellow.</p>
<p>In practice, this means each pixel can be lit in a combination of red, green and blue light, creating a maximum of 16,777,216 colors.  A typical human eye can distinguish between 10 milion distinct colors.</p>
<p><a class="externalLink" href = "http://www.colorwheelco.com/"><img src="http://www.javascriptworkshop.com/colorwheel.gif" /></a> <br / ><br / ></p>
<p><strong>Color on the web</strong></p>
<p>Back in the dark days of the early web, it was common to have a monitor with an 8-bit screen depth, meaning there was a maximum usable palette of 256 colors.  Still worse, Macs and Windows machines had slightly different color models, resulting in a maximum usable palette of 216 colors &#8212; 216 common to both platforms.  That was known as the &#8216;web safe&#8217; palette.</p>
<p>Thankfully, today&#8217;s machines routinely offer millions of colors, so the web safe palette can be safely ignored, but that doesn&#8217;t necessarily mean you always should.</p>
<p>There are times, however, when other people&#8217;s screens may not show subtleties.  Gamma, and even the kinds of monitor (LCD or CRT) people are using, cannot be controlled.  If you&#8217;re being too subtle, you may lose it on LCDs.  </p>
<p>On top of this, there&#8217;s the issue of the mobile web.  Many mobile devices such as PDAs and mobile phones may have lower bit depth than PCs or Macs, though an increasing amount can display at least 16-bits per pixel, allowing for thousands of colors.  </p>
<p><strong>Color-blindness</strong></p>
<p>One of the main things to be aware of is people with color-blindness and color deficiencies.  </p>
<p>In fact, one in 10 males are estimated to suffer from some form of color-blindness, primarily deuteranomaly, a form of red-green color-blindness.  As red-green color-blindness is a gender-related deficiency linked to the X chromosome, it&#8217;s much less common in women as it requires the deficiency to be present in both X chromosomes. </p>
<p><strong>Resources</strong></p>
<p>Here are some great articles (.pdf) by Linda Goin about color:</p>
<p><a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_colorschemes1.pdf" />Color Schemes part 1</a> <br />
<a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_colorschemes2.pdf" />Color Schemes part 2: Triad, Tetrad, and the Perception of Depth</a> <br />
<a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_perceptions.pdf" />Color Perceptions</a> <br />
<a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Color_colorusage.pdf" />Color Usage: Color Schemes and Themes</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/10/20/color-and-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating an Internet Radio Talk Show</title>
		<link>http://www.javascriptworkshop.com/2008/07/13/creating-an-internet-radio-show/</link>
		<comments>http://www.javascriptworkshop.com/2008/07/13/creating-an-internet-radio-show/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 00:09:49 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[mixers]]></category>
		<category><![CDATA[podcasting]]></category>
		<category><![CDATA[pre-amp]]></category>
		<category><![CDATA[radio equipment]]></category>
		<category><![CDATA[radio show]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=225</guid>
		<description><![CDATA[I was given the responsibility at my current previous employer to create an internet radio show. This was of course based upon my vast experience in radio engineering and broadcasting which mainly consisted of listening to Howard Stern for years. After hours of online research and calling a few vendors, I was able to purchase [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/screenshot1_thumb.gif" /></p>
<p>I was given the responsibility at my <del>current</del> previous employer to create an internet radio show. This was of course based upon my vast experience in radio engineering and broadcasting which mainly consisted of listening to Howard Stern for years. </p>
<p>After hours of online research and calling a few vendors, I was able to purchase and setup the equipment, work with an online service provider to stream the live feed, and allow the radio show to do remotes as well.</p>
<p>The specific requirements for the radio show I created are probably a little different than what you would need for individual internet podcasting (with telephone interview callers), but this will give you an idea of what would ideally be required.</p>
<p><strong>Internet Radio Show Requirements</strong></p>
<p>1. Allow up to six &#8216;personalities&#8217; to speak on microphones<br />
2. Ability to play sound effects and/or pre-recorded commercials<br />
3. Ability for listeners to call into the show<br />
4. Stream the show &#8216;live&#8217; on the internet on a web page<br />
5. Enable the show to go on remote.</p>
<p><span id="more-225"></span></p>
<p><strong>Equipment</strong> </p>
<p><u>Mixer:</u> This is the brain of the radio show. All the equipment gets plugged into this device, for example, the microphone, headphones, external audio, etc.  The <a class = "externalLink" href = "http://www.audioartsengineering.com">AudioArts</a> (a division of Wheatstone), <a class="externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/air1.pdf">Air 1</a> is a low end, simple &#8220;broadcast console&#8221;.  It only has two microphone inputs so I had to purchase two dual microphone pre-amps to allow the four other microphones to have the same levels as the original two.</p>
<p><img src="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/mixer_1.jpg" /><br />
<br/></p>
<p><u>Microphone Preamplifier:</u> These boost the signal to a standard line level; which all recorders can capture. So I used two dual ones to raise the levels of the other microphones plugged directly into the broadcast console for a total of six microphones.</p>
<p><u>Headphone Amplifier:</u> These raise the volume and clarity of the individual headphones and allow for multiple headphones to be used at once. I purchased a six-input amplifier that was plugged into the master headphone input of the broadcast console.  This allowed for six headphones for the six microphones.</p>
<p><u>Phone Hybrid:</u> To allow listeners to call into your radio show you need some sort of phone hybrid. This is used to connect a telephone line to the studio audio circuit. A common supplier for this equipment is from <a class = "externalLink" href = "http://www.telos-systems.com/">Telos Systems</a>. I purchased the <a class="externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/telos-one-six.pdf">One-x-Six Talk Show System</a> which allows up to six callers to be sent through. You need one phone number and your telephone engineer can setup a phone trunk for the multiple calls to find the next available line.</p>
<p>
<img src="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/equipment_1.jpg" /><br />
</p>
<p><u>Microphone:</u> A good quality microphone is crucial for radio broadcasting so I purchased six Shure microphones.  </p>
<p>
<img src="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/microphone_1.jpg" /><br />
</p>
<p><u>Audio Interface:</u> Broadcasting over the internet requires a good quality audio interface (computer sound card) to receive the input from the broadcast console. I purchased the <a class = "externalLink" href = "http://www.m-audio.com/index.php">M-Audio</a> Fast Track Ultra which uses a USB connection to the computer that will encode the audio feed. </p>
<p><u>Headset:</u> For remotes, you normally use a headphone/microphone headset.  I purchased six Beyer DT290 units for that.</p>
<p><u>Audio Codec device:</u>  Nowadays, doing a remote for a radio show involves using an audio codec device that can transfer the analog audio signal of the broadcaster&#8217;s voice to digital and back to the studio to record and/or stream it.  This device can transfer the signal over standard POTS (analog telephone line), DSL, Cable, Wi-fi or even 3G cellular. This would require two units to process the digital signal (at remote and in studio). </p>
<p>
<img src="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/computer_1.jpg" /><br />
</p>
<p>So if you wanted to transfer your signal over the internet, the device would need an IP codec; to transfer over a POTS line, it would require a POTS codec, etc. There are devices now that have many of these codec&#8217;s built-in like the portable <a class = "externalLink" href="http://www.comrex.com/index.htm">Comrex</a> ACCESS.</p>
<p>Our radio show&#8217;s requirements for remotes was not dependant on the quality as much as the cost and we only were doing a few a year so we used an older analog equipment for that.</p>
<p><u>Laptop:</u>  Since the radio show needed funny sound effects and to be able to play pre-recorded commercials, a laptop was needed (an iPod could possibly have been used) which had all the files installed and ready to go. The problem I encountered was that I needed to find software that would play each sound individually as opposed to a playlist with all of them (i.e. iTunes).</p>
<p>I found a little program called <a class = "externalLink" href ="http://www.blackcatsystems.com/software/soundbyte.html">Sound Byte</a> that can be programmed with multiple &#8216;tracks&#8217; with each sound file attached to a unique button to play instantly.  The laptop was also plugged directly into the broadcast console.</p>
<p>
<img src="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/radioshow_1.jpg" /><br />
</p>
<p><strong>Live Internet Streaming</strong></p>
<p>The last step was to stream the audio feed to our company web site. I did not have the time to setup our own streaming server (or knew how to anyways) so I used <a class="externalLink"  href="http://www.onstreammedia.com/">Onstream Media</a>, which is one of the larger online service providers of live and on-demand Internet video and audio.  We just had to give them the IP address of the audio file that I was encoding with <a class="externalLink" href="http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx">Windows Media Encoder</a> and they handled the rest.</p>
<p>The company gave me a url of the &#8216;live&#8217; audio feed (.wma) and I used an embedded instance of Windows Media Player for visitors to hear it. WMP is not the perfect solution because of some discrepancies with non-IE web browsers, but it was sufficient for the time being. </p>
<p>Many radio stations use a flash interface for their web audience to listen to live shows. You would have to encode the audio with <a class = "externalLink" href= "http://www.adobe.com/products/flashmediaserver/flashmediaencoder/">Flash Media Encoder</a>, and use a custom Flash audio player. Onstream Media would also provides <a class="externalLink" href = "http://www.adobe.com/products/flashmediaserver/">Flash Media servers</a> for audio streaming as well.</p>
<p><strong>Post Production</strong></p>
<p>For post production of the audio after streaming (editing or format conversion), I use <a class ="externalLink" href="http://www.adobe.com/products/audition/">Adobe Audition</a>. Though there are freeware alternatives such as <a class="externalLink" href = "http://audacity.sourceforge.net/">Audacity</a> that could be used as well.</p>
<p><strong>Running the Radio Show</strong></p>
<p>Apart from the &#8216;live&#8217; personalities, we needed one person to run the audio console to adjust the levels  and be in charge of the sound effects and commercials. Another person was needed to start the encoding/streaming of the audio as well as screen the phone calls. Real radio stations have many people behind the scenes, but we are doing it with two people since it is only a 30-minute weekly show with limited viewership.</p>
<p>Guess who has to answer/screen the phone calls? ugh&#8230; </p>
<p><strong>Cost</strong></p>
<p>Here is the <a class="externalLink" href="http://www.javascriptworkshop.com/PHPWebHost/internet_radio/pricequote-1.jpg">price quote</a> from the vendor I used for most of the equipment to give you an idea of the costs involved.<br />
<br/></p>
<div id="update"><strong>Updated December 2008</strong><br />
A great idea to promote a companies products or services as long as you have a well thought out plan on how you will achieve ROI.  As expected, this company had no clue on how to do this and has not yet broke even of its initial expenditure.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/07/13/creating-an-internet-radio-show/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>10 Ways to Increase Website Stickiness</title>
		<link>http://www.javascriptworkshop.com/2008/06/07/10-ways-to-increase-website-stickiness/</link>
		<comments>http://www.javascriptworkshop.com/2008/06/07/10-ways-to-increase-website-stickiness/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 03:27:53 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[website stickiness]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=219</guid>
		<description><![CDATA[Not only are users browsing your website looking for a reason to engage, but they are speaking to a coworker, watching TV, holding a conference call&#8230;you get the point. Internet users are notorious for multi-tasking and, in addition, there are many options out there for users to find the same information on your Web pages. [...]]]></description>
			<content:encoded><![CDATA[<p>Not only are users browsing your website looking for a reason to engage, but they are speaking to a coworker, watching TV, holding a conference call&#8230;you get the point.  Internet users are notorious for multi-tasking and, in addition, there are many options out there for users to find the same information on your Web pages.  </p>
<p>Increasingly, people are looking for past company or brand as a lone source of information.  They are looking to competing websites, message boards, forums and each other.</p>
<p>So how do we compete and keep the users on our sites?</p>
<p><span id="more-219"></span></p>
<p><strong>1. Make Initial Site Interaction Seamless</strong><br />
The initial interactions with your site is critical.  By limiting bottlenecks your users will see the content quickly and not bounce directly off your site</p>
<p><strong>2. Make Initial Site Interaction Relevant</strong><br />
The main door to your site no longer needs to be the home page.  This all-encompassing uberpage gives a great overview of site offerings but does a poor job of presenting user-specific content.  Look at your site&#8217;s top referrers, search terms and campaigns and make sure you have relevant landing pages.</p>
<p><strong>3. Make it Easy for Them to Find Their Way</strong><br />
A little known fact is that internal site search converts three times better than traditional global navigation.  A prominent search box providing relevant results is essential.</p>
<p><strong>4. Serve Dependable, Fresh Content</strong><br />
Get your users addicted to what you offer and serve it to them in a consistent place on your site.</p>
<p><strong>5. Produce Exclusive Content</strong><br />
Driving consumers to exclusive Web content is a great way to keep users coming back.</p>
<p><strong>6. Reduce Ad Clutter</strong><br />
There are creative ways to reduce visual ad clutter on your site without hurting your bottom line.</p>
<p><strong>7. Start a Conversation with your Users</strong><br />
Users need a place to voice their opinions about your content, services or products.  If you don&#8217;t give them the option, they will most certainly go someplace else to do the same.</p>
<p><strong>8. Leverage User Feedback</strong><br />
Listening to users&#8217; likes and dislikes helps you keep your site optimized for your users.</p>
<p><strong>9. Create and Optimize your Website&#8217;s Support Section</strong><br />
The support section is typically one of the most ignored areas of a website and typically consists of an antiquated anchor-linked FAQ.  By leveraging technology, you can bubble up relevant support topics, have users answer each others questions and foster discussion about complex topics.</p>
<p><strong>10. Leverage Innovative Technology</strong><br />
With the abundance of new technology available, creating sticky sites is easier than ever. Creative video content, mashups and site-based media players will keep your site sticky and fresh.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2008/06/07/10-ways-to-increase-website-stickiness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSLT In Action</title>
		<link>http://www.javascriptworkshop.com/2007/10/22/xslt-in-action/</link>
		<comments>http://www.javascriptworkshop.com/2007/10/22/xslt-in-action/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 22:37:12 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=189</guid>
		<description><![CDATA[Raw XML is rarely suitable for direct presentation, and frequently must be organized, or transformed, to suit the needs of a specific output device. The most widely used option for this is XSLT. Older techniques such DTD and Schemas can be used as well, but as discussed in my first post about XML, XSLT was [...]]]></description>
			<content:encoded><![CDATA[<p>Raw XML is rarely suitable for direct presentation, and frequently must be organized, or transformed, to suit the needs of a specific output device.  The most widely used option for this is XSLT. Older techniques such DTD and Schemas can be used as well, but as discussed in my <a href = "http://www.javascriptworkshop.com/2007/09/09/xml-basics-video-tutorials/">first post</a> about XML, XSLT was specifically created for this and should be used when possible.</p>
<p>XSLT provides an effective procedure &#8211; a tree transformation process &#8211; for manipulating XML at the level of elements and attributes.  A special-purpose language, XSLT has features that simplify that task of defining transformations of XML. </p>
<p>Here is the <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog.xml">xml file</a> (.xml) that is used throughout the explanations.</p>
<p><span id="more-189"></span></p>
<p>In many ways, XSLT can function like a database language such as SQL (Structured Query Language), because it enables you to extract the data you want from XML documents, much like applying an SQL statement to a database. Some people even think of XSLT as the SQL of the Web, and if you&#8217;re familiar with SQL, that gives you some idea of the boundless horizons available to XSLT. </p>
<p><strong>How XSLT Processors Work</strong></p>
<p>The XSLT processor (the browser in this case), analyzes the XML document and converts it into a tree node. From this workshop you should all know what a node is right? A node is nothing more than one individual piece of the XML document (like an element, an attribute, or some text content).  A node tree is a hierarchal representation of the entire XML document.  Remember, an XHTML document is just another form of XML.</p>
<p>Once the processor has identified the nodes in the source XML, it then looks to a XSLT style sheet for instructions on what to do with those nodes.  Those instructions are contained in templates.  Each template has two parts: first, a sort of label that identifies the nodes in the XML document that the template can be applied to, and second, instructions about the actual transformation that should take place.</p>
<p><strong>XSLT Components</strong></p>
<p>There are basically two kinds of components in an XSLT style sheet: instructions and literals.  The XSLT instructions describe how the source XML document will be transformed.  The literals &#8212; typically HTML code and text &#8212; are output just as they appear in the style sheet.  In your root template, you create the structure for the final transformed document.  For HTML output, you&#8217;ll want to add HTML header information (head, body, etc.) at the very least.  And if you like you can add extensive HTML formatting as well.</p>
<p><strong>Outputting a Node&#8217;s Content</strong></p>
<p>Once you created the HTML code that will format a given node&#8217;s content, you&#8217;ll want to actually output that content (called string value) .  The simplest way to add the content of a node (like an element) to the output document is to write it out as it is.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:value</span> of <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;expression&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div>

<p> where expression identifies the node set from the XML source document whose content should be output at this point.</p>
<p>The string value of a node is generally the text that that node contains.  If the node has child elements, however, the string value includes the text contained in those child elements as well.  If the node set is empty, there is nothing to output.  </p>
<p><strong>Batch-Processing Nodes</strong></p>
<p>The xsl:for-each element can process all the nodes in a given set in the same way, one after another.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:for-each</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;expression&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsl:for-each<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>where expression identifies the node set to process through.</p>
<p>The xsl:for-each element is typically used to create HTML tables, with the opening and closing table tags preceding and following the element, respectively, and with the tr and td tags as part of the processing.  In general, place the xsl:for-each right before the rules that should be repeated for each node found.  </p>
<p>Here is the <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog1.xsl">XSLT stylesheet</a> (.xsl) and the <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog1.xml">transformed results</a>.</p>
<p><strong>Sorting Nodes Before Processing</strong></p>
<p>By default, the nodes are processed in the order in which they appear in the document.  If you&#8217;d like to process the in some other order, you can add an xsl:sort element to the xsl:apply-templates or xsl:for-each elements.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:for-each</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;catalog/video&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:sort</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;title&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsl:for-each<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Here is the updated <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog2.xsl">XSLT stylesheet</a> (.xsl) and the <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog2.xml">transformed results</a>.</p>
<p><strong>Processing Nodes Conditionally</strong></p>
<p>It&#8217;s not uncommon to want to process a node or a set of nodes only if a certain condition is met.  The condition is written as an expression.  For example, you might want to perform a certain action if a particular node set is not empty, or if the string value of a node is equal to a particular word.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:if</span> <span style="color: #000066;">test</span>=<span style="color: #ff0000;">&quot;expression&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsl:if<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Here is the updated <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog3.xsl">XSLT stylesheet</a> (.xsl) and the <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog3.xml">transformed results</a>.</p>
<p>The xsl:if instruction only allows for one condition and one resulting action.  You can use xsl:choose when you want to test for several different situations, and react accordingly to each one.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:choose<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:when</span> <span style="color: #000066;">test</span>=<span style="color: #ff0000;">&quot;expression&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsl:when<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;xsl:otherwise<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
     <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsl:otherwise<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/xsl:choose<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Here is the updated <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog4.xsl">XSLT stylesheet</a> (.xsl) and the <a class = "externalLink" href = "http://www.javascriptworkshop.com/PHPWebHost/xslt/VideoCatalog4.xml">transformed results</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2007/10/22/xslt-in-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Tips for Writing Code for People not Computers</title>
		<link>http://www.javascriptworkshop.com/2007/10/03/10-tips-for-writing-code/</link>
		<comments>http://www.javascriptworkshop.com/2007/10/03/10-tips-for-writing-code/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 02:45:14 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[writting code]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=177</guid>
		<description><![CDATA[In a recent article from Visual Studio Magazine, Rod Stephens wrote an article on how to write better code for yourself as well as other people who may view it. These tips can be applied to almost any programming language (JavaScript, .NET, PHP, etc.) so it is useful for any web developer. &#8220;A computer does [...]]]></description>
			<content:encoded><![CDATA[<p>In a recent article from <a class = "externalLink" href = "http://www.ftponline.com/vsm/">Visual Studio Magazine</a>, Rod Stephens wrote an article on how to write better code for yourself as well as other people who may view it.  These tips can be applied to almost any programming language (JavaScript, .NET, PHP, etc.) so it is useful for any web developer.</p>
<p><em>&#8220;A computer does exactly what the code tells it to do and doesn&#8217;t care what the code looks like.  At the same time, it&#8217;s easy to forget that you write code for people, not computers.  Ultimately, you are satisfying the requirements of a user somewhere, not just writing text that will execute in a vacuum.  In a development environment of any size, the code you write will be reviewed and or maintained by other people, so you need to make sure that you are clear about your intentions.&#8221;</em></p>
<p><span id="more-177"></span></p>
<p>1. <u>Use an abundance of comments to explain what the code is doing and why. </u>  The reader should never need to guess what the code is doing.  Debugging code should be a simple matter of comparing the code&#8217;s purpose to its behavior.</p>
<p>2. <u>Use good variable names.</u>  Use Hungarian notation if required, but make the rest of hte name meaningful. </p>
<p>3. <u>Use constants or enumerated types instead of magic numbers and hard-coded strings.</u>  The best part about this approach: It&#8217;s another way for you to incorporate free comments.</p>
<p>4. <u>Plan before you code.</u>  Many developers just sit down and start typing, but it&#8217;s always better to at least sketch out a design before you code.  Designing and programming can help you think about code in two different ways, essentially giving you two perspectives on the code.</p>
<p>5. <u>Make sure code lines up nicely to show its structure.</u>  Your IDE helps but it can still do some weird things, particularly on continued lines.  </p>
<p>6. <u>Avoid sneaky tricks.</u>   If you need to use a complicated piece of code, comment it throughly.</p>
<p>7. <u>Make routines small and with a well-defined purpose. </u>  If you can&#8217;t describe a routine&#8217;s purpose in one or two statements, break it up into smaller pieces.  Keeping routines compact and discrete makes it easier to return to the code later and make adjustments.</p>
<p>8. <u>Keep lines of code small enough to read without scrolling far to the right.</u>  If a line is too long, continue it on the next line.</p>
<p>9. <u>Limit variable scope.</u>  The more limited a variable&#8217;s scope, the easier it is to see what it is doing.</p>
<p>10. <u>Minimize side effects.</u>  Routines that modify their parameters can be extremely confusing because the change is not obvious from the outside.  Modify parameters as seldom as possible, and use comments to make it obvious whenever you do so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2007/10/03/10-tips-for-writing-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML Basics &#8211; Video Tutorials</title>
		<link>http://www.javascriptworkshop.com/2007/09/09/xml-basics-video-tutorials/</link>
		<comments>http://www.javascriptworkshop.com/2007/09/09/xml-basics-video-tutorials/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 14:46:43 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[video tutorials]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=104</guid>
		<description><![CDATA[XML (Extensible Markup Language) is based on the same parent technology as HTML or XHTML. XML looks a lot like HTML, complete with tags, attributes and values. But rather that serving as a lagnguage just for creating web pages, XML is a language for creating other languages. You use XML to design your own custom [...]]]></description>
			<content:encoded><![CDATA[<p><a class="externalLink" href = "http://en.wikipedia.org/wiki/XML">XML</a> (Extensible Markup Language) is based on the same parent technology as HTML or XHTML.  XML looks a lot like HTML, complete with tags, attributes and values.  But rather that serving as a lagnguage just for creating web pages, XML is a language for creating other languages. You use XML to design your own custom markup language and then you use that language to format your own documents.  Your custom markup language, officially called an XML application will contain tags that actually describe the data that they contain.  </p>
<p>If a tag indentifies data, that data becomes available for other tasks.  A software program can be designed to extract just the information that it needs, perhaps join it with data from another source, and finally output the resulting combination in another form for another purpose.  Instead of being lost on an HTML-based web page, labeled information can be reused as often as neccessary.</p>
<p><span id="more-104"></span></p>
<p>But, as always, power comes with a price.  XML is not nearly as lenient as HTML.  To make it easy for XML parsers (software that reads and interprets XML data, either independently or within a browser), XML demands careful attention to case, quotation marks, closing tags and other details.  </p>
<p><strong>XML Schemas</strong></p>
<p>A DTD, or Document Type Definition, is an old-fashioned system of rules with a peculiar, rather limited syntax.  DTDs have serveral disadvantages with respect to schemas written with XML Schema.  First, DTDs are written in a syntax that has little to do with XML and cannot be parsed with an XML parser.  Second, all the declarations in DTDs are global, which means you can&#8217;t define two different elements with the same name. Third, DTDs cannot control what kind of information in a given element or attribute can contain.</p>
<p>The XML Schema language, developed by the W3C, attempts to remedy each of these problems.  XML Schema, written in XML itself, lets you define both global elements and local elements. </p>
<p><strong>XSLT</strong></p>
<p>Perhaps the most powerful tools for working with XML documents are XSLT (Extensible Stylesheet Language Transformations) and XPath.  XSLT lets you extract and transform the information into any shape you need.  For example, you can use XSLT to create summary and full versions of the same document.  </p>
<p>And perhaps most importantly, you can use XSLT to convert XML into HTML.  When you are applying this template (XSLT), you use a pattern to specify the nodes that the template can be applied to.  When you call a template, you use an expression to specify the node set that should be processed.  You also use expresions in other instructions to isolate and then further process given node sets.</p>
<p>You write both patterns and expressions using XPath syntax. XPath is a system for identifying the different parts of the document. More specifically it describes the node sets by specifying their location in the XML document.  </p>
<p>The main difference between patterns and expressions is that the former are basically context-free, which means that a pattern like &#8220;name&#8221; matches any name element in the XML document regardless of its location.  Expressions, on the other hand, can only be evauluated by looking at the context in which they appear.  An expression &#8220;name&#8221; might refer to only name nodes within subspecies elements, depending on where it is used.</p>
<p><strong>In Use Today</strong></p>
<p>Content mangement software vendors are leading companies into XML by providing systems that enable you to accomplish what you want &#8211; and need &#8211; to do with your content. Content in the XML format is easily managed than content in a basic text format or a word processing format because the XML is not bogged down with proprietary coding or formatting.  Additionally, the XML information is identified by the elements used around the content.</p>
<p>Using a scripting language or stylesheet, chunks of the XML content can be pulled from one document and used to produce other documents.  Additionally, data can be sorted and retrieved to create custom web pages, database content, or hand-held device files.  When changes are made to each linked content chunk, all of the documents that contain that content can be automatically updated.  </p>
<p>Once your information is in XML and accessible, stylesheets and XSLT can be used to push your information to the web, PDF, cellular phones, iPod (PodCasts), and to some handheld devices.</p>
<p><strong>Tool for Writing XML</strong></p>
<p>XML, like HTML can be written with any text editor.  There are specialized editors that can help you write it by giving specialized views and XSLT integration. A great free tool that you should checkout is <a class = "externalLink" href = "http://www.codeplex.com/xmlnotepad">XML Notepad 2007</a>.  There are also many commerical grade applications, including the very popular ones by <a class = "externalLink" href = "http://www.altova.com/products.html">Altova</a> that can do a whole lot more.</p>
<p>Of course what no matter what tool you use, all XML documents have an <strong>.xml</strong> extension and XSLT stylesheets have an <strong>.xsl</strong> extension.</p>
<p><strong>Browser Support</strong></p>
<p>Since the majority of people using XML and XSLT will be in the broswer at first, it is a good idea to see what the browser support is:</p>
<p><u>Internet Explorer</u> &#8211; Version 6 supports XML, CSS, XSLT, and XPath. </p>
<p><u>Firefox</u> &#8211; Version 1.0.2 supports XML and XSLT (and CSS).</p>
<p><u>Mozilla</u> &#8211; Includes <a class = "externalLink" href = "http://expat.sourceforge.net/"> Expat</a> for XML parsing and supports XML + CSS. Limited support for Namespaces.</p>
<p><u>Netscape</u> &#8211; Version 8 uses the Mozilla engine.</p>
<p><u>Opera</u> &#8211; Version 9 supports XML and XSLT (and CSS). Version 8 supports only XML + CSS.</p>
<p><strong>Reference Material</strong></p>
<p>Apart from the many online resources on the web to help you learn XML, here are two tutorials (.pdf) on <a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/XML_Intro_I.pdf">Introduction to XML</a> and <a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/XML_Intro_II.pdf">DTD and XSLT Basics</a> by Tom Dell&#8217;Aringa.</p>
<p>Here are some great <strong>videos</strong> (.zip) explaining XML basics and XSLT by Joe Marini.</p>
<p><u>Basics</u><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/Basics/XML_Overview_Video.zip">What is XML?</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/Basics/XML_SampleData_Video.zip">Describing Information</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/Basics/XML_ProCon_Video.zip">Advantages and drawbacks of XML</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/Basics/XML_Example_Video.zip">Real Life Examples</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/Basics/XML_Syntax_Video.zip">Proper XML Syntax</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/Basics/XML_Valid_Video.zip">Valid Documents</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/Basics/XML_Namespaces_Video.zip">Namespaces in XML</a></p>
<p><u>XSLT</u><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/XSLT/XML_XSLT_Video.zip">What is XSLT?</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/XSLT/XML_Style_Video.zip">Styling XML with XSLT</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/XSLT/XML_Style_Simple_Video.zip">Simple XSLT styling</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/XSLT/XML_CSS_Video.zip">Using XSLT with CSS</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/XSLT/XML_XSLT_Repeating_Video.zip">Repeating items</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/XSLT/XML_XSLT_Logic_Video.zip">Conditional logic</a><br />
<a href = "http://www.javascriptworkshop.com/wp-content/uploads/zip/XML/XSLT/XML_XSLT_Sort_Video.zip">Sorting and rearranging XML data</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2007/09/09/xml-basics-video-tutorials/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Top 10 Developer Firefox Extensions</title>
		<link>http://www.javascriptworkshop.com/2007/01/12/top-10-firefox-extensions/</link>
		<comments>http://www.javascriptworkshop.com/2007/01/12/top-10-firefox-extensions/#comments</comments>
		<pubDate>Fri, 12 Jan 2007 05:19:00 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Firefox extensions]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=100</guid>
		<description><![CDATA[The most extensible of all browsers is Firefox, which now has over 1,000 extensions. These are almost all cross-platform, so they work on Macs and Linux machines as well as Windows. They include debugging consoles, syntax validators, cookie manipulators, accessibility tools, manuals, and measurement tools. Add to that extensions that can rewrite the pages and [...]]]></description>
			<content:encoded><![CDATA[<p>The most extensible of all browsers is Firefox, which now has over 1,000 extensions. These are almost all cross-platform, so they work on Macs and Linux machines as well as Windows. They include debugging consoles, syntax validators, cookie manipulators, accessibility tools, manuals, and measurement tools. Add to that extensions that can rewrite the pages and stylesheets you’re using and suddenly Firefox becomes by far the most developer-friendly of all the browsers available. </p>
<p><span id="more-100"></span> </p>
<p>1. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/60/">Web Developer</a>  &#8211; Is the grand-daddy of all extensions.<br />
2. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/1843/">FireBug</a> &#8211; Superior upgrade to the Firefox debugging console.<br />
3. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/1891/">Mozilla Accessibility Extension</a> &#8211; How it is like to be a disabled user.<br />
4. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/402/">Fangs Screen Reader Emulator</a> &#8211; Simulates the Fang Screen reader.<br />
5. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/271/">ColorZilla</a> &#8211; Making sure page elements have matching colors.<br />
6. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/532/">LinkChecker</a> &#8211; Checkes the validity of every link on a page.<br />
7. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/2076/">JSView</a> &#8211; Opens all external CSS and JavaScript files in own windows.<br />
8. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/1729/">Execute JS </a> &#8211; Enables you to apply JavaScript directly to a page.<br />
9. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/573/">Add N Edit Cookies</a> &#8211; Edit cookies during testing.<br />
10. <a class = "externalLink" href = "https://addons.mozilla.org/firefox/1290/">UrlParams</a> &#8211; View and edit the form fields and data that is submitted.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2007/01/12/top-10-firefox-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goodbye FrontPage&#8230;Hello Expression Web</title>
		<link>http://www.javascriptworkshop.com/2006/06/01/goodbye-to-microsoft-frontpage/</link>
		<comments>http://www.javascriptworkshop.com/2006/06/01/goodbye-to-microsoft-frontpage/#comments</comments>
		<pubDate>Thu, 01 Jun 2006 05:08:59 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[Expression Web]]></category>
		<category><![CDATA[FrontPage]]></category>

		<guid isPermaLink="false">http://wordpress.stepanskiconsulting.com/?p=35</guid>
		<description><![CDATA[Microsoft will be releasing Expression Studio, a set of web-design and graphics software that will try to compete with tools from Adobe. These products are Graphic Designer Expression Design, Interactive Designer Expression Blend, Expression Web and Expression Media Expression Web is the replacement for FrontPage 2003 which will tightly integrate with their sever-side technology ASP.NET [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft will be releasing <a class="externalLink" href="http://www.microsoft.com/expression/expression-studio/overview.aspx">Expression Studio</a>, a set of web-design and graphics software that will try to compete with tools from Adobe. These products are <del>Graphic Designer</del> <a class="externalLink" href="http://www.microsoft.com/expression/products/overview.aspx?key=design">Expression Design</a>, <del>Interactive Designer</del> <a class="externalLink" href="http://www.microsoft.com/expression/products/overview.aspx?key=blend">Expression Blend</a>, <a class="externalLink" href="http://www.microsoft.com/expression/products/overview.aspx?key=blend"> Expression Web</a> and <a class="externalLink"  href="http://www.microsoft.com/expression/products/overview.aspx?key=media">Expression Media</a></p>
<p><span id="more-35"></span></p>
<p><a class = "externalLink" href="http://www.microsoft.com/expression/products/overview.aspx?key=web">Expression Web</a> is the replacement for FrontPage 2003 which will tightly integrate with their sever-side technology ASP.NET and includes similar features that are found in Adobe Dreamweaver such as website reporting, site and page templates, and improved CSS support. </p>
<p>To help you better transition from FrontPage 2003 to Expression Web you can read over this <a class = "externalLink" href = "http://www.javascriptworkshop.com/wp-content/uploads/pdf/Microsoft_FrontPage_to_Expression_Web.pdf">whitepaper</a> (.pdf)  created by Microsoft that explains the differences between the two programs, overview of the interface and features, and how to use exisiting FrontPage components.</p>
<p><del>You can check it out for yourself by downloading the first beta release</del>. As of Dec 4th, Expression Web is available for <a class="externalLink" href = "http://www.microsoft.com/expression/products/purchase.aspx?key=web"> purchase</a>.  To get you started, Microsoft has some nice training <a class = "externalLink" href = "http://www.microsoft.com/expression/kc/resources.aspx?type=video"> videos</a> and <a class = "externalLink" href = "http://www.microsoft.com/expression/kc/resources.aspx?type=tutorial">tutorials</a> from the site and another site <a class = "externalLink" href = "http://www.learnexpression.com/">LearnExpression.com</a> has some video tutorials as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2006/06/01/goodbye-to-microsoft-frontpage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online Learning</title>
		<link>http://www.javascriptworkshop.com/2006/02/18/online-learning/</link>
		<comments>http://www.javascriptworkshop.com/2006/02/18/online-learning/#comments</comments>
		<pubDate>Sat, 18 Feb 2006 10:26:26 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[video tutorials]]></category>

		<guid isPermaLink="false">http://wordpress.stepanskiconsulting.com/?p=25</guid>
		<description><![CDATA[There are a lot of ways to learn a computer topic &#8212; buy a book(s), attend a user group or workshop, do online research or bug a friend to teach you. But for the past couple years a new way has emerged as an easy and inexpensive alternative; online learning &#8212; training videos or online classes. [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of ways to learn a computer topic &#8212; buy a book(s), attend a user group or workshop, do online research or bug a friend to teach you. But for the past couple years a new way has emerged as an easy and inexpensive alternative; online learning &#8212; training videos or online classes.</p>
<p><span id="more-25"></span></p>
<p>One of the best sites for training videos is <a class="externalLink" href="http://www.Lynda.com">Lynda.com</a> where their training videos cover all Adobe products in varying levels (intro to advanced) as well as some Microsoft products and new titles are added on a regular basis. A great site for more technical videos is <a class="externalLink" href="http://www.VTC.com">VTC.com</a> which focuses on business applications, certifications, databases, progamming and web design. For specific videos on .NET <a class="externalLink" href="http://www.learnvisualstudio.net/Default.aspx">LearnVisualStudio.Net</a> is one of the best choices and <a class="externalLink" href = "http://www.totaltraining.com/">TotalTraining.com</a> has some very high quality videos on similiar topics (.NET, Dreamweaver, SQL, Adobe), which you can buy as a complete series or <a class = "externalLink" href = "http://www.totaltraining.com/landing/online.asp">view online</a>. </p>
<p>Speaking of expensive, the most expensive but probably the best and most complete video series on all Microsoft related topics and certification is <a class="externalLink" href = "http://www.appdev.com/">AppDev.com</a>. For SQL Server specific topics, <a class = "externalLink" href="http://www.learnsqlserver.com/">LearnSQLServer.com</a> and <a class = "externalLink" href="http://www.learntransactsql.com/">LearnTransactSQL.com</a> are two great choices. So from all these choices I have given you should be able to find a video to help you learn any web related topic or technology.</p>
<p>The other format is an online class where an instructor has a &#8220;virtual class&#8221; where students post weekly assignments and exchange ideas with fellow students. A great site is <a class="externalLink" href="http://www.lvsonline.com">LVSOnline.com</a> which have 6 week classes on web and graphic design and basic programming.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2006/02/18/online-learning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 Web Tools for 2006</title>
		<link>http://www.javascriptworkshop.com/2006/02/01/top-10-web-tools-for-2006/</link>
		<comments>http://www.javascriptworkshop.com/2006/02/01/top-10-web-tools-for-2006/#comments</comments>
		<pubDate>Wed, 01 Feb 2006 06:36:03 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[web tools]]></category>

		<guid isPermaLink="false">http://wordpress.stepanskiconsulting.com/?p=23</guid>
		<description><![CDATA[Published by a UK magazine giving you ideas of what to look out for in 2006.   1. Ajax &#8211; Asychronous JavaScript and XML, what everybody is talking about. 2. Flash - Emphasis on web development and animation make this a must! 3. Flex &#8211; Delivers programming and runtime services for rich internet apps. 4. Ruby on [...]]]></description>
			<content:encoded><![CDATA[<p>Published by a <a class="externalLink" href="http://www.netmag.co.uk/">UK magazine</a> giving you ideas of what to look out for in 2006.</p>
<p><span id="more-23"></span> </p>
<p>1. <a class="externalLink" href="http://www.Ajaxmatters.com">Ajax</a> &#8211; Asychronous JavaScript and XML, what everybody is talking about.<br />
2. <a class="externalLink" href="http://www.adobe.com/products/flash/">Flash</a> - Emphasis on web development and animation make this a must!<br />
3. <a class="externalLink" href="http://www.adobe.com/products/flex/">Flex</a> &#8211; Delivers programming and runtime services for rich internet apps.<br />
4. <a class="externalLink" href="http://www.rubyonrails.com">Ruby on Rails</a> &#8211; Middle ground between J2EE and PHP, and uses with Ajax.<br />
5. <a class="externalLink" href="http://www.adobe.com/devnet/actionscript/">ActionsScript 3</a> &#8211; Third incarnation of Flash&#8217;s scripting language.<br />
6. <a class="externalLink" href="http://www.atomenabled.org">Atom API</a> &#8211; IETF feed format standard with 20 million blogs.<br />
7. <a class="externalLink" href="http://www.json.org">JSON</a> &#8211; (JavaScript Object Nation) Language independent text format.<br />
8. <a class="externalLink" href="http://www.haveamint.com">Mint</a> &#8211; PHP, MySQL and JavaScript used to monitor a website backend.<br />
9. <a class="externalLink" href="http://www.rollyo.com">Rollyo</a> &#8211; Personalized search engine that you can tie-in to your site<br />
10. <a class="externalLink" href="http://www.writeboard.com">Writeboard</a> &#8211; Online collaboration with shareable documents.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2006/02/01/top-10-web-tools-for-2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Text Editor &#8211; Notepad++</title>
		<link>http://www.javascriptworkshop.com/2005/11/06/free-text-editor-notepad/</link>
		<comments>http://www.javascriptworkshop.com/2005/11/06/free-text-editor-notepad/#comments</comments>
		<pubDate>Sun, 06 Nov 2005 02:17:13 +0000</pubDate>
		<dc:creator>Frank Stepanski</dc:creator>
				<category><![CDATA[Web stuff]]></category>
		<category><![CDATA[free web editors]]></category>

		<guid isPermaLink="false">http://www.javascriptworkshop.com/?p=188</guid>
		<description><![CDATA[As we start this workshop, I have mentioned that you can use any text or web editor to create your JavaScript code. So if you already have Adobe Dreamweaver or another similar type tool, go ahead and keep using it. If you do not and you are cheap (like me) then you probably want something [...]]]></description>
			<content:encoded><![CDATA[<p>As we start this workshop, I have mentioned that you can use any text or web editor to create your JavaScript code. So if you already have Adobe Dreamweaver or another similar type tool, go ahead and keep using it. If you do not and you are cheap (like me) then you probably want something that is free.</p>
<p><span id="more-188"></span></p>
<p>A great free text editor called <a class = "externalLink" href = "http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a> would be a great choice for Windows users.  Basically, you need three basic things for a useful JavaScript editor:</p>
<p>1. Line numbering<br />
2. Code folding<br />
3. Syntax coloring <br/></p>
<p>Notepad++ does all these things as well as a few more handy features.  It is far from perfect, but it should be more than enough for your basic coding needs.  If you are a Mac user then you should be using <a class = "externalLink" href = "http://macromates.com/">TextMate</a> even though it is not free. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.javascriptworkshop.com/2005/11/06/free-text-editor-notepad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

