<?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>Webmonkey &#187; standards</title>
    <atom:link href="http://www.webmonkey.com/tag/standards/feed/" rel="self" type="application/rss+xml" />
    <link>http://www.webmonkey.com</link>
    <description>The Web Developer&#039;s Resource</description>
    <lastBuildDate>Fri, 05 Apr 2013 20:20:46 +0000</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <generator>http://wordpress.org/?v=3.4.2</generator>
    
    <item>
        <title>W3C&#8217;s New &#8216;Do Not Track&#8217; Group Aims for Better Web Privacy</title>
        <link>http://www.webmonkey.com/2011/09/the-w3c-accepts-do-not-track-project-for-better-web-privacy/</link>
        <comments>http://www.webmonkey.com/2011/09/the-w3c-accepts-do-not-track-project-for-better-web-privacy/#comments</comments>
        <pubDate>Fri, 09 Sep 2011 15:02:20 +0000</pubDate>

                <dc:creator>Scott Gilbertson</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/?p=51576</guid>
        		<category><![CDATA[privacy]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[W3C]]></category>
            <enclosure url="http://www.webmonkey.com/wp-content/uploads/2011/09/foot_prints_w.jpg" type="image/jpeg" length="48000" />
                    <description><![CDATA[<div class="rss_thumbnail"><img src="http://www.webmonkey.com/wp-content/uploads/2011/09/foot_prints_w.jpg" alt="W3C&#8217;s New &#8216;Do Not Track&#8217; Group Aims for Better Web Privacy" /></div>The web's governing body has embraced the "Do Not Track" header, which might one day stop advertisers from following your every online move.]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img src="http://www.webmonkey.com/wp-content/uploads/2011/01/footprints.jpg" alt="" />The World Wide Web Consortium (W3C) has announced a new project to standardize the &#8220;Do Not Track&#8221; opt-out tools <a href="http://www.webmonkey.com/2011/01/mozilla-plans-do-not-track-privacy-tools-for-firefox/">already a part of Firefox</a>, Internet Explorer and Safari. To help move the &#8220;Do Not Track&#8221; tools from browser novelty to web standard, the W3C has <a href="http://www.w3.org/News/2011.html#entry-9196">launched</a> the <a href="http://www.w3.org/2011/tracking-protection/">Tracking Protection Working Group</a>. The new group will bring together browser makers, advertisers and developers to standardize a simple way for web browsers to opt-out of online tracking.</p>
<p>Behavioral advertising, as such tracking is known, is becoming increasingly common on the web. Advertisers use cookies to follow you around the web, tracking which sites you visit, what you buy and even, in the case of mobile browsers, where you go. The U.S. Federal Trade Commission has already outlined a <a href="http://www.ftc.gov/os/2010/12/101201privacyreport.pdf">Do Not Track mechanism</a> (PDF link), which would work much like the FTC’s Do Not Call list, offering a way to opt-out of online tracking.</p>
<p>While the new DNT header is already part of Firefox, Internet Explorer and Safari, and a wide range of sites now respect it, it has lacked one key ingredient &#8212; standardization. The new Tracking Protection Working Group is the first step on the road to standardization and will hopefully mean Opera and Chrome will both soon adopt the DNT header.</p>
<p>To help web developers get a handle on the new header Mozilla has put together a <a href="https://developer.mozilla.org/en/The_Do_Not_Track_Field_Guide/Introduction">Developer Guide on DNT</a>. The guide includes a walk through of how to detect a DNT header, and what to do about it when you do, as well as some sample code to help developers build DNT compliant sites and apps.</p>
<p><strong>See Also:</strong></p>
<ul>
<li><a href="http://www.webmonkey.com/2011/01/mozilla-plans-do-not-track-privacy-tools-for-firefox/">Mozilla Plans ‘Do-Not-Track’ Privacy Tools for Firefox</a></li>
<li><a href="http://www.webmonkey.com/2011/03/mozillas-do-not-track-header-is-starting-to-catch-on-with-advertisers/">Mozilla’s ‘Do Not Track’ Header Is Starting to Catch on With Advertisers</a></li>
<li><a href="http://www.webmonkey.com/2011/01/chrome-add-on-kills-tracking-cookies/">Chrome Add-on Kills Tracking Cookies</a></li>
</ul>
<p>Footprints photo by Vinoth Chandar/<a href="http://www.flickr.com/photos/vinothchandar/4282241642/">Flickr</a>/CC</p>
<div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2011/09/the-w3c-accepts-do-not-track-project-for-better-web-privacy/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Use Web Standards With Flash</title>
        <link>http://www.webmonkey.com/2010/02/use_web_standards_with_flash/</link>
        <comments>http://www.webmonkey.com/2010/02/use_web_standards_with_flash/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=694</guid>
        		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[wiki]]></category>
        <description><![CDATA[It&#8217;s everywhere I turn. The cry is impossible to escape. I hear it shouted from the mountaintops with thunderous urgency: &#8220;Web Standards! Adhere to them and everything will be good.&#8221; Web standards are understandably necessary, and I use them all the time in my own work, as should you. But is there still a place [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p>It&#8217;s everywhere I turn. The cry is impossible to escape. I hear it shouted from the mountaintops with thunderous urgency: &#8220;Web Standards! Adhere to them and everything will be good.&#8221;

</p><p>Web standards are understandably necessary, and I use them all the time in my own work, as should you. But is there still a place for Flash in this new standards compliant world? The answer is yes, of course.

</p><p><br />
<span id="more-694"></span>

</p>

<table id="toc" class="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h2>Contents</h2> </div>

<ol>

<li><a href="#Embed_versus_Object">Embed versus Object</a></li>

<li><a href="#JavaScript_to_the_rescue">JavaScript to the rescue</a></li>

<li><a href="#Introducing_sIFR">Introducing sIFR</a></li>



<li><a href="#How_and_when_to_use_sIFR">How and when to use sIFR</a></li>

<li><a href="#Putting_sIFR_on_the_page">Putting sIFR on the page</a></li>

<li><a href="#Achieving_Perfect_Harmony">Achieving Perfect Harmony</a></li>

</ol>

</li>

</ol>

</td></tr></tbody></table>

<a name="The_Standards-Compliant_Flash_Object_of_Desire"></a><h3> <span class="mw-headline">The Standards-Compliant Flash Object of Desire</span></h3>

<p>I find that my Flash work of late has been on smaller things &#8212; individual components that fit into larger XHTML/CSS sites rather than the previous norm of entire user experiences built with Flash. I, for one, welcome this change. I may be a Flash developer, but that doesn&#8217;t mean I want to visit websites built entirely with Flash.

</p><p>True, there are still many big name companies out there that want &#8220;edgy&#8221; websites built using Flash. Increasingly, these high-profile websites are realizing that the search-ranking advantages of an XHTML/CSS website often outweigh the so-called &#8220;edginess&#8221; of a pure Flash website.

</p><p>Let&#8217;s say, for example, that you&#8217;re a site developer using standards compliant XHTML. Some Flash developers have just delivered you a small, lightweight MP3 player written in Flash. The advantage of having an MP3 player built in Flash is that it can be embedded within an XHTML page. The user can listen to songs and have the same rich user experience offered by a stand-alone media player, all without leaving that particular page. Great, right? It would be, but it&#8217;s your job to integrate this MP3 player into the XHTML environment that makes up the rest of the site.

</p><p>The rest of the site is entirely standards compliant code. You&#8217;ve even validated all the URLs against <a href="http://validator.w3.org/" class="external text" title="http://validator.w3.org/" rel="nofollow">the W3C validator</a>. You&#8217;ve spent considerable time working around the intricate browser quirks. In short, the code works in every browser and is all valid XHTML. Beautiful.

</p><p>Now, lets throw the Flash monkey wrench into the works and see what happens.

</p>

<a name="Embed_versus_Object"></a><h4> <span class="mw-headline">Embed versus Object</span></h4>

<p>Let&#8217;s say your Flash developers have sent you an .fla file and left all of the embed code up to you. You open the .fla in Flash and publish an .swf file. You also publish an HTML file, which is ridiculously easy. Just check the &#8220;Publish HTML&#8221; box and Flash does the rest. You end up cutting and pasting the results out of your newly minted HTML file into your existing XHTML page. The code Flash gives you looks something like this:

</p>

<pre class="brush: js">&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"

codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/

swflash.cab#version=7,0,0,0" width="550" height="400" id="myMovie"

align="middle"&gt;



&lt;param name="allowScriptAccess" value="sameDomain" /&gt;

&lt;param name="movie" value="myMovie.swf" /&gt;

&lt;param name="quality" value="high" /&gt;

&lt;param name="bgcolor" value="#ffffff" /&gt;

&lt;embed src="myMovie.swf" quality="high" bgcolor="#ffffff"

width="550" height="400" name="myMovie" align="middle"

allowScriptAccess="sameDomain" type="application/x-shockwave-flash"

pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt;

&lt;/object&gt;

</pre>

<p>Ugly but functional. Except &#8230; except now your site doesn&#8217;t validate with the W3C validator. In fact, your code is no longer standards compliant. Why? Well the W3C&#8217;s XHTML specifications don&#8217;t allow the <tt>&lt;embed&gt;</tt> tag. But Netscape-flavored browsers need the <tt>&lt;embed&gt;</tt> tag. To understand why the <tt>&lt;embed&gt;</tt> tag wasn&#8217;t included in the specification, we need to look at the history of the <tt>&lt;embed&gt;</tt> tag.



</p><p>Dreamed up by Netscape long ago in a galaxy far away?. Actually, they just made it up out of nowhere. Supposedly, they did so to provide a generic method of dealing with the proliferation of plug-in technology circa 1998. Fortunately, the days of a zillion plug-ins are gone. Flash alone seems to have survived the plug-in wars (Okay, there are some others, but they aren&#8217;t relevant here). In Netscape&#8217;s thinking, the <tt>&lt;embed&gt;</tt> tag would have been a generic solution. Its parameters would tell the browser how to behave using name/value attributes. Neither Microsoft nor the W3C liked this idea. They both liked the <tt>&lt;object&gt;</tt> tag, which is also nice and generic and does the same thing.

</p><p>Unfortunately for Netscape, their lovely little idea was not included in the XHTML specs, so no valid code for you, loyal Flash users. But the whole rest of your site validates, so why this one annoying bit? Obviously, Your flash embed code also has the <tt>&lt;object&gt;</tt> tag in there, so perhaps we can just cut the <tt>&lt;embed&gt;</tt> out and use <tt>&lt;object&gt;</tt>?

</p><p>You could do that. It wouldn&#8217;t work very well, but you could do it. The problem is that the <tt>&lt;object&gt;</tt> tag, while valid XHTML, isn&#8217;t understood by Netscape-based browsers. Internet Explorer knows what to do with the <tt>&lt;object&gt;</tt> tag, but what is the point of adhering to standards if your target audience is only IE users?



</p><p>Is there another, XHTML compliant way to embed Flash content? As a matter of fact, there are two methods that will work. One is known as the <a href="http://www.alistapart.com/articles/flashsatay/" class="external text" title="http://www.alistapart.com/articles/flashsatay/" rel="nofollow">Flash Satay method</a>. Flash Satay essentially uses just the <tt>&lt;object&gt;</tt> tag and works around its limitations by using an empty container movie that then loads the main movie. It&#8217;s a decent way of going about things and has its uses. But there is a way that&#8217;s even better.

</p>

<a name="JavaScript_to_the_rescue"></a><h4> <span class="mw-headline">JavaScript to the rescue</span></h4>

<p><a href="http://www.alistapart.com/articles/flashsatay/" class="external text" title="http://www.alistapart.com/articles/flashsatay/" rel="nofollow">Flash Satay</a> is great. It provides us with some standards compliant ways to display Flash movies. But what about detecting the Flash player in the first place? And then there is another issue: search engines. What if we could embed our movie in a standards compliant manner (which search engines seem to favor), detect the player version on the user&#8217;s machine, <i>and</i> provide alternate content for search engines and users without Flash all at the same time? Que bueno, yes? Well you can have your banana and eat it too, thanks to Geoff Stearns. Mr. Stearns has written a JavaScript class that replaces an XHTML <tt>&lt;div&gt;</tt> tag with a Flash movie.



</p><p>It works like this: We call the JavaScript function, passing our <tt>&lt;div&gt;</tt> tag as a parameter. The function then parses the XHTML and finds the tag in question. It replaces everything within that tag with the Flash movie we specified in the function call. This allows us to have actual, indexable content in that <tt>&lt;div&gt;</tt> tag. That means that search engine robots, users without Flash, and users without JavaScript can still see an approximation of the original content.

</p><p>Stearns&#8217; site contains <a href="http://blog.deconcept.com/flashobject/" class="external text" title="http://blog.deconcept.com/flashobject/" rel="nofollow">complete instructions</a> on how to use the JavaScript class, but I&#8217;ll walk through it rather quickly.

</p><p>Publish your Flash .swf file as you normally would. Create your lovely, validly coded XHTML document and its accompanying CSS rules. Copy the file you downloaded called flashobject.js to wherever you keep you JavaScript files (I keep all of my JavaScript files together in a directory on my site named js). In the <tt>&lt;head&gt;</tt> tags of your HTML document, include the external JavaScript file we downloaded.

</p>

 <pre class="brush: js"> &lt;script type="text/JavaScript"

 src="http://www.wired.com/images/archive/path/to/flashobject.js"&gt;&lt;/script&gt;



 </pre>

<p>Now, figure out where you want to put your Flash movie on the page and add a <tt>&lt;div&gt;</tt> tag. Something like this, taken from Stearns&#8217; example:

</p>

<pre class="brush: js">&lt;div id="flashcontent"&gt;



Everything in this will be replaced by the Flash content.

Place your alternate content here and users without the Flash plug-in

or with

JavaScript turned off will see this.

Include a link to &lt;a

href="flashobject.html?detectflash=false"&gt;bypass the

detection&lt;/a&gt; if you wish.



&lt;/div&gt;



</pre>

<p>Now you just need to call the function contained in the flashobject.js file. The code looks like this:

</p>

<pre class="brush: js">&lt;script type="text/JavaScript"&gt;

     // &lt;![CDATA[



     var myMovie = new FlashObject("myMovie.swf", "myMovie", "300",

"300", "7", "#FF6600");

     // if your movie is using flashVars parameters you can still do that

     // using this syntax:

     myMovie.addVariable("flashVarName", "this is passed in via

FlashVars");

     myMovie.write("flashcontent");



     // ]]&gt;



&lt;/script&gt;

</pre>

<p>The biggest and best advantage of this method, at least to my thinking, is its reusability. I use this code extensively on my blog. All my pages are generated from templates, so if I point to the flashobject.js file in my <tt>&lt;head&gt;</tt> tag template, I automatically have site-wide access to the script. Because my templates are themselves created from smaller chunks of code, I can have two versions of my <tt>&lt;head&gt;</tt> tag template; one with the code and one without. Whenever I want to add Flash to a page, I just change templates and I can add Flash content without breaking the validator.



</p><p>Of course, I still have to include a <tt>&lt;div&gt;</tt> tag and call the function, but that&#8217;s the easy part.

</p><p>And there you have it: a standards compliant way to add Flash to your XHTML.

</p>

<a name="Introducing_sIFR"></a><h4> <span class="mw-headline">Introducing sIFR</span></h4>

<p>Now let&#8217;s imagine for a moment that you are a purist. You love strict XHTML as only a mother can. Let&#8217;s suppose you&#8217;re as rabid about your little baby&#8217;s standards as Diane Ladd in &#8220;<a href="http://www.imdb.com/title/tt0100935/" class="external text" title="http://www.imdb.com/title/tt0100935/" rel="nofollow">Wild at Heart</a>.&#8221; How could we convince you that there is a practical application for Flash files, even in your twisted, lipstick-smeared world?

</p><p>Well, we would criticize your typography of course. We already know your code is impeccable, but wow. Those headlines are still in Georgia huh? Kind of primitive, don&#8217;t you think?

</p><p>As web designers, we have reliable access to maybe six fonts that all users will have. This was one of the limitations of HTML that first drew me to Flash. Now, you may not be as obsessed with typography as some of us (if you know that Mrs Eaves is not Mr. Eaves wife, then you might be obsessed with typography), but wouldn&#8217;t you like to use something other than Arial sometimes?

</p><p>Well, I can&#8217;t really help with the body text. But headlines, oh headlines, do I have a revolution for you. It&#8217;s called sIFR.

</p><p>First, a brief history. SIFR is not exactly a new idea, rather an improvement on an old one. Web designers have always disliked the limited selection of fonts available. The problem is that in order for a browser to render a font, that font must reside on the user&#8217;s hard drive. How many universally available fonts are there? Well conservatively, probably about six: Verdana, Times, Arial, Helvetica, Courier, and Geneva. Trebuchet, Tahoma and Lucida are also widespread, but less so than the Big Six. If you&#8217;re using stylesheets, you know that the only options for total compatibility are simple sans or serif declarations. You declare a sans-serif font for a block of text and it&#8217;s the browser&#8217;s decision as to which sans-serif font it uses to display the given text.

</p><p>From a designer&#8217;s standpoint, this situation is undesirable to say the least. So, way back when, some folks thought, &#8220;Hey, we could replace a headline with a graphic that has the same text, but as an image. That way we can exercise control over the typeface being used. We can use any typeface because it&#8217;s an image.&#8221;



</p><p>While a solution, this is still less than ideal. For one thing, it means that every single headline must be generated by hand using some sort of image application. Even if you automate the creation process with scripts, this is impractical for all but the simplest of sites. Today&#8217;s database driven, content-assembled-on-the-fly website engineer cannot afford to create a separate image for every single headline.

</p><p>There is another problem. Actually there are several others, but the biggest one is that this technique effectively ruins the site for the visually impaired. Instead of tags that look like this:

</p><p>&#8216;<b>This is my great headline&#8217;</b>

</p><p>You need something like this:

</p><p><tt>&lt;img scr="mygreatheadline.jpg" alt="This is my great headline"&gt;</tt>

</p><p>A screen reader is going to read that whole second line aloud, and the person using it is going to be annoyed because you were too caught up in the appearance of the text to remember that lots of people don&#8217;t care about the appearance.

</p><p>So, allow me to introduce scalable Inman Flash Replacement. Yes, sIFR stands for scalable Inman Flash Replacement. The technique takes its name from the man who invented it, <a href="http://www.shauninman.com/" class="external text" title="http://www.shauninman.com/" rel="nofollow">Shaun Inman</a>. The scalable part was added by <a href="http://www.mikeindustries.com/blog/" class="external text" title="http://www.mikeindustries.com/blog/" rel="nofollow">Mike Davidson</a>, who improved on the original and maintains the current code. The technique is essentially the same as image replacement, but relies on JavaScript and Flash to dynamically replace XHTML text with Flash text.

</p><p>Why is this better? Many reasons. Foremost, sIFR allows us to code our pages as we normally would. We can create a stylesheet and set the size and other parameters of a headline. With sIFR on the page, something amazing is going to happen. When the browser requests the page, a JavaScript class parses the page for a given variable and replaces it. In our example, we&#8217;ll say that the element we want the replace is an <tt>&lt;h1&gt;</tt> tag, but it could be anything. Wherever the JavaScript finds that <tt>&lt;h1&gt;</tt> tag, it sets the text contained within the tag to &#8220;hidden&#8221; and then embeds a Flash movie matching the element&#8217;s original size. The script then feeds the Flash movie the hidden text. Finally, like magic, the Flash movie displays the text it gets from the JavaScript.



</p><p>There are no restrictions for which fonts we can and can&#8217;t use within a Flash movie, so we can design our headlines however we&#8217;d like.

</p><p>If the user doesn&#8217;t have Flash, doesn&#8217;t have JavaScript enabled, doesn&#8217;t have either, or is using some assistive device, the original text is still there just as it would have been had we done nothing at all.

</p>

<a name="How_and_when_to_use_sIFR"></a><h4> <span class="mw-headline">How and when to use sIFR</span></h4>

<p>Mike Davidson, who maintains the code for sIFR, has <a href="http://www.mikeindustries.com/sifr/" class="external text" title="http://www.mikeindustries.com/sifr/" rel="nofollow">excellent instructions</a> on his site for how to use the code. For the sake of clarity, I&#8217;ll walk through a quick example here.

</p><p>To get started, <a href="http://www.mikeindustries.com/blog/files/sifr/2.0/sIFR2.0.1.zip" class="external text" title="http://www.mikeindustries.com/blog/files/sifr/2.0/sIFR2.0.1.zip" rel="nofollow">download the .zip file</a> containing the script. The package also includes the Flash movie template. Open the Flash template and double click on the movieclip that occupies the main stage. This will take you to the actual text box. Just change the font for text box to whatever font you want to use and publish the movie. Upload the resulting .swf file to your site.

</p><p>Now we need to add sIFR to our XHTML and CSS files to make it work. The first thing to do is include the JavaScript using the <tt>&lt;head&gt;</tt> tags of XHTML. See our earlier example of the MP3 player for the syntax. Next, open the JavaScript file sifr.js. Near the very bottom of the file, you&#8217;ll see a function call that looks like this:



</p>

 <pre class="brush: js">

 sIFR.setup();



 </pre>

<p>Just below that line, we&#8217;re going to add another function call. The syntax is explained in the readme file that accompanied your download. The code I use on my site looks something like this:

</p>

 <pre class="brush: js">

 sIFR.replaceElement(named({sSelector:"h1",



 sFlashSrc:"http://www.mysite.com/path/to/sifr.swf", sColor:"#FEDB18",



 sBgColor:"#6f5f45"}));



 </pre>

<p>This calls the JavaScript function <tt>replaceElement</tt>. The sSelector parameter tells the function which tag to replace. The sFlashSrc parameter tells the function where to find the Flash movie. The sColor parameter controls the color of the font and sBgColor controls the background color of the Flash Movie.

</p><p>In the example above, all the <tt>&lt;h1&gt;</tt> elements will be replaced. We could get more specific. In fact, you can be as specific or generic as you like with the sSelector parameter. Let&#8217;s say for example that we only want to replace <tt>&lt;h1&gt;</tt> tags that occur in a <tt>&lt;div&gt;</tt> named body. We would just change our code to read:



</p>

 <pre class="brush: js">

 sIFR.replaceElement(named({sSelector:"#body h1",



 sFlashSrc:"http://www.mysite.com/path/to/sifr.swf",



 sColor:"#FEDB18", sBgColor:"#6f5f45"}));



 </pre>

<p>There are additional parameters that you can pass to the function to control things like hover states for links, transforming text to uppercase, and more. For a complete list of parameters, see the documentation packaged with your download.

</p>

<a name="Putting_sIFR_on_the_page"></a><h4> <span class="mw-headline">Putting sIFR on the page</span></h4>

<p>The next step is to include the sIFR classes in our CSS file. Open your CSS file in a text editor and add this code:

</p>

 <pre class="brush: js">

 .sIFR-hasFlash h1



 {



 visibility: hidden;



 }



 .sIFR-flash { visibility: visible&nbsp;!important; }



 .sIFR-replaced { visibility: visible&nbsp;!important; }



 span.sIFR-alternate



 {



 position: absolute;



 left: 0;



 top: 0;



 width: 0;



 height: 0;



 display: block;



 overflow: hidden;



 letter-spacing: 0;



 }



 </pre>



<p>This chunk of CSS does a couple of things. First, it creates a hidden selector class for the element we are going to replace. Then, the rest of the declarations handle the display of the replacement movie.

</p><p>The primary thing were going to do with this code is use the class <tt>.sIFR-hasFlash h1</tt> to control the size of our replacement text. The creators of sIFR refer to this as &#8220;tuning&#8221; your fonts.

</p><p>This tuning process can be a little tricky, and is essentially a process of trial and error. The goal is to make the original text the same dimensions as the replacement text. To do so, we can add declarations like <tt>line-height</tt>, <tt>font-size</tt>, <tt>font-weight</tt> and <tt>margin</tt> or <tt>padding</tt> to the <tt>.sIFR-hasFlash h1</tt> declaration. Unfortunately, there is no general solution I can give you. Some situations require more tuning than others.



</p><p>If you open up the sifr.js file again and look near the bottom, just above where we inserted our function all earlier. You should see a function that reads:

</p>

 <pre class="brush: js">

 sIFR.setup();



 </pre>

<p>Comment out that line and add this one just below so you have:

</p>

 <pre class="brush: js">

 //sIFR.setup();



 sIFR.debug();



 </pre>

<p>This will allow you to see your tuning in real-time. When you&#8217;re done, just uncomment the <tt>.setup()</tt> line and comment out the <tt>debug()</tt> line.



</p><p>The only other thing you&#8217;ll want to do is change your print-css stylesheet to make sure your replacements don&#8217;t happen when the user prints the page. If you&#8217;re having problems refer to <a href="http://wiki.novemberborn.net/sifr/show/HomePage" class="external text" title="http://wiki.novemberborn.net/sifr/show/HomePage" rel="nofollow">the sIFR wiki</a> for troubleshooting and more detailed instructions.

</p><p>There might be a temptation, given this newfound control over fonts, to go a bit crazy and use it everywhere. Resist that temptation. sIFR wasn&#8217;t designed to replace everything on the page. Your body text is still going to be limited to the big six. sIFR is best used for headlines, and maybe subheadlines if you don&#8217;t have too many.

</p><p>One thing you may notice is a slight lag time before your headlines are displayed. On my aging G3 iBook, this little pause is about one to two seconds. Presumably, on new equipment it would be even less. If this bothers you, you can set sIFR to show the normal font before it replaces it with Flash.

</p><p>I should note that you do not have to put the function call in the sifr.js file. In fact, sometimes you may not want to. You can also write it into the XHTML as we did with the earlier script. I think it makes more sense to put it in JavaScript file itself because I use the same headline throughout my site. However, if you wanted to use different fonts on different pages you would need to call the function from each page.

</p><p>If you ever get stuck using sIFR, refer to the documentation or the wiki. And of course, nothing beats trial and error.

</p>

<a name="Achieving_Perfect_Harmony"></a><h4> <span class="mw-headline">Achieving Perfect Harmony</span></h4>

<p>Well there you have it. Two ways Flash can peacefully co-exist with XHTML in this newfound world of web standards. At the same time, we&#8217;ve tackled one of the most persistent issues for all web designers: how to get cool fonts on your site.

</p><p>If you would like to see both of these techniques in action you can visit my personal site, <a href="http://www.luxagraf.com" class="external text" title="http://www.luxagraf.com" rel="nofollow">luxagraf.com</a>. Note that the Flash Object part of my site requires the Flash 8 player.

</p><p>sIFR is all over the place these days. You can look at <a href="http://www.mikeindustries.com/blog/files/sifr/2.0/" class="external text" title="http://www.mikeindustries.com/blog/files/sifr/2.0/" rel="nofollow">the official example page</a> or some bigger sites like <a href="http://espn.go.com/" class="external text" title="http://espn.go.com/" rel="nofollow">ESPN</a> or <a href="http://www.cbsnews.com" class="external text" title="http://www.cbsnews.com" rel="nofollow">CBS News</a>. It&#8217;s not always easy to tell when either of these techniques are being employed, and that&#8217;s kind of the point. If you don&#8217;t notice the behind the scenes stuff, then you are witnessing a truly seemless integration of XHTML and Flash.



</p><p>Adhering to web standards is no longer an excuse to avoid Flash. At the same time, don&#8217;t use these techniques to justify doing a whole site in Flash. Flash has its place. It does some things very well and other things are best left to XHTML.

</p><p>Choose wisely, grasshopper.

</p><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/use_web_standards_with_flash/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Set a Reminder For iCalendar&#8217;s Birthday</title>
        <link>http://www.webmonkey.com/2008/10/set_a_reminder_for_icalendar_s_birthday/</link>
        <comments>http://www.webmonkey.com/2008/10/set_a_reminder_for_icalendar_s_birthday/#comments</comments>
        <pubDate>Mon, 13 Oct 2008 22:42:43 +0000</pubDate>

                <dc:creator>Adam Duvander</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/setareminderforicalendarsbirthday</guid>
        		<category><![CDATA[Web Basics]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[standards]]></category>
        <description><![CDATA[Prominent author John Udell notes that the iCalendar specification turns ten next month. Known to its friends as RFC 2445, the standard for describing events is used by Microsoft Outlook, Apple&#8217;s iCal, and many other calendar programs. Udell thinks calendar sharing hasn&#8217;t reached its potential. The way RSS has been adopted for sharing and syndicating [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img class="blogimg" src="http://howto.wired.com/mediawiki/images/Ical-nov10.png" alt="November is 10th birthday of iCalendar" />Prominent author John Udell notes that the <a href="http://blog.jonudell.net/2008/10/13/celebrating-icalendars-10th-anniversary-the-best-is-yet-to-come/">iCalendar specification turns ten</a> next month. Known to its friends as <a href="http://www.ietf.org/rfc/rfc2445.txt">RFC 2445</a>, the standard for describing events is used by Microsoft Outlook, Apple&#8217;s iCal, and many other calendar programs.</p>
<p>Udell thinks calendar sharing hasn&#8217;t reached its potential. The way RSS has been adopted for sharing and syndicating content, iCalendar could be better used, according to Udell. Where there is support for iCal, it tends to be read-only:</p>
<blockquote><p>&#8220;Services like Eventful and Upcoming produce calendar feeds. But because they do not consume them, they don&#8217;t encourage individuals and groups to publish feeds, and to think and act in a syndication-oriented way.&#8221;</p></blockquote>
<p>Calendar aggregators, which work in both directions, are the answer, according to Udell. He <a href="http://elmcity.info/events/">created a prototype</a> of how these might look. There are eighteen separate calendars, local to Keene, NH, flowing into one events page. Similarly, there is an open source project, <a href="http://code.google.com/p/calagator/">Calagator</a>, based in Portland, OR, working on the issue. There are likely others. Let us know in the comments.</p>
<p>A related project, <a href="http://microformats.org/wiki/hcalendar">hCalendar</a>, is a microformat based on iCalendar. As with all microformats, the event data is embedded within a standard HTML document, with special tags surrounding the data, which is often styled for the user. For more on microformats in general, see our <a href="/2010/02/Get_Acquainted_with_Microformats">microformats tutorial</a>.</p>
<p><strong>See also:</strong></p>
<ul>
<li><a href="http://www.webmonkey.com/blog/Google_Calendar_Now_Syncs_With_Microsoft_Outlook">Google Calendar Now Syncs With Microsoft Outlook</a></li>
<li><a href="http://www.webmonkey.com/blog/Lightning_Strikes_Open_Source_Calendars">Lightning Strikes Open Source Calendars</a></li>
<li><a href="http://www.webmonkey.com/blog/A_Look_at_Microformats">A Look at Microformats</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/10/set_a_reminder_for_icalendar_s_birthday/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>WebKit Sails Smoothly Through ACID 3 Tests</title>
        <link>http://www.webmonkey.com/2008/09/webkit_sails_smoothly_through_acid_3_tests/</link>
        <comments>http://www.webmonkey.com/2008/09/webkit_sails_smoothly_through_acid_3_tests/#comments</comments>
        <pubDate>Fri, 26 Sep 2008 23:18:43 +0000</pubDate>

                <dc:creator>Adam Duvander</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/webkitsailssmoothlythroughacid3tests</guid>
        		<category><![CDATA[Software & Tools]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[Webkit]]></category>
        <description><![CDATA[WebKit, the rendering engine that powers browsers Safari and Chrome, among others, says it has passed all three stages of the ACID 3 test. The test checks how well a browser supports JavaScript and the Document Object Model (DOM), as well as a few other treats, like SVG graphics. You can check your browser here. [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img class="blogimg" src="http://blog.wired.com/monkeybites/acid3.jpg" alt="ACID 3 test" />WebKit, the rendering engine that powers browsers Safari and Chrome, among others, says it has <a href="http://webkit.org/blog/280/full-pass-of-acid-3/">passed all three stages of the ACID 3 test</a>. The test checks how well a browser supports JavaScript and the Document Object Model (DOM), as well as a few other treats, like SVG graphics. You can <a href="http://acid3.acidtests.org/">check your browser here</a>.</p>
<p>Opera and WebKit passed the first two stages of the ACID 3 test shortly after its release in March. These measure the actual tests themselves (100/100), plus the pixel-perfect appearance of the page. The final stage, &#8220;smooth animation,&#8221; has been a more difficult task. The <a href="http://nightly.webkit.org/">passing version of WebKit</a> does render for me without hiccups, but there appears to be no solid definition of &#8220;smooth.&#8221;</p>
<p>On the official release browsers I have access to, the highest score was a 75, for Safari 3.1.2. Firefox 3.0.2 was close with a 71.</p>
<p>Shortly after WebKit and Opera passed the test, Mozilla&#8217;s Mike Shaver said Firefox would not scramble to pass the tests and that <a href="http://shaver.off.net/diary/2008/03/27/the-missed-opportunity-of-acid-3/">ACID 3 was a missed opportunity</a>:</p>
<blockquote><p>&#8220;Acid 3 could have had a tremendous positive effect on the web, representing the next target for the web platform, and helping developers prioritize work in such a way as to maximize the aggregate capabilities of the web. Instead, it feels like a puzzle game, and I can easily imagine the developers of the web&#8217;s proprietary competitors chuckling about the hundreds of developer-hours that have gone into adding another way to iterate over nodes, or twiddling internal APIs to special case a testing font.&#8221;</p></blockquote>
<p>Regardless, some within the Firefox community appear to be working on it, reporting <a href="http://forums.mozillazine.org/viewtopic.php?f=42&#038;t=851335&#038;start=0&#038;st=0&#038;sk=t&#038;sd=a">scores in the mid-90s</a> earlier this month.</p>
<p><strong>See also:</strong></p>
<ul>
<li><a href="http://www.webmonkey.com/blog/ACID_3_Browser_Stress_Test_Emerges_From_the_Lab">ACID 3 Browser Stress Test Emerges From the Lab</a></li>
<li><a href="http://www.webmonkey.com/blog/Dose_Your_Browser_With_ACID_3">Dose Your Browser With ACID 3</a></li>
<li><a href="http://www.webmonkey.com/blog/Opera_and_Safari_Race_to_Pass_the_ACID_3_Browser_Test">Opera and Safari Race to Pass the ACID 3 Browser Test</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/09/webkit_sails_smoothly_through_acid_3_tests/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Opera Taunts IE8 Over Standards</title>
        <link>http://www.webmonkey.com/2008/08/opera_taunts_ie8_over_standards/</link>
        <comments>http://www.webmonkey.com/2008/08/opera_taunts_ie8_over_standards/#comments</comments>
        <pubDate>Fri, 29 Aug 2008 23:06:26 +0000</pubDate>

                <dc:creator>Adam Duvander</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/operatauntsie8overstandards</guid>
        		<category><![CDATA[Web Basics]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[standards]]></category>
        <description><![CDATA[Hakon Lie&#8217;s rant against Internet Explorer 8&#8242;s interoperability promise is making a big stink where Microsoft should instead be lauded. Lie, the Chief Technical Officer for rival browser Opera, complains that IE8 defaults to a previous rendering engine for intranet pages. Microsoft had previously promised to always support the highest standards. Lie goes on to [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled -->
<p><img class="blogimg" src="http://howto.wired.com/mediawiki/images/Opera-arrows-ie.jpg" alt="Opera flings arrows at IE" />Hakon Lie&#8217;s <a href="http://www.theregister.co.uk/2008/08/29/hakon_lie_ie8_interoperability/">rant against Internet Explorer 8&#8242;s interoperability promise</a> is making a big stink where Microsoft should instead be lauded. Lie, the Chief Technical Officer for rival browser Opera, complains that IE8 defaults to a previous rendering engine for intranet pages. Microsoft had previously promised to <a href="http://www.webmonkey.com/blog/Microsoft_Backs_Down:_Internet_Explorer_8_Will_Embrace_Web_Standards_After_All">always support the highest standards</a>.</p>
<p>Lie goes on to invent statistics to show intranets make up half of the page view on PCs. While the method for determining his numbers may not have been scientific, the point is being made solely to imply that Microsoft is only half-supporting standards. In 2005 Lie <a href="http://www.theregister.co.uk/2005/02/11/hakon_on_ms_interroperability/">wrote a similar attack</a> complaining about, among other things, Microsoft&#8217;s site not validating. This is picking nits, and it&#8217;s akin to schoolyard bullying. That&#8217;s right, Microsoft is getting bullied this time.</p>
<p>I think Microsoft was right to note a differentiation between the web and intranets, and it even chose the defaults correctly. There are many different types of intranets, but one thing most have in common is that they suck. They&#8217;re duct-taped together pieces of software. Microsoft is right not to expect most intranets to support standards.</p>
<p>Indeed, much of the web is not 100 percent standards-compliant, partly due to Microsoft&#8217;s previous partial support. Internet Explorer 8 comes with a &#8220;compatibility view&#8221; that reverts to the previous rendering engine whenever a page has no DOCTYPE, or when the developer has chosen to render in the older Quirks mode. Users can also manually implement compatibility view by clicking the icon next to the location bar, or by setting it permanently for a given site.</p>
<p>Here is an animated GIF of the W3C website with and without &#8220;compatibility view&#8221; enabled:</p>
<p><img class="blogimg" src="http://howto.wired.com/mediawiki/images/Compatibility-view.gif" alt="Regular and Compatibility views animation" class="full" /></p>
<p>Compatibility view makes sense to me. Why make users suffer just because a developer has not kept up with standards? Click a button and, without restarting the browser, IE 8 gives you a glimpse of how the site may have been meant to look.</p>
<p><img class="blogimg" src="http://howto.wired.com/mediawiki/images/Compatibility-view-icon.png" alt="Compatibility view icon in context" />Where I do agree with Lie is about the icon. Microsoft chose a broken web page to represent compatibility view. While Lie seemed to assume the icon was meant to represent standards, it&#8217;s clear to me that the broken page is activated when going back to previous versions. If Microsoft is dissing anybody here, it&#8217;s itself.</p>
<p>But using a broken page as an icon is just a bad idea. Users are bound to wonder, &#8220;will this break my web page?&#8221; Granted, I&#8217;ve wondered that often when loading sites in IE, but I&#8217;m hoping that IE 8, with its smart selection of when to support standards, will make broken pages a thing of the past.</p>
<p><strong>See also:</strong></p>
<ul>
<li><a href="http://www.webmonkey.com/blog/IE7_Javascript_Tool_Turns_Explorer_into_a_Standards_Compliant_Browser">IE7 Javascript Tool Turns Explorer into a Standards Compliant Browser</a></li>
<li><a href="http://www.webmonkey.com/blog/Microsoft_Quietly_Launches_Private_Internet_Explorer_8_Beta">Microsoft Quietly Launches Private Internet Explorer 8 Beta</a></li>
<li><a href="http://www.webmonkey.com/blog/Smoke_and_Mirrors:_Microsoft_Pledges_Four__Interoperability_Prinicples_">Smoke and Mirrors: Microsoft Pledges Four &#8216;Interoperability Prinicples&#8217;</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/08/opera_taunts_ie8_over_standards/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Firefox Lends IE Hand for Next Gen HTML</title>
        <link>http://www.webmonkey.com/2008/07/firefox_lends_ie_a_hand_for_next_gen_html/</link>
        <comments>http://www.webmonkey.com/2008/07/firefox_lends_ie_a_hand_for_next_gen_html/#comments</comments>
        <pubDate>Fri, 01 Aug 2008 02:16:27 +0000</pubDate>

                <dc:creator>Scott Loganbill</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/firefoxlendsieahandfornextgenhtml</guid>
        		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Software & Tools]]></category>
		<category><![CDATA[Web Basics]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[standards]]></category>
        <description><![CDATA[Firefox and IE displaying canvas graphics elements side by side. Picture courtesy Vladimir Vukicevic&#8217;s blog According to Mozilla engineer Vladimir Vukicevic, Internet Explorer isn&#8217;t adapting to the next generation of web standards fast enough, so he&#8217;s going to have to do it himself. Vukicevic has been working to introduce HTML 5 graphic canvas elements to [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled -->
<div style="border:1px solid #666; width:610px; padding:5px;margin:10px;"><img style="float:left;"src="http://www.webmonkey.com/mediawiki/images/Iecanvas2.jpg" alt="Firefox and IE displaying canvas graphics elements side by side."></p>
<div style="padding:5px;">Firefox and IE displaying canvas graphics elements side by side.<br /> <em>Picture courtesy <a href="http://blog.vlad1.com/2008/07/30/no-browser-left-behind/">Vladimir Vukicevic&#8217;s blog</a></em></div>
</div>
<p>According to Mozilla engineer Vladimir Vukicevic, Internet Explorer isn&#8217;t adapting to the next generation of web standards fast enough, so he&#8217;s going to have to do it himself.</p>
<p>Vukicevic has been working to introduce HTML 5 graphic canvas elements to Firefox. As we mentioned in our <a href="http://www.webmonkey.com/blog/Firefox_3DOT1_Alpha_Preview_Delivers_Slick_New_Features">preview of Firefox 3.1</a>, canvas elements introduce the ability to render two dimensional, and soon three dimensional, graphics directly through web pages without a download. The graphics are part of the next-generation HTML 5 standard, and it&#8217;s something Opera and Safari have already implemented.</p>
<p>The problem is the leading browser on the internet, Microsoft&#8217;s Internet Explorer, doesn&#8217;t support Canvas elements and have announced no plans to support it in the future. If you were a Mozilla developer behind a cool new feature and you knew people weren&#8217;t going to use it until the leading browser on the web implemented it, you might feel tempted to lend the other browser a hand.</p>
<p>Vukicevic did exactly that. His ActiveX component adds the ability to see Canvas elements in Internet Explorer exactly the same way Opera, Safari or Firefox 3.1 users will. According to <a href="http://blog.vlad1.com/2008/07/30/no-browser-left-behind/">Vukicevic&#8217;s blog post</a>:</p>
<blockquote><p>&#8220;Canvas is just one piece of the full modern web platform, but because it&#8217;s so self-contained, it lets us experiment with pushing the web platform forward even for browsers that have fallen behind (or that might not be interested in an open web).&#8221;</p>
</blockquote>
<p>The code isn&#8217;t finished yet. There are still some graphic implementations needed to bring the feature up to standard. Even more daunting, there are installation issues with Vukicevic&#8217;s solution:</p>
<blockquote><p>&#8220;Currently, the experience is pretty crappy&#8230; In theory, with the right signatures, the right security class implementations, some eye of newt, and a pinch of garlic, it&#8217;s possible to get things down to a one-time install which would make the component available everywhere.&#8221;</p>
</blockquote>
<p>Still, this is great news for Internet Explorer fans. HTML 5 technology aims to bring multimedia elements, such as audio, video and graphics to your browser without depending on third-party media solutions. The standard, if implemented among all browsers, allows web developers the tools needed to ensure the same user experience no matter what browser you choose to use.</p>
<p>For the rest of us, it means a seamless and rich multimedia experiences in our favorite web pages &#8212; no more missing plug-ins or add-ons.</p>
<p>However, Internet Explorer hasn&#8217;t been very open to adapting to developing standards as Opera, Safari and Firefox has. In part, this is because it is pushing its own .NET based technology, including its Silverlight multimedia browser plug-in, to achieve the same goal. Pushing adoption of its technology instead of web standards such as HTML 5 (using the weight of Internet Explorer&#8217;s leading market share) means the company has more power to influence the future of emerging internet technology. </p>
<p>This is where Vukicevic&#8217;s add-on is so unique. In a way, it forces Internet Explorer to play along with the web standards community without its direct involvement. In turn, web developers will be more apt to use the technology. And if all browsers use the same standards, it means rich internet multimedia for all.</p>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/07/firefox_lends_ie_a_hand_for_next_gen_html/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Adobe&#8217;s PDF Format Adopted as Standard</title>
        <link>http://www.webmonkey.com/2008/07/adobe_s_pdf_format_adopted_as_standard/</link>
        <comments>http://www.webmonkey.com/2008/07/adobe_s_pdf_format_adopted_as_standard/#comments</comments>
        <pubDate>Thu, 03 Jul 2008 17:38:26 +0000</pubDate>

                <dc:creator>Adam Duvander</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/adobespdfformatadoptedasstandard</guid>
        		<category><![CDATA[Web Basics]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[xps]]></category>
        <description><![CDATA[Adobe&#8217;s PDF format was officially adopted as an open standard this week. The International Organization for Standardization (ISO) announced that PDF is now accessible as ISO 32000-1. The announcement follows Adobe&#8217;s decision to relinquish control of the proprietary format first introduced in 1993. &#8220;By releasing the full PDF specification for ISO standardization, we are reinforcing [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img class="blogimg" src="http://howto.wired.com/mediawiki/images/PDF.png" alt="Adobe PDF icon" width="200" /></p>
<p>Adobe&#8217;s PDF format was officially adopted as an open standard this week. The International Organization for Standardization (ISO) <a href="http://www.iso.org/iso/pressrelease.htm?refid=Ref1141">announced that PDF is now accessible as ISO 32000-1</a>.</p>
<p>The announcement follows Adobe&#8217;s decision to relinquish control of the proprietary format first introduced in 1993. &#8220;By releasing the full PDF specification for ISO standardization, we are reinforcing our commitment to openness,&#8221; Adobe chief technology officer Kevin Lynch said in a press release.</p>
<p>As we noted in January when <a href="http://www.webmonkey.com/blog/Adobe_s_PDF_File_Format_Receives_ISO_Blessing">ISO approved PDF</a>, some see this move from Adobe as a defensive move to stop Microsoft&#8217;s XML Paper Specification. Adobe denies the decision has anything to do with Redmond and instead is intended to answer a call from their users for open formats.</p>
<p>If you&#8217;re a PHP programmer, check out our tutorial on <a href="/2010/02/Generate_PDFs_Dynamically_With_PHP">generating PDFs dynamically</a>.</p>
<p><strong>See also:</strong></p>
<ul>
<li><a href="http://www.webmonkey.com/blog/Linux_Tip%3A_Easily_Create_PDF_Documents">Linux Tip: Easily Create PDF Documents</a></li>
<li><a href="http://www.webmonkey.com/blog/Papers%3A_A_PDF_Browser">Papers: A PDF Browser</a></li>
<li><a href="http://www.webmonkey.com/blog/Adobe_Confirms_PDF_Exploit">Adobe Confirms PDF Exploit</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/07/adobe_s_pdf_format_adopted_as_standard/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>992 Days Projected Until IPv4 Exhaustion</title>
        <link>http://www.webmonkey.com/2008/05/992_days_projected_until_ipv4_exhaustion/</link>
        <comments>http://www.webmonkey.com/2008/05/992_days_projected_until_ipv4_exhaustion/#comments</comments>
        <pubDate>Mon, 05 May 2008 19:21:45 +0000</pubDate>

                <dc:creator>Paul Adams</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/996daysprojec</guid>
        		<category><![CDATA[Web Basics]]></category>
		<category><![CDATA[standards]]></category>
        <description><![CDATA[Here on the Internet, we&#8217;ve been using the IPv4 network protocol for quite a while. Its successor, IPv6, is waiting patiently in the wings, but it&#8217;s a hard leap to make. IPv4 addresses look like 192.168.50.66. IPv6 addresses are longer: 2001:0f68:0000:0000:0000:0000:1986:69af. IPv4 only provides 232 possible addresses, which we&#8217;re plowing through rapidly; IPv6 provides 2128, [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img alt="Ipv6" title="Ipv6" src="http://blog.wired.com/photos/uncategorized/2008/05/05/ipv6.png" border="0" style="float: right; margin: 0px 0px 5px 5px;" />Here on the Internet, we&#8217;ve been using the IPv4 network protocol for quite a while. Its successor, IPv6, is waiting patiently in the wings, but it&#8217;s a hard leap to make.</p>
<p>IPv4 addresses look like <code>192.168.50.66</code>. IPv6 addresses are longer: <code>2001:0f68:0000:0000:0000:0000:1986:69af</code>. IPv4 only provides 2<sup>32</sup> possible addresses, which we&#8217;re plowing through rapidly; IPv6 provides 2<sup>128</sup>, which should last us rather an astronomical while.</p>
<p>IPv6 offers further advantages too, like built-in <a href="http://en.wikipedia.org/wiki/Ipsec">authentication</a>.</p>
<p>Nobody wants to be the first to make the leap, but the long-awaited transition seems to be happening slowly but surely. In February, IPv6 DNS records were <a href="http://www.iana.org/reports/root-aaaa-announcement.html">added</a> to the root servers. In March, Google launched <a href="http://ipv6.google.com/">ipv6.google.com</a>. Does that site work for you? Then your Internet provider is an unusually forward-thinking one. like Hurricane Electric.</p>
<p><a href="http://he.net/">Hurricane Electric</a>, a hosting company I like a lot, is pushing hard for the transition. They already offer dual-stack IPv6 for their users. <a href="http://he.net/news/Hurricane_Electric_IPv6_Update_April_2008.pdf">Here</a>&#8216;s a PDF copy of the letter we users just got. For everyone else, they offer a free IPv6 tunnel service at <a href="http://tunnelbroker.net">Tunnelbroker.net</a>. Try it out!
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/05/992_days_projected_until_ipv4_exhaustion/feed/</wfw:commentRss>
        <slash:comments>2</slash:comments>

        
    </item>
    
    <item>
        <title>Inching Toward a Semantic Web</title>
        <link>http://www.webmonkey.com/2008/04/inching_toward_a_semantic_web/</link>
        <comments>http://www.webmonkey.com/2008/04/inching_toward_a_semantic_web/#comments</comments>
        <pubDate>Wed, 23 Apr 2008 19:33:00 +0000</pubDate>

                <dc:creator>Paul Adams</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/inchingtoward</guid>
        		<category><![CDATA[Web Basics]]></category>
		<category><![CDATA[standards]]></category>
        <description><![CDATA[Firefox 3 introduces support for microformats. Microformats are an approach to making extant human-created data machine-readable. Content like recipes, events, resumes are marked up so that they can be parsed automatically. As you&#8217;d expect, adoption is the sticking point. So it was nice to see that Mahalo.com, a web directory against whom Wired.com bears no [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img alt="Mahalositelogo" title="Mahalositelogo" src="http://blog.wired.com/photos/uncategorized/2008/04/23/mahalositelogo.gif" border="0" style="float: right; margin: 0px 0px 5px 5px;" />Firefox 3 introduces <a href="http://blog.wired.com/monkeybites/2007/01/firefox_3_to_su.html#previouspost">support</a> for <a href="http://en.wikipedia.org/wiki/Microformats">microformats</a>. Microformats are an approach to making extant human-created data machine-readable.</p>
<p>Content like recipes, events, resumes are marked up so that they can be parsed automatically. As you&#8217;d expect, adoption is the sticking point. So it was nice to see that <a href="http://en.wikipedia.org/wiki/Mahalo.com">Mahalo.com</a>, a web directory against whom Wired.com bears no grudge, is now <a href="http://www.seanpercival.com/blog/2008/04/23/mahalo-adds-microformats/">using</a> microformats for their data. <a href="http://www.thinkvitamin.com/features/design/how-to-use-microformats">Your turn</a>.</p>
<p><strong>See Also:</strong><br/>
<ul>
<li><a href="http://blog.wired.com/monkeybites/2007/01/firefox_3_to_su.html#previouspost">Firefox 3 To Support Microformats</a></li>
<li><a href="http://blog.wired.com/monkeybites/2007/08/google-maps-tak.html#previouspost">Google Maps Takes One Giant Leap For Microformats</a></li>
<li><a href="http://blog.wired.com/monkeybites/2007/09/mahalo-launches.html#previouspost">Mahalo Launches &#39;How To&#39; Content, Uses WIRED Cover</a></li>
<li><a href="http://blog.wired.com/business/2007/08/jason-calacanis.html#previouspost">Jason Calacanis Apologizes For Mahalo &#39;Spam&#39;</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/04/inching_toward_a_semantic_web/feed/</wfw:commentRss>
        <slash:comments>2</slash:comments>

        
    </item>
    
    <item>
        <title>What&#8217;s a Good Way to Programmatically Create RTFs?</title>
        <link>http://www.webmonkey.com/2008/04/what_s_a_good_way_to_programmatically_create_rtfs/</link>
        <comments>http://www.webmonkey.com/2008/04/what_s_a_good_way_to_programmatically_create_rtfs/#comments</comments>
        <pubDate>Tue, 15 Apr 2008 13:29:00 +0000</pubDate>

                <dc:creator>Paul Adams</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/whatsagoodwa</guid>
        		<category><![CDATA[Web Basics]]></category>
		<category><![CDATA[standards]]></category>
        <description><![CDATA[Dear, wise readers: I&#8217;m looking for a Linux command-line tool that can convert ASCII plain text files to Rich Text Format. Sure, it&#8217;s a Microsoft-owned standard, but it&#8217;s pretty interoperable, and a good lightweight alternative to .doc. Unlike, say, .odt, old-school tech illiterates won&#8217;t freak out if you send them one. I&#8217;ve tried text2rtf, which [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img alt="Rtf" title="Rtf" src="http://blog.wired.com/photos/uncategorized/2008/04/14/rtf.gif" border="0" style="float: right; margin: 0px 0px 5px 5px;" />Dear, wise readers: I&#8217;m looking for a Linux command-line tool that can convert <s>ASCII</s> plain text files to Rich Text Format. Sure, it&#8217;s a Microsoft-owned standard, but it&#8217;s pretty interoperable, and a good lightweight alternative to .doc. Unlike, say, .odt, old-school tech illiterates won&#8217;t freak out if you send them one.</p>
<p>I&#8217;ve tried <a href="http://freshmeat.net/projects/text2rtf/">text2rtf</a>, which seems to render much of its output in unwanted italics; and the command-line version of <a href="http://www.docfrac.net/index.php">Docfrac</a>, which stumbles over accented characters and inserts extra blank lines.</p>
<p>Is this a task that&#8217;s harder than it seems? I&#8217;m not about to spend $59 on a single-user license for <a href="http://www.jafsoft.com/asctortf/">AscToRtf</a>. OS X&#8217;s <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/textutil.1.html">textutil </a> is very nice, but not portable to non-Cocoa systems. There must be a script out there for me.</p>
<p><strong>See Also:</strong><br/>
<ul>
<li><a href="http://blog.wired.com/cultofmac/2007/05/macbu_releases_.html#previouspost">MacBU Releases Word 2007 Document Converter</a></li>
<li><a href="http://www.wired.com/software/coolapps/news/2007/08/ooxml_vote">Microsoft Allegedly Bullies and Bribes to Make Office an International Standard</a></li>
<li><a href="http://blog.wired.com/monkeybites/2007/09/iso-rejects-mic.html#previouspost">ISO Rejects Microsoft&#8217;s Office Doc Format</a></li>
<li><a href="http://blog.wired.com/monkeybites/2007/10/microsoft-bring.html#previouspost">Microsoft Brings Standards Committee &quot;To A Grinding Halt&quot;</a></li>
<li><a href="http://blog.wired.com/monkeybites/2008/04/microsofts-offi.html">Microsoft&#8217;s Office Doc Format Wins ISO Approval</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2008/04/what_s_a_good_way_to_programmatically_create_rtfs/feed/</wfw:commentRss>
        <slash:comments>7</slash:comments>

        
    </item>
    </channel>
</rss>