<?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>Joe Song</title> <atom:link href="http://joesong.com/feed/" rel="self" type="application/rss+xml" /><link>http://joesong.com</link> <description>Development, music.</description> <lastBuildDate>Fri, 26 Feb 2010 15:54:36 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Changing The WAMP Icons</title><link>http://joesong.com/2010/02/changing-the-wamp-icons/</link> <comments>http://joesong.com/2010/02/changing-the-wamp-icons/#comments</comments> <pubDate>Fri, 26 Feb 2010 15:54:02 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Development]]></category><guid
isPermaLink="false">http://joesong.com/?p=982</guid> <description><![CDATA[How to give WAMP different, alternative, better tray icons.]]></description> <content:encoded><![CDATA[<p>It has kind of bugged me that the <a
href="http://www.wampserver.com/" target="_blank">WAMP</a> status tray icons are all pretty similar to each other. It gets annoying especially because the &#8217;some services running&#8217; and the &#8216;all services running&#8217; are yellow and white, respectively. When you are trying to make and test changes to one of the services those colors look really similar.</p><p>So, I changed which icons it shows and used the better, alternative ones. They are already there in the icon bar in c:\wamp\images_on.bmp and c:\wamp\images_off.bmp. We just have to change the mapping.</p><p>In c:\wamp\wampmanager.tpl change lines 10 &#8211; 12 from</p><pre class="brush: plain;">
TrayIconAllRunning=16
TrayIconSomeRunning=17
TrayIconNoneRunning=18
</pre><p>to</p><pre class="brush: plain;">
TrayIconAllRunning=9
TrayIconSomeRunning=10
TrayIconNoneRunning=11
</pre><p>The downsides: there is no difference between the icons for offline and online modes, the new icons seem meant to be used elsewhere (but I never see them, or at least not nearly as much as I see the tray icons).</p> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/02/changing-the-wamp-icons/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Showing in-page and inline content in Lightbox2</title><link>http://joesong.com/2010/02/showing-in-page-and-inline-content-in-lightbox2/</link> <comments>http://joesong.com/2010/02/showing-in-page-and-inline-content-in-lightbox2/#comments</comments> <pubDate>Thu, 25 Feb 2010 18:02:28 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[JavaScript]]></category><guid
isPermaLink="false">http://joesong.com/?p=954</guid> <description><![CDATA[Lightbox2 allows you to load in same-domain content without an iframe using rel="lightmodal". What it doesn't allow you do is use that same mechanism for content already in the page.]]></description> <content:encoded><![CDATA[<p>Lightbox2 allows you to load in same-domain content without an iframe using rel=&#8221;lightmodal&#8221;. What it doesn&#8217;t allow you do is use that same mechanism for content already in the page.</p><p>I&#8217;m working on a project that loads (and hides) content meant for lightbox in the markup of the main page. We are doing this in order to have quick reactions to the users&#8217; clicks and optimize the content for SEO. With the existing mechanism, Lightbox2 will reload the page content if the trigger points to an in-page anchor.  For instance,</p><pre class="brush: xml;">&lt;a href=&quot;#anchors-aweigh&quot;&gt;Load existing content&lt;/a&gt;</pre><p>will cause Lightbox2 to reload the current page even thought the content is already available in-page. This kills the quick reaction time and adds ticks on the tracking calls and increases server load.</p><p>Taking a note from <a
href="http://www.erikhedin.com/web-design/drupal-tips/Easy-Ajax-Nodes-Lightbox-Content" target="_blank">Erik Hedin</a> on how to focus Lightbox on an anchor after (re)loading the page, I rewrote the the modalContainer&#8217;s load instructions to check against the current url and see if the target content is already existing on the page. So, the line</p><pre class="brush: jscript;">$(&quot;#modalContainer&quot;).load(src);</pre><p>in lightbox.js becomes</p><pre class="brush: jscript;">
/* HERE'S THE RUB */

