<?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>Daniel Linn's Blog</title>
	<atom:link href="http://dmlinn.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://dmlinn.com/blog</link>
	<description>Hello, real world.</description>
	<lastBuildDate>Wed, 23 Mar 2011 05:39:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Reference and display Drupal nodes to current page</title>
		<link>http://dmlinn.com/blog/?p=31</link>
		<comments>http://dmlinn.com/blog/?p=31#comments</comments>
		<pubDate>Wed, 23 Mar 2011 05:33:37 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=31</guid>
		<description><![CDATA[When I create new content, I want to be able to type what page it is to display on and NOT have to create new blocks for each page (which would have gotten very tedious and out of control).  Using views and a custom content type with a node reference field, I was able to do [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-33" style="border: 1px solid black; float: right; margin: 0 0 15px 15px;" title="gloh" src="http://dmlinn.com/blog/wp-content/uploads/2011/03/gloh.gif" alt="Display content on referenced node" width="300" height="206" /></p>
<p>When I create new content, I want to be able to type what page it is to display on and NOT have to create new blocks for each page (which would have gotten very tedious and out of control).  Using views and a custom content type with a node reference field, I was able to do just that.</p>
<p>It would have been easy to reference the NID from the URL using Views arguments, but I have Pathauto enabled and URL aliases for just about everything.</p>
<p><a href="http://peterpetrik.com/blog/node-id-view-argument-from-seo-friendly-url-path#comment-171">This article</a> has been very helpful in coming up with a workaround.</p>
<p>Here is my quick explanation, in hopes that it might help someone else figure this out:</p>
<ol>
<li>Create a new content type with a node reference field (I used auto complete).</li>
<li>Create a few nodes of that content type for testing.</li>
<li>Create a new view, and add a <em>filter</em> for nodes of your new content type.</li>
<li>In the view, add a <em>relationship</em> to the node reference field that belongs to your new content type.</li>
<li>In the view, create an <em>argument</em> with these params:<br />
-Relationship: The one you just created.<br />
-Action to take if argument is not present: Provide default argument.<br />
-Provide default argument options: Node ID from URL<br />
-Validator options: Select &#8216;PHP Code&#8217; and add the code from <a href="http://peterpetrik.com/blog/node-id-view-argument-from-seo-friendly-url-path#comment-171">this site</a> (which sets the argument to the current NID, regardless of aliases).</li>
<li>Save and test.</li>
</ol>
<p>A few thoughts for the Drupal/Views novice:</p>
<ul>
<li>I&#8217;m still not quite certain what relationship is for, other than to offer something to test against in arguments.</li>
<li>Argument tests against defined parameters (current URL, PHP code, etc.) to decide what content to show.</li>
</ul>
<p>And a side note, I did this on Drupal 7 with Views 2.</p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=31</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grooveshark profile for Hipporemote</title>
		<link>http://dmlinn.com/blog/?p=25</link>
		<comments>http://dmlinn.com/blog/?p=25#comments</comments>
		<pubDate>Mon, 13 Dec 2010 05:04:49 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=25</guid>
		<description><![CDATA[I&#8217;m a big fan of Hipporemote and Grooveshark, but was unable to find a profile already made.  In any case, I thought I&#8217;d share what I threw together. You&#8217;ll need the keySharky plugin for Chrome. Download Grooveshark profile for Hipporemote. NOTE:  The artwork was thrown together pretty quickly, and you&#8217;ll see some missing captions.  Also, the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dmlinn.com/blog/wp-content/uploads/2010/12/playpad_gray.png"></a>I&#8217;m a big fan of Hipporemote and Grooveshark, but was unable to find a profile already made.  In any case, I thought I&#8217;d share what I threw together.</p>
<p>You&#8217;ll need the <a href="https://chrome.google.com/extensions/detail/bmdbjbgbnoljfhkjiebkdphfikhkkopn?hl=en">keySharky</a> plugin for Chrome.</p>
<p><a href="http://dmlinn.com/blog/wp-content/uploads/2010/12/Grooveshark.zip">Download Grooveshark profile for Hipporemote.</a></p>
<p>NOTE:  The artwork was thrown together pretty quickly, and you&#8217;ll see some missing captions.  Also, the images have not been updated for iPad.</p>
<p><a href="http://dmlinn.com/blog/wp-content/uploads/2010/12/playpad_gray.png"><img title="playpad_gray" src="http://dmlinn.com/blog/wp-content/uploads/2010/12/playpad_gray.png" alt="Grooveshark Playpad for Hipporemote" width="320" height="367" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=25</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SIMPLE: Detect Browser with PHP (And Automatically Switch CSS Files!)</title>
		<link>http://dmlinn.com/blog/?p=16</link>
		<comments>http://dmlinn.com/blog/?p=16#comments</comments>
		<pubDate>Sun, 28 Sep 2008 04:14:19 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=16</guid>
		<description><![CDATA[I&#8217;ve posted about using JavaScript to detect specific browsers, but that script seems to have its limitations.  I&#8217;ve become infinitely more comfortable with PHP in recent years and find that the following is an acceptable option for detecting a browser.  Better yet, you can write code that will change depending on your visitor&#8217;s browser.  In [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve posted about using JavaScript to detect specific browsers, but that script seems to have its limitations.  I&#8217;ve become infinitely more comfortable with PHP in recent years and find that the following is an acceptable option for detecting a browser.  Better yet, you can write code that will change depending on your visitor&#8217;s browser.  In this case, I use it to switch CSS files.  Here is the code:</p>
<p><code>&lt;? // check for UA, convert UA string to lower case<br />
$navigator_user_agent = ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) ? strtolower( $_SERVER['HTTP_USER_AGENT'] ) : ''; </code></p>
<p><code>// Check browser and select CSS file<br />
if (stristr($navigator_user_agent, "msie 6"))</code><code>{</code><br />
<code>echo '&lt;link href="css/alternate.css" rel="stylesheet" type="text/css" /&gt;';</code><br />
<code>}</code></p>
<p><code>else</code><code>{</code><br />
<code>echo "&lt;link href='css/style.css' rel='stylesheet' type='text/css' /&gt;";</code><br />
<code>}</code><br />
<code>?&gt;</code></p>
<p>If all went well you should now have a script that selects an alternate CSS file for your IE6 visitors.  You can use else-if statements if you would like to add more contingencies.  Another upside to this is if you&#8217;re using non-valid CSS (like *html for IE) you can shuffle it all away in another file that the W3C validator will never see.  Devious!</p>
<p>Make sure you <a href="http://www.zytrax.com/tech/web/browser_ids.htm">find your user agent string!</a>  Some of these are similar and will contain the names of other browsers, so be specific when you use a keyword to search the UA string.</p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=16</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using VB scripts to modify folder names (Windows)</title>
		<link>http://dmlinn.com/blog/?p=15</link>
		<comments>http://dmlinn.com/blog/?p=15#comments</comments>
		<pubDate>Fri, 16 Nov 2007 03:41:00 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=15</guid>
		<description><![CDATA[I&#8217;ve always had problems with folders that start with &#8216;The,&#8217; as it places the folder under &#8216;t&#8217; when arranged in alphabetical order.  I&#8217;m really big into using file directories for my media, and as the computers at my work use scripts for all kinds of redundant operations, I it would be a good challenge to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always had problems with folders that start with &#8216;The,&#8217; as it places the folder under &#8216;t&#8217; when arranged in alphabetical order.  I&#8217;m really big into using file directories for my media, and as the computers at my work use scripts for all kinds of redundant operations, I it would be a good challenge to make one of my own.  This is pretty simple; I&#8217;ll get more in-depth with scripting as I go.</p>
<p>Create a new text file, copy the code into the file, and rename it to .vbs  Don&#8217;t forget to change the directories and string fields to suit your needs.  I&#8217;m not too big on VB, so I modified another script to get me started, but the search and replace functions are specific to our job (rearranging &#8216;the&#8217; in the folder name).</p>
<p><code>Set oFSO = CreateObject("Scripting.FileSystemObject")<br />
Set oFolder = oFSO.GetFolder("z:\Movies")<br />
RenameSubFolders(oFolder)<br />
set oFolder = Nothing<br />
set oFSO = Nothing</code><br />
<code><br />
Function RenameSubFolders(myFolder)</code></p>
<p><code>For each oSubFolder in myFolder.SubFolders<br />
dim pos<br />
pos=InStr(oSubFolder.Name,"The ")<br />
If pos = 1 Then<br />
oSubFolder.Name = Mid(oSubFolder.Name, 5) + ", The"<br />
RenameSubFolders(oSubFolder)<br />
End If<br />
Next</code></p>
<p><code>End Function</code></p>
<p>This script searches for a string in a folder name and places it at the end of the said folder name.  So, for instance, I have a ton of folders named &#8220;The (MovieName)&#8221;  This script renames them to &#8220;(MovieName), The&#8221;.  Like I said, I&#8217;m old school and use file directories for everything (no I-Tunes, thank you) so alphabetical order is very important.  Rather than taking the hours to rename a bunch of folders, I took an hour to toy around with some Visual Basic.  Totally worth it.</p>
<p>So in the end, I really don&#8217;t understand why people don&#8217;t use scripts more often, especially for the growing media libraries that most people have on their computers.  I guess it all comes down to I-Tunes and similar applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=15</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Adobe software like a pro</title>
		<link>http://dmlinn.com/blog/?p=14</link>
		<comments>http://dmlinn.com/blog/?p=14#comments</comments>
		<pubDate>Tue, 06 Nov 2007 00:05:25 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=14</guid>
		<description><![CDATA[I&#8217;m finally a full-time designer, thus the lack of posts over a long period of time. The most valuable lesson I&#8217;ve learned thus far is working with Adobe software for deadlines. Having 30+ deadlines a day is a pretty common phenomenon, and honestly, I struggled the first two weeks to make this speed. I&#8217;ve found [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m finally a full-time designer, thus the lack of posts over a long period of time. The most valuable lesson I&#8217;ve learned thus far is working with Adobe software for deadlines.  Having 30+ deadlines a day is a pretty common phenomenon, and honestly, I struggled the first two weeks to make this speed.</p>
<p>I&#8217;ve found some shortcut references for my most-used Adobe programs.  If you are planning on becoming a designer, or just want to improve your speed, shortcuts are key (pun intended).</p>
<p>Illustrator<br />
<a href="http://www.keyxl.com/aaacaf2/152/Adobe-Illustrator-CS3-keyboard-shortcuts.htm">KeyXL (web)</a></p>
<p>InDesign<br />
<a href="http://www.adobeforums.com/webx/.3c051bc7">Adobe Forums (PDF)</a></p>
<p>Photoshop<br />
<a href="http://morris-photographics.com/photoshop/shortcuts/index.html#pscs3">Trevor Morris Photography (PDF)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=14</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konqueror, Safari and IE6 in Windows Vista</title>
		<link>http://dmlinn.com/blog/?p=11</link>
		<comments>http://dmlinn.com/blog/?p=11#comments</comments>
		<pubDate>Wed, 15 Aug 2007 07:29:01 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=11</guid>
		<description><![CDATA[I finally got Linux running in Windows so I can test on Konqueror. As I suspected, it worked about the same as Safari, another KHTML browser. Anyway, the easiest way I found to get Linux running in Windows can be found here. It&#8217;s just a matter of running KMD on a virtual machine. I originally [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dmlinn.com/blog/wp-content/uploads/2007/08/testing.jpg" title="Browser Testing"><img src="http://dmlinn.com/blog/wp-content/uploads/2007/08/test_thumb1.jpg" alt="Browser Testing" /></a></p>
<p>I finally got Linux running in Windows so I can test on Konqueror.  As I suspected, it worked about the same as Safari, another KHTML browser.  Anyway, the easiest way I found to get Linux running in Windows can be found <a href="http://developer.kde.org/~binner/vmware/">here.</a>  It&#8217;s just a matter of running KMD on a virtual machine.  I originally tried to get it to run using Cygwin, which was a waste of time.</p>
<p>Another issue I ran into a while back was testing with IE6 and below.  Having two versions of Explorer on the same OS is nearly impossible.  Microsoft released a VPC image running IE6 for this reason.  It is available <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&amp;displaylang=en">here.</a></p>
<p>And if you haven&#8217;t heard yet, a beta version of Safari 3 is available for download.  You can get it <a href="http://www.apple.com/safari/download/">here. </a></p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=11</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smacking your HTML into validity</title>
		<link>http://dmlinn.com/blog/?p=8</link>
		<comments>http://dmlinn.com/blog/?p=8#comments</comments>
		<pubDate>Tue, 14 Aug 2007 05:55:09 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[how-to]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=8</guid>
		<description><![CDATA[Modify the Document Type Definition (DTD) Many of the best AJAX apps activate by using custom triggers that do not qualify as valid HTML. I used to think that all was lost, and that there was a mandatory trade between functionality and usability. This is not so: doctype information may be appended to include your [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Modify the Document Type Definition (DTD) </strong></p>
<p>Many of the best AJAX apps activate by using custom triggers that do not qualify as valid HTML.  I used to think that all was lost, and that there was a mandatory trade between functionality and usability.  This is not so: doctype information may be appended to include your triggers.</p>
<p>For instance, I use a <font size="-1">modal window system called <a href="http://www.stickmanlabs.com/lightwindow/" title="LightWindow">LightWindow</a> that has &#8220;author&#8221; and &#8220;caption&#8221; triggers to relate data to the script when a user clicks on an image.  Neither of these triggers will validate under the XHTML 1.0 DTD.  Here&#8217;s the code to fix it:  </font></p>
<p><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"<span class="error"><span class="doctype"><br />
[</span></span><span class="markupdeclaration"><br />
&lt;!ATTLIST a author CDATA #IMPLIED&gt;<br />
</span><span class="markupdeclaration">&lt;!ATTLIST a caption CDATA #IMPLIED&gt;<br />
</span>]&gt;</code></p>
<p>This is how it breaks down:</p>
<p>&lt;!ATTLIST element attribute dataType #IMPLIED or #REQUIRED&gt;</p>
<p>Since my elements relate to linked files e.g.(&lt;a href=) that I want to open with LightWindow, I use the element &#8216;a&#8217; for link.  The attribute is what you are using to communicate with your app and is also what is causing your document to not validate. The dataType can likely just be left as CDATA as it handles any kind of data.  It is also likely best to leave the type defenition as #IMPLIED or optional for these purposes. A more in-depth article can be found at <a href="http://www.alistapart.com/articles/customdtd/">A List Apart</a>.</p>
<p><strong>Fix invalid symbols by changing them to HTML</strong></p>
<p>If you are using a script in your document that is called using symbols such as the ampersand &#8216;&amp;&#8217; or equals &#8216;=&#8217; these will cause the validator to choke.  Consider using their HTML forms amp; and #61; (with ampersands in front) respectively.  A complete list of symbols and HTML translations is available at the <a href="http://htmlhelp.com/reference/html40/entities/symbols.html">Web Design Group&#8217;s site</a>.</p>
<p>For example, a line on my site used to look like this:<br />
<code><br />
&lt;<span class="start-tag">link</span><span class="attribute-name"> rel</span>=<span class="attribute-value">"stylesheet" </span><span class="attribute-name">type</span>=<span class="attribute-value">"text/css" </span><span class="attribute-name">href</span>=<span class="attribute-value">"combine.php?type=css&amp;files=dlinn.css,lightWindow.css" </span><span class="error"><span class="attribute-name">/</span></span>&gt;</code></p>
<p>But now looks like this:</p>
<p><img src="http://dmlinn.com/blog/wp-content/uploads/2007/08/valid.gif" alt="Valid HTML" /></p>
<p><strong>Still having problems with CSS?</strong></p>
<p>Yeah, me too.  We&#8217;ll just have to hang in there until the newer standards (that have existed for years) are adopted or hell freezes over.</p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=8</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A noteworthy Vista modification</title>
		<link>http://dmlinn.com/blog/?p=6</link>
		<comments>http://dmlinn.com/blog/?p=6#comments</comments>
		<pubDate>Thu, 09 Aug 2007 17:19:05 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://dmlinn.com/blog/?p=6</guid>
		<description><![CDATA[I worked on an Apple machine for a year, and I enjoyed the OS. I cant say I enjoyed the machine, a 700mhz G4 that would crash if you looked at it funny. In any case I found myself flicking my cursor to the corner of my monitor even when I was back on my [...]]]></description>
			<content:encoded><![CDATA[<p>  <center><img src="http://dmlinn.com/blog/wp-content/uploads/2007/08/switcher-1984-1_t.jpg" title="Switcher" alt="Switcher" height="384" width="512" /></center></p>
<p>I worked on an Apple machine for a year, and I enjoyed the OS.  I cant say I enjoyed the machine, a 700mhz G4 that would crash if you looked at it funny.  In any case I found myself flicking my cursor to the corner of my monitor even when I was back on my Windows machine.</p>
<p>Meet Switcher, like OSX&#8217;s Expose feature but for Windows Vista.  This program uses Vista&#8217;s built-in desktop rendering system, making it fast and flawlessly integrated.  It works great with multiple monitors, and just like Expose and Flip 3D, it continues to render your window content in real time.  To make things even better, version 2.0 is set to come out soon.</p>
<p>Input is very configurable.  I set switcher to activate on mouse wheel down, though it is possible to use corner activation just like OSX.</p>
<p><a href="http://baostuff.spaces.live.com/default.aspx" title="Bao's Blob">Visit Bao&#8217;s Blob for Switcher.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dmlinn.com/blog/?feed=rss2&#038;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