/*
	if already in the page, load in the content
	test by comparing src and window.location without hashes (anchors)
	and then finding the src's hash in the DOM

	if either are false, fall back and load the old way
*/
var srcHash = src.replace(/.*(#.*)/, '$1');
if (window.location.toString().replace(/#.*/, '') == src.replace(/#.*/, '') &amp;&amp;
		srcHash &amp;&amp; $(srcHash)) {

	// clone the referenced node and alter the clone's ID, then insert it into lightbox
	$(&quot;#modalContainer&quot;).html($(srcHash).clone().attr('id', srcHash.replace('#', '') + '-clone'));

} else {

	$(&quot;#modalContainer&quot;).load(src);

}

/* THE RUB STOPS HERE */
</pre><p>But but but but but but, we&#8217;re not done.</p><p>In Erik&#8217;s post he advises changing the lightbox.js script in the Drupal module. I don&#8217;t like changing other people&#8217;s code; I&#8217;d rather overwrite it for my application. Instead of digging inside the module, I have included another script that overwrites the offending Lightbox.showData method. This way, if the modules is updated by its devs, I don&#8217;t have to go digging again. Plus, our Drupal project is instanced over several machines and a dev and a staging and a production site, so changing the module is hard to maintain.</p><p>So, in the end, my application-specific script looks like,</p><pre class="brush: jscript;">
Lightbox.showData = function(){
    $('#loading').hide();

    if (Lightbox.isLightframe || Lightbox.isVideo || Lightbox.isModal) {
        Lightbox.updateDetails();
        if (Lightbox.isLightframe) {
            $('#frameContainer').show();
            if ($.browser.safari) {
                $('#lightboxFrame').css({
                    'zIndex': '10500'
                }).show();
            } else {
                $('#lightboxFrame').css({
                    'zIndex': '10500'
                }).fadeIn(Lightbox.fadeInSpeed);
            }
        } else {
            if (Lightbox.isVideo) {
                $(&quot;#modalContainer&quot;).html(Lightbox.modalHTML);
                $(&quot;#modalContainer&quot;).click(function(){
                    return false;
                });
            } else {
                var src = unescape(Lightbox.imageArray[Lightbox.activeImage][0]);
                if (Lightbox.imageArray[Lightbox.activeImage][4]) {
                    $(src).appendTo(&quot;#modalContainer&quot;);
                } else {

					/* HERE'S THE RUB */

					/*
						if already in the page, load in the content
						test by comparing src and window.location without hashes (anchors)
						and then finding the src's hash in the DOM

						if either are false, fall back and load the old way
					*/
					var srcHash = src.replace(/.*(#.*)/, '$1');
					if (window.location.toString().replace(/#.*/, '') == src.replace(/#.*/, '') &amp;&amp;
							srcHash &amp;&amp; $(srcHash)) {

						// clone the referenced node and alter the clone's ID, then insert it into lightbox
						$(&quot;#modalContainer&quot;).html($(srcHash).clone().attr('id', srcHash.replace('#', '') + '-clone'));

					} else {

						$(&quot;#modalContainer&quot;).load(src);

					}

					/* THE RUB STOPS HERE */
                }
                $('#modalContainer').unbind('click');
            }
            $('#modalContainer').css({
                'zIndex': '10500'
            }).show();
        }
    }    // Handle display of image content.
    else {
        $('#imageContainer').show();
        if ($.browser.safari) {
            $('#lightboxImage').css({
                'zIndex': '10500'
            }).show();
        } else {
            $('#lightboxImage').css({
                'zIndex': '10500'
            }).fadeIn(Lightbox.fadeInSpeed);
        }
        Lightbox.updateDetails();
        this.preloadNeighborImages();
    }
    Lightbox.inprogress = false;

    // Slideshow specific stuff.
    if (Lightbox.isSlideshow) {
        if (!Lightbox.loopSlides &amp;&amp; Lightbox.activeImage == (Lightbox.total - 1)) {
            if (Lightbox.autoExit) {
                Lightbox.slideIdArray[Lightbox.slideIdCount++] = setTimeout(function(){
                    Lightbox.end('slideshow');
                }, Lightbox.slideInterval);
            }
        } else {
            if (!Lightbox.isPaused &amp;&amp; Lightbox.total &gt; 1) {
                Lightbox.slideIdArray[Lightbox.slideIdCount++] = setTimeout(function(){
                    Lightbox.changeData(Lightbox.activeImage + 1);
                }, Lightbox.slideInterval);
            }
        }
        if (Lightbox.showPlayPause &amp;&amp; Lightbox.total &gt; 1 &amp;&amp; !Lightbox.isPaused) {
            $('#lightshowPause').show();
            $('#lightshowPlay').hide();
        } else
            if (Lightbox.showPlayPause &amp;&amp; Lightbox.total &gt; 1) {
                $('#lightshowPause').hide();
                $('#lightshowPlay').show();
            }
    }

    // Adjust the page overlay size.
    var arrayPageSize = Lightbox.getPageSize();
    var arrayPageScroll = Lightbox.getPageScroll();
    var pageHeight = arrayPageSize[1];
    if (Lightbox.isZoomedIn &amp;&amp; arrayPageSize[1] &gt; arrayPageSize[3]) {
        var lightboxTop = (Lightbox.topPosition == '' ? (arrayPageSize[3] / 10) : Lightbox.topPosition) * 1;
        pageHeight = pageHeight + arrayPageScroll[1] + lightboxTop;
    }
    $('#overlay').css({
        'height': pageHeight + 'px',
        'width': arrayPageSize[0] + 'px'
    });

    // Gecko browsers (e.g. Firefox, SeaMonkey, etc) don't handle pdfs as
    // expected.
    if ($.browser.mozilla) {
        if (Lightbox.imageArray[Lightbox.activeImage][0].indexOf(&quot;.pdf&quot;) != -1) {
            setTimeout(function(){
                document.getElementById(&quot;lightboxFrame&quot;).src = Lightbox.imageArray[Lightbox.activeImage][0];
            }, 1000);
        }
    }
};
</pre>]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/02/showing-in-page-and-inline-content-in-lightbox2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>I&#8217;ve always wanted to be an Aerobic instructor.</title><link>http://joesong.com/2010/02/ive-always-wanted-to-be-an-aerobic-instructor/</link> <comments>http://joesong.com/2010/02/ive-always-wanted-to-be-an-aerobic-instructor/#comments</comments> <pubDate>Tue, 23 Feb 2010 23:13:24 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Uncategorized]]></category><guid
isPermaLink="false">http://joesong.com/?p=935</guid> <description><![CDATA[The magic of video has brought my dream to some sort of life.]]></description> <content:encoded><![CDATA[<p><img
class="alignright size-medium wp-image-936" title="oterns_video_poster" src="http://joesong.com/wp-content/uploads/2010/02/oterns_video_poster-300x203.jpg" alt="" width="300" height="203" />But, I&#8217;ve never been in shape enough for it.</p><p>Thankfully, the magic of video has brought my dream to some sort of life. And, we launched the new OLSON O-Terns blog in the process.</p><p><a
href="http://www.olsonoterns.com/" target="_blank">http://www.olsonoterns.com/</a></p><p>It&#8217;s a good thing I&#8217;ve done a bit of acting before because this is going to win an award and how embarrassing would it be for other actors if this was the first thing I was ever in.</p><p>#veryembarrassingforotheractors</p> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/02/ive-always-wanted-to-be-an-aerobic-instructor/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>HTML and CSS Development Guidelines</title><link>http://joesong.com/2010/02/html-and-css-development-guidelines/</link> <comments>http://joesong.com/2010/02/html-and-css-development-guidelines/#comments</comments> <pubDate>Thu, 18 Feb 2010 17:23:29 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[Development]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[html]]></category> <category><![CDATA[optimization]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[programming]]></category> <category><![CDATA[progressive enhancement]]></category><guid
isPermaLink="false">http://joesong.com/?p=925</guid> <description><![CDATA[Some rules for HTML and CSS development based on success in the field.]]></description> <content:encoded><![CDATA[<p>*NOTE &#8211; Feb 18, 2010: this is a work in progress. Very likely, there are points not yet included.</p><h2>Philosophical Approach</h2><p>The approach can be summed up in two points:</p><ol
class="default_list"><li>Write enough markup and style definitions to make it clear to other developers what is happening.</li><li>Write as little markup and style definitions as possible.</li></ol><p>Let’s talk about what these mean.</p><h5>Write enough markup and style definitions to make it clear to other developers what is happening.</h5><p>We follow the principles of semantic web development which involves using markup to describe the data or content of a web page. In practice, this means things like using <code>ol</code> and <code>ul</code> tags to make lists of items instead of text delineated with <code>br</code> tags, and giving page elements class names that describe their function (eg “<code>article-wrapper</code>”) instead of class names that describe their appearance (eg “<code>blue-background</code>”).</p><h5>Write as little markup and as few style definitions as possible.</h5><p>Small file size and shallow markup heirarchy make the site faster to load and easier to maintain. To that end, we write as little markup and as few style as possible to make the page appear and function as necessary. In practice, this means things like using <code>padding</code> and <code>margin</code> to create space between elements instead of using <code>br</code> or empty <code>p</code> tags, and writing reusable CSS classes that add common traits (eg <code>background-color</code>) and can be used in conjunction with other reusable CSS classes that provide other common traits (eg <code>font-size</code>).</p><h2>Rules</h2><p>We have a few easy-to-follow rules for HTML and CSS development that have evolved from years of experience.</p><h5>Rules for writing HTML</h5><ul
class="default_list"><li>Block-level elements      are  never be self-closing, even      when empty.<br
/> <code>&lt;div /&gt;</code> should always be written as <code>&lt;div&gt;&lt;/div&gt;</code>, but but <code>&lt;img /&gt;</code> or <code>&lt;span /&gt;</code> is proper.</li><li>Markup always validates      unless there is a very good reason (eg for cross-browser support or CMS      limitations).<br
/> There are many validators but W3C’s is preferred: <a
href="http://validator.w3.org/">http://validator.w3.org/</a></li><li>Documents are written for      HTML 5.<br
/> Documents should use the the <code>&lt;!DOCTYPE html&gt;</code> declaration.</li><li>Tables are used only for      tabular data, not for layout.</li><li>Stylesheets are included      in the <code>&lt;head&gt;</code> of the page.</li><li>Stylesheets are included      using <code>&lt;link /&gt;</code> tags, not <code>@import</code> statements.<br
/> It is permissable, however, to use <code>@import</code> statements within an external stylesheet.</li><li>Markup should be indented      using tabs, not spaces, so that the indentation matches the markup      heirarchy.</li><li>CSS and JavaScript are      included in external files, not written inline in the page.</li><li>External JavaScript files      are included at the bottom of the page just before the <code>&lt;/body&gt;</code>.</li></ul><h5>Rules for writing CSS</h5><ul
class="default_list"><li>CSS is written a compact      format characterized by the selector and all definitions on one line.<br
/> Use <a
href="http://www.codebeautifier.com/">http://www.codebeautifier.com/</a> to switch between formats; the format described here is called ‘High’ compression.<br
/> <strong><em>Improper:<br
/> </em></strong></p><pre class="brush: css;">.my-class {
	width: 300px;
	height: 300px;
}</pre><p><strong><em>Proper:</em></strong></p><pre class="brush: css;">.my-class { width: 300px; height: 300px; }</pre></li><li>Selectors use hyphens to      delineate words, not camel case or underscores.<br
/> Improper: <code>.myClass</code> or <code>#my_element</code>.      Proper: <code>.better-class</code></li><li>Hacks to make pages work      correctly in Internet Explorer are included in a separate IE-specific      stylesheet and included on the page using conditional comments.</li><li>During development, sites      use a global stylesheet for universal definitions and separate sheets for      independent areas or features of the site.</li><li>Use of style attributes in markup is avoided.</li><li>When possible (that is,      when specific instances are known), <code>.png</code> transparency should be fixed for      specific elements using the IE-6 specific stylesheet instead of using an <code>.htc</code> file as a behavior.<br
/> <strong><em>Improper:</em></strong></p><pre class="brush: css;">a { behavior: url(iepngfix.htc); }</pre><p><strong><em>Proper:<br
/> </em></strong></p><pre class="brush: css;">a#button { background: none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,      sizingMethod=crop, src='../images/button.png'); }</pre></li><li>The default font size is      declared in pixels for the <code>&lt;body&gt;</code> and      the declared for other elements as percentages.<pre class="brush: css;">body { font-size: 13px; }
h1 { font-size: 125%; }</pre></li></ul> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/02/html-and-css-development-guidelines/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>He-Man Song</title><link>http://joesong.com/2010/02/he-man-song/</link> <comments>http://joesong.com/2010/02/he-man-song/#comments</comments> <pubDate>Tue, 16 Feb 2010 16:57:43 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Portraits]]></category><guid
isPermaLink="false">http://joesong.com/?p=917</guid> <description><![CDATA[@jeffreyisham does it again. I thought I hadn&#8217;t uploaded this photo I took of myself, but he must have found it somewhere.]]></description> <content:encoded><![CDATA[<p><a
href="http://jeffreyisham.com" target="_blank">@jeffreyisham</a> does it again. I thought I hadn&#8217;t uploaded this photo I took of myself, but he must have found it somewhere.</p><p><a
href="http://joesong.com/wp-content/uploads/2010/02/he-song.jpg"><img
class="size-full wp-image-918 alignnone" title="he-song" src="http://joesong.com/wp-content/uploads/2010/02/he-song.jpg" alt="" width="269" height="462" /></a></p> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/02/he-man-song/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Who will play the half-time show in 30 years?</title><link>http://joesong.com/2010/02/who-will-play-the-half-time-show-in-30-years/</link> <comments>http://joesong.com/2010/02/who-will-play-the-half-time-show-in-30-years/#comments</comments> <pubDate>Mon, 08 Feb 2010 16:43:10 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Entertainment]]></category><guid
isPermaLink="false">http://joesong.com/?p=670</guid> <description><![CDATA[The elderly men who used to be the Who were adorable with their 40-year-old songs last night at the Super Bowl half-time show.]]></description> <content:encoded><![CDATA[<p>Well, the elderly men who used to be the Who were adorable with their 40-year-old songs last night at the Super Bowl half-time show. Afterwards, <a
href="http://stevenlang.net" target="_blank">Steve Lang</a> and I were wondering, &#8220;Who will be playing the half-time show in 30 or 40 years from now?&#8221;</p><p>Seems like the criteria are:</p><ul
class="default_list"><li>Several quickly-recognizable hits</li><li>A dedicated fan base</li><li>A generally upbeat catalog</li><li>Inoffensive music</li><li>At least half the members still living</li></ul><p>My best guess: the Dave Matthews Band</p><p>Steve said: Hootie &amp; the Blowfish</p><p>What do you think?</p> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/02/who-will-play-the-half-time-show-in-30-years/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>BedlamTheatre.org</title><link>http://joesong.com/2010/02/bedlamtheatre-org/</link> <comments>http://joesong.com/2010/02/bedlamtheatre-org/#comments</comments> <pubDate>Tue, 02 Feb 2010 05:01:17 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Portfolio]]></category> <category><![CDATA[Development]]></category> <category><![CDATA[development lead]]></category> <category><![CDATA[minneapolis]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://joesong.com/?p=677</guid> <description><![CDATA[The new site of the boldest theater in town.]]></description> <content:encoded><![CDATA[<p><a
href="http://joesong.com/wp-content/uploads/2010/02/bedlam.png"><img
class="alignright size-thumbnail wp-image-679" title="BedlamTheatre.org" src="http://joesong.com/wp-content/uploads/2010/02/bedlam-150x150.png" alt="" width="150" height="150" /></a><strong>The Site:</strong> The new site (version 2) for the boldest live theater in town.<br
/> <a
href="http://bedlamtheatre.org" target="_blank">http://bedlamtheatre.org</a></p><p><strong>The Client:</strong> Bedlam creates some of the most interesting and original theater in Minneapolis. They run their own production and, in addition, rent their space to other groups. This means they have a large number of events to keep track of and promote,  and they needed a site that could accommodate them all.</p><p><strong>My Role:</strong> Having designed, built and maintained their version 1 site, I was keenly aware of the workflow issues and front-end pros and cons that they were experiencing. I worked with them to find the new look and feel of the site and to expand the functionality. In the end, the new site was built on WordPress, with collaborative design and unique plugins.</p><p><strong>The Technology:</strong> One of the initial hurdles of this site was importing the existing years of data into WordPress, including media and event dates. I created a unique plugin for them called TheatreEvents and wrote a custom import script that inserted the new posts and attachments and populated the data. The plugin features direct hooking into the admin interface so that event data entry is in the same form as post entry.  On the front-end, the plugin allows for sorting by the event dates and custom week and month views. The plugin will be released publicly soon.</p><p><strong>The Highlights:</strong> Weekly calendar in the sidebar of most pages with Ajax navigation. <a
href="http://bedlamtheatre.org/2010/02/" target="_blank">Monthly calendar</a> of events.</p> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/02/bedlamtheatre-org/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>WestlawNext.com</title><link>http://joesong.com/2010/01/westlawnext-com/</link> <comments>http://joesong.com/2010/01/westlawnext-com/#comments</comments> <pubDate>Sun, 31 Jan 2010 23:00:25 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Portfolio]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[Development]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[OLSON]]></category> <category><![CDATA[programming]]></category><guid
isPermaLink="false">http://joesong.com/?p=683</guid> <description><![CDATA[Product launch site for the biggest name in legal research.]]></description> <content:encoded><![CDATA[<p><a
href="http://joesong.com/wp-content/uploads/2010/02/westlawnext.png"><img
class="alignright size-thumbnail wp-image-686" title="WestlawNext.com" src="http://joesong.com/wp-content/uploads/2010/02/westlawnext-150x150.png" alt="" width="150" height="150" /></a><strong>The Site:</strong> Thomson Reuters, the leading provider of legal and business research products, needed a site to promote the launch of their newest product, WestlawNext.<br
/> <a
href="http://westlawnext.com" target="_blank">http://westlawnext.com</a></p><p><strong>The Client:</strong> Thomson Reuters&#8217; clients are savvy and busy. They knew that if the site was going to reach them, it had to be fast, solid and engaging.</p><p><strong>My Role:</strong> Developer in small, focused group to create the prototype and an on-site advisor during integration with their existing systems.</p><p><strong>The Technology:</strong> The client needed to integrate the site into their CMS but they had asked us to create and test a prototype site before handing it over. We built the original with very limited PHP since we knew TR would be using .NET in the end but PHP allowed our team to quickly build the prototype. The site uses a custom Flash video player and also has a limited but useful mobile version. This mobile version was very important to the client as the majority of their customers regularly use BlackBerrys and other mobile devices. During integration a few technical hurdles appeared from use of their legacy systems but because I was on-site at the time, launch was not affected.</p><p><strong>The Highlights:</strong> <a
href="http://west.thomson.com/westlawnext/seeit/default.aspx" target="_blank">Multiple video players</a> used in conjunction with jQuery UI tabs. Animated main navigation.</p> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/01/westlawnext-com/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Polar Plunge More Enjoyable Than Expected</title><link>http://joesong.com/2010/01/polar-plunge-more-enjoyable-than-expected/</link> <comments>http://joesong.com/2010/01/polar-plunge-more-enjoyable-than-expected/#comments</comments> <pubDate>Sun, 31 Jan 2010 02:45:39 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Timeline]]></category><guid
isPermaLink="false">http://joesong.com/2010/01/polar-plunge-more-enjoyable-than-expected/</guid> <description><![CDATA[It was incredibly cold. But, absolutely fun. Today I jumped in White Bear Lake as part of a big fundraiser for The Special Olympics.
There were eight of us on the OLSON team and Eric and I were last.
]]></description> <content:encoded><![CDATA[<p>It was incredibly cold. But, absolutely fun. Today I jumped in White Bear Lake as part of a big fundraiser for The Special Olympics.</p><p>There were eight of us on the OLSON team and Eric and I were last.</p> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/01/polar-plunge-more-enjoyable-than-expected/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The Dada Polka</title><link>http://joesong.com/2010/01/the-dada-polka/</link> <comments>http://joesong.com/2010/01/the-dada-polka/#comments</comments> <pubDate>Thu, 28 Jan 2010 19:56:41 +0000</pubDate> <dc:creator>josephsong</dc:creator> <category><![CDATA[Music]]></category><guid
isPermaLink="false">http://joesong.com/?p=661</guid> <description><![CDATA[If you only listen to one Magnetic Fields song this year, make it this one.The Dada Polka &#8211; The Magnetic &#8230;
]]></description> <content:encoded><![CDATA[<p><a
href="http://joesong.com/wp-content/uploads/2010/01/realism.jpg"><img
class="alignright size-thumbnail wp-image-665" title="Realism" src="http://joesong.com/wp-content/uploads/2010/01/realism-150x150.jpg" alt="" width="150" height="150" /></a>If you only listen to one Magnetic Fields song this year, make it this one.</p><p> <object
type="application/x-shockwave-flash" data="http://www.lala.com/external/flash/SingleSongWidget.swf" id="lalaSongEmbed" width="220" height="70"><param
name="movie" value="http://www.lala.com/external/flash/SingleSongWidget.swf"/><param
name="wmode" value="transparent"/><param
name="allowNetworking" value="all"/><param
name="allowScriptAccess" value="always"/><param
name="flashvars" value="songLalaId=360569496708415402&#038;host=www.lala.com&#038;partnerId=membersong.36752%4039299"/><embed
id="lalaSongEmbed" name="lalaSongEmbed" src="http://www.lala.com/external/flash/SingleSongWidget.swf" width="220" height="70" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" wmode="transparent" allowNetworking="all" allowScriptAccess="always" flashvars="songLalaId=360569496708415402&#038;host=www.lala.com&#038;partnerId=membersong.36752%4039299"></embed></object><div
style="font-size: 9px; margin-top: 2px;"><a
href="http://www.lala.com/song/360569496708415402" title="The Dada Polka - The Magnetic Fields" target="_blank">The Dada Polka &#8211; The Magnetic &#8230;</a></div> ]]></content:encoded> <wfw:commentRss>http://joesong.com/2010/01/the-dada-polka/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)

Served from: apache2-vat.fitzpatrick.dreamhost.com @ 2010-03-11 21:14:41 -->