<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>I Make Web Junk</title>
	
	<link>http://www.imakewebjunk.com</link>
	<description>Dave Konopka's web development blog</description>
	<lastBuildDate>Wed, 23 Dec 2009 15:17:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/IMakeWebJunk" /><feedburner:info uri="imakewebjunk" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>WTF is open?</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/SOyzipjd2sI/</link>
		<comments>http://www.imakewebjunk.com/2009/12/23/wtf-is-open/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 15:17:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[business models]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[open]]></category>

		<guid isPermaLink="false">http://www.imakewebjunk.com/?p=322</guid>
		<description><![CDATA[So, Gruber thinks that Google&#8217;s The meaning of open blog post is the biggest pile of horseshit he&#8217;s ever seen from Google. I couldn&#8217;t disagree more.

The Google post is long. On first skim I can see coming away thinking it flip-flops. But the core principals in there are solid and clear. It lays out an [...]]]></description>
			<content:encoded><![CDATA[<p>So, Gruber thinks that Google&#8217;s <a href="http://googleblog.blogspot.com/2009/12/meaning-of-open.html">The meaning of open</a> blog post is the <a href="http://daringfireball.net/linked/2009/12/22/open">biggest pile of horseshit he&#8217;s ever seen from Google</a>. I couldn&#8217;t disagree more.</p>

<p>The Google post is long. On first skim I can see coming away thinking it flip-flops. But the core principals in there are solid and clear. It lays out an alternative model for business that the general public often has trouble grasping: Open.</p>

<h3>Business is proprietary, right?</h3>

<p>Businesses exist to make money, plain and simple. I think I learned in eighth grade that a public company is beholden to generate money for its share holders. It&#8217;s one of the basic tenants of our form of capitalism. Like Gordon Gekko said in Wall Street, &#8220;Greed is Good.&#8221; It drives people to accomplish and advance. But the faulty assumption tied up in these generalizations is that there is only way to make money: proprietary business models.</p>

<p>Proprietary products and standards have been one pathway to profit in the past. That doesn&#8217;t mean proprietary is the only possible guiding principle going forward.</p>

<h3>Rising sea level is a good thing</h3>

<p>People often wonder how a company like Google makes money when they give away so much for free. This post lays out the model. Google doesn&#8217;t aim to extract money out of their users by locking them into a perpetual software life-cycle. They aim to raise the sea level of technology.</p>

<p>As the technology improves and cross connects more lines of business open up and more folks gain access to them. Google&#8217;s slice of the pie grows far more than if they focused on grabbing the whole of today&#8217;s pie without regard to the consequences. In the process we get better technology.</p>

<p>Check out Doc Searls recent post <a href="http://www.linuxjournal.com/content/wanted-more-open-source-research">Wanted: More Open Source Research</a> for more on the value of open over proprietary. He does good job highlighting some real world A/B examples.</p>

<h3>Black &amp; white, and shades of gray</h3>

<p>Open doesn&#8217;t always mean free. Open isn&#8217;t about altruism. <strong>Open is not an all or nothing game</strong>.</p>

<p>One thing is clear: the end goal for Google is profit. But in pursuit of that profit they choose to err on the side of open over proprietary. There are cases where they will swing towards the proprietary side. Ads and search algorithms are two examples in the post where they won&#8217;t open source code. On the other hand, they have released plenty of free tools for managing both ads and search. That feels like a fair mix to me.</p>

<p>It comes down to a different set of guiding principles. Proprietary has worked out well in the past. And maybe it serves other industries well. When it comes to technology in a hyperconnected age though, proprietary hinders advancement and it is limits consumer options. That&#8217;s why I&#8217;m excited to see Google outline their open guiding principles.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/SOyzipjd2sI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2009/12/23/wtf-is-open/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2009/12/23/wtf-is-open/</feedburner:origLink></item>
		<item>
		<title>BarCamp Philly blew my mind</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/M9uiE24J9RE/</link>
		<comments>http://www.imakewebjunk.com/2008/11/10/barcamp-philly-blew-my-mind/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 14:31:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.imakewebjunk.com/?p=277</guid>
		<description><![CDATA[BarCamp Philly rocked this weekend. Somewhere around 200 people piled into the University of the Arts with amazing amounts of energy to share ideas on tech and community. I met a lot of great people from the local area that I hadn&#8217;t met before. There were people from all kinds of backgrounds: development, design, community [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.barcampphilly.org/">BarCamp Philly</a> <strong>rocked</strong> this weekend. Somewhere around 200 people piled into the University of the Arts with amazing amounts of energy to share ideas on tech and community. I met a lot of great people from the local area that I hadn&#8217;t met before. There were people from all kinds of backgrounds: development, design, community organization, marketing, and social media. The organizers, <a href="http://stellargirl.com">Roz Duffy</a> and <a href="http://www.30points.com/">JP Toto</a>, and all the volunteers deserve lots of credit for making the event a huge success.</p>

<h4>Philly is an awesome place to be right now</h4>

<p>This was my first BarCamp experience and I&#8217;m glad to have had it in Philly. This city is an awesome place to be right now. Sure there&#8217;s people interested in technology all over the country. But the really exciting thing about Philly is how excited people here are about sharing: sharing knowledge, sharing experiences, and sharing in projects that improve life for everyone.</p>

<h4>By the people, for the people</h4>

<p>The really powerful sessions were open discussions led without much direction or format. Judging by the Twitter chatter there were plenty of these great sessions to go around. I didn&#8217;t end up in many web development sessions, and I think that&#8217;s a good thing. It might be cool to do a more focused DevCamp some other time. But open conversations about the impact of technology on people&#8217;s lives were the best things about BarCamp. The sessions ranged from topics like using social media to bring about social change to whether the internet helps or hurts our personal lives.</p>

<h4>Be Open</h4>

<p>One thing that came up in a few different sessions was a general fear of openness. How open should we be with our ideas? What if someone steals my idea? How open should we be with our opinions? What if somebody disagrees with me?</p>

<p>Something <a href="http://www.dangerouslyawesome.com/">Alex Hillman</a> said in a session resounded with me. I&#8217;m paraphrasing here. You can probably imagine 5 to 10 negative side effects that might come from being open. Maybe somebody steals your idea. Or maybe somebody attacks your opinions on the internet. But the potential upside is infinite. Somebody might hear about your idea, reach out to you, and that connection might be the key to getting your idea off the ground. Put yourself out there for what you&#8217;re excited about. Make connections with people and your ideas will benefit in ways you never expected.</p>

<h4>Do first, worry later</h4>

<p>Another powerful thing that came up a few times is to take action whenever you can. If you&#8217;re stuck in a job where you feel things could be improved, make a tiny change. Sneak in an improvement. Don&#8217;t ask permission to do it. Find like-minded people and tackle the problem. Fly under the radar. Set goals and constantly chip away at them.</p>

<p>If you can&#8217;t fulfill yourself at your job, find some way to be creative outside your job and do it. Sort through your passions and find some way to express them. If you spend all your energy being frustrated you are guaranteed to be frustrated a year from now. Take on your frustrations and find ways to solve them. There&#8217;s no telling what you will have accomplished in a year.</p>

<p>The first BarCamp Philly was a blast. If you didn&#8217;t make it out to this one, make sure you can be at the next one. I&#8217;ve got a few more posts kicking around in my head from the day. But for now I&#8217;m excited to see everyone keep the energy flowing into all the other community powered projects going on around town.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/M9uiE24J9RE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2008/11/10/barcamp-philly-blew-my-mind/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2008/11/10/barcamp-philly-blew-my-mind/</feedburner:origLink></item>
		<item>
		<title>BarCamp Philly</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/uoVu-6y0OzU/</link>
		<comments>http://www.imakewebjunk.com/2008/10/18/barcamp-philly/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 15:35:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.imakewebjunk.com/?p=268</guid>
		<description><![CDATA[
I&#8217;m really excited that Philly will host its first BarCamp &#8220;un&#8221;conference in just a few weeks. There&#8217;s a ton of energy around the event with lots of folks from different backgrounds signed up to attend. The planners have put together a great location for the day in classroom space at the University of the Arts [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.barcampphilly.org/"><img style="float:right;margin-left:10px;" src="http://www.barcampphilly.org/images/barcamp_badge_250px_vertical.png" border="0" alt="BarCamp Philly" /></a>
I&#8217;m really excited that Philly will host its first <a href="http://www.barcampphilly.org/">BarCamp &#8220;un&#8221;conference</a> in just a few weeks. There&#8217;s a ton of energy around the event with lots of folks from different backgrounds signed up to attend. The planners have put together a great location for the day in classroom space at the University of the Arts in Center City.</p>

<p>BarCamp is a totally free &#8220;un&#8221;conference format that has been done many times in cities all over the world. Groups of geeks meet up without any kind of set schedules or planned keynote speakers. Attendees huddle up in the morning around a whiteboard and come up with a day&#8217;s worth of sessions and topics. Everybody has a chance to lead a session on any topic of interest and participate in sessions lead by other attendees.</p>

<p>Every city brings its own unique flavor to a BarCamp and I&#8217;m sure Philly won&#8217;t disappoint. Some of the topics already suggested: Open Source software licenses, technology and the future of music, building iPhone apps, scalable web design, and serial entrepreneurship. I&#8217;m really looking forward to hearing about the creative things people are doing all over the city.</p>

<p>If you&#8217;re going to be anywhere near Philly on Saturday November 8th, definitely plan to come to BarCamp. There will be some fun things going on before and after the event. Watch the <a href="http://www.barcampphilly.org/">BarCamp Philly web site</a> for details.</p>

<p>And if you are going to come <a href="https://barcampphilly.ticketleap.com/">make sure you register</a>. It&#8217;s totally free, but registration is required because space is limited.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/uoVu-6y0OzU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2008/10/18/barcamp-philly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2008/10/18/barcamp-philly/</feedburner:origLink></item>
		<item>
		<title>Keep an Eye on Craigslist with Google Alerts</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/H45SagsflGA/</link>
		<comments>http://www.imakewebjunk.com/2008/10/17/keep-an-eye-on-craigslist-with-google-alerts/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 16:38:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.imakewebjunk.com/?p=251</guid>
		<description><![CDATA[Craigslist is my goto site for second-hand gear. Concert tickets, computer hardware, gaming systems&#8230; No matter what I&#8217;m looking for I know eventually someone will put one up for sale.

Scanning through endless listings of unrelated garbage though is boring. That&#8217;s why I use Google Alerts to do the boring work for me. Google Alerts keeps [...]]]></description>
			<content:encoded><![CDATA[<p>Craigslist is my goto site for second-hand gear. Concert tickets, computer hardware, gaming systems&#8230; No matter what I&#8217;m looking for I know eventually someone will put one up for sale.</p>

<p>Scanning through endless listings of unrelated garbage though is boring. That&#8217;s why I use <a href="http://www.google.com/alerts">Google Alerts</a> to do the boring work for me. Google Alerts keeps an eye on Craigslist and sends me an email whenever keywords that I&#8217;m interested in are posted anywhere on the site.</p>

<p>If you&#8217;ve never heard of it before, Google Alerts is like Google Search on a schedule. You enter a search term much like you would in Google search. But instead of giving you immediate results, Alerts watches the web for new matches to appear. Whenever new results are posted to the web for your search term Alerts sends you an email. The email includes links to the sites that mention your term along with a snippet of surrounding text for context.</p>

<p>So how does this help you watch Craigslist? Well, one of the cool things about Alerts is that you can use all kinds of Google search operators. For instance, the <em>Site:</em> keyword limits a search to a single domain. So if I put in <em>&#8220;Mac mini&#8221; site:http://philadelphia.craigslist.org</em> as my alert search, new posts with the phrase &#8220;Mac mini&#8221; will be emailed to me as they pop up. But only results in the http://philadelphia.craigslist.org domain will be included.</p>

<p>Swap out &#8220;Mac mini&#8221; for whatever it is you&#8217;re looking for and you&#8217;ve got yourself a Philly Craigslist Alert. Check out the list of supported <a href="http://www.google.com/help/operators.html">Google search operators</a> to refine your own alerts. You don&#8217;t even need a Google account to setup an alert. Any email address will do. And if immediate emails aren&#8217;t your thing, there&#8217;s a daily digest mode for those low-demand things on your wish list.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/H45SagsflGA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2008/10/17/keep-an-eye-on-craigslist-with-google-alerts/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2008/10/17/keep-an-eye-on-craigslist-with-google-alerts/</feedburner:origLink></item>
		<item>
		<title>Combine Integrated Windows auth and anonymous access</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/t1fj0CnOOzA/</link>
		<comments>http://www.imakewebjunk.com/2008/10/17/combine-integrated-windows-auth-and-anonymous-access/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 14:45:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.imakewebjunk.com/?p=245</guid>
		<description><![CDATA[One of the things I work on at Wharton is a student portal. The portal is a public web site but most features are protected by a web form log in. A common complaint from students is that they&#8217;re forced to log in to the web site after they&#8217;ve already logged into a school computer [...]]]></description>
			<content:encoded><![CDATA[<p>One of the things I work on at Wharton is a <a href="http://spike.wharton.upenn.edu">student portal</a>. The portal is a public web site but most features are protected by a web form log in. A common complaint from students is that they&#8217;re forced to log in to the web site after they&#8217;ve already logged into a school computer lab computer with the same exact account. Shouldn&#8217;t the portal already know who they are without another log in?</p>

<p>After doing some experimenting, I&#8217;ve found it&#8217;s possible to combine anonymous access, web form authentication, and Integrated Windows authentication. I&#8217;m throwing out my approach in case anyone needs to do something similar. We run ColdFusion on IIS servers to power our apps but you may be able to adapt this for other platforms.</p>

<p>Our web apps rely on Active Directory domain accounts to authenticate users. And our web environment runs on Windows machines. One of the nice things about Windows IIS web servers is the Integrated Windows authentication security option. Under this setup, any user logged into a machine with their domain account can access a secured web site without reentering a username and password.</p>

<p>One of the drawbacks to integrated auth is that users have to be logged into their computer with an Active Directory domain account to use it. And most browsers won&#8217;t support it by default. Anyone that visits a site secured with integrated auth that isn&#8217;t setup properly gets an ugly browser popup box asking for a username and password. This isn&#8217;t a very elegant option for securing a public web site. But it can be useful for users in a computer lab or a corporate office where you have some control over client computers.</p>

<p>So here&#8217;s the general process when a student in a computer lab visits the portal.</p>

<ul>
    <li>If they&#8217;re coming from an ip address in a range used by our labs, the app redirects them from the homepage to a subdirectory of the site. This subdirectory has anonymous access disabled and Integrated Windows Authentication enabled in IIS. The parent site folder has anonymous access enabled.</li>
    <li>A script in the subdirectory detects if integrated auth has been negotiated. In ColdFusion integrated authentication has passed if the <em>cgi.remote_user</em> or <em>cgi.auth_user</em> variables are populated with a username. The value comes through as <em>DOMAIN\username</em>.</li>
    <li>If the username is there then the script logs that username into the portal app and creates a session. Then it redirects them back over to the root of the site as a fully logged in user. All the extended features of the site are accessible without a manual log in.</li>
</ul>

<p>It sounds like a lot of steps, but the redirects are unnoticeable. The user requests the regular URL for the site and arrives at the site logged in automagically. It&#8217;s seamless.</p>

<p>If you&#8217;re going to try out integrated auth, you&#8217;ll need to tweak your browser a bit. Recent versions of IE require that the URL of the site be added to the Intranet Sites trusted list. Recent versions of Firefox also support this but require a few configuration tweaks. Check out <a href="http://markmonica.com/2007/11/20/firefox-and-integrated-windows-authentication/">How To: Firefox and Integrated Windows Authentication</a> for more details.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/t1fj0CnOOzA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2008/10/17/combine-integrated-windows-auth-and-anonymous-access/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2008/10/17/combine-integrated-windows-auth-and-anonymous-access/</feedburner:origLink></item>
		<item>
		<title>AIR: Why bother?</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/iE9_VnU29O8/</link>
		<comments>http://www.imakewebjunk.com/2007/06/14/air-why-bother/#comments</comments>
		<pubDate>Thu, 14 Jun 2007 18:33:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lifelikeweeds.com/2007/06/14/air-why-bother/</guid>
		<description><![CDATA[ColdFusion makes developing web applications insanely quick and easy. I don&#8217;t need to worry about the nuts and bolts of how to connect to a database, or how to invoke a web service, or how to read and write files on the server. I just write straightforward tags in my favorite text editor &#8212; and [...]]]></description>
			<content:encoded><![CDATA[<p>ColdFusion makes developing web applications insanely quick and easy. I don&#8217;t need to worry about the nuts and bolts of how to connect to a database, or how to invoke a web service, or how to read and write files on the server. I just write straightforward tags in my favorite text editor &#8212; and I&#8217;m done, web application launched for all the world to use.</p>

<p>But there are some things that web applications can&#8217;t do. They can&#8217;t really read and write files on the client machine. They can&#8217;t interact much with the client operating system. Drag and drop, PDF manipulation, copy and paste… the list goes on. And all that aside, an Internet application will never work without an Internet connection.</p>

<p>So how do you go about creating something that can do those things? A couple years ago, you were stuck building complex and clunky binary applications. So you have to dig into lower level languages like Java, C++, or any of the .Net languages.</p>

<p>Suddenly you&#8217;re working with compilers and writing 300 commands to do what one tag does in ColdFusion. Sure, you&#8217;re scoring points with the Java and .Net purists. But all that doesn&#8217;t leave a ton of time for the trivial things like the interface or user experience.</p>

<p>Enter the <a href="http://labs.adobe.com/wiki/index.php/AIR" target="_blank">Adobe Integrated Runtime &#8212; AIR</a>. You can use AIR to write a desktop application in Flex XML and ActionScript, or HTML and JavaScript. AIR exposes hooks in to the client system to handle a local database connection, catch drag and drop events, open up local files, and even render PDF documents.</p>

<p>So instead of writing complex machine code, you&#8217;re back to writing tags to define the interface. And you&#8217;re calling a simplified scripting API to do heavy lifting under the covers. And the API runs on both Windows and Mac, so your pool of potential users is not limited to one operating system.</p>

<p>Have you already written a full web application in Flex or AJAX? You&#8217;re only a few steps away from adapting the same code to run either online, or on the desktop. Maybe it’s a little of both.</p>

<p>Flickr has offered a pretty slick upload tool for a few years now. It&#8217;s an executable that you can install on your desktop to do drag and drop file uploads. Somebody at Flickr had to develop separate binary Windows and Mac executables.</p>

<p>With AIR, that&#8217;s something you could in one shot. Don&#8217;t believe me? Check out Matt Chotin&#8217;s <a href="http://weblogs.macromedia.com/mchotin/archives/2007/06/new_adobe_air_a.cfm">MediaWiki uploader AIR app</a>. They&#8217;re different underlying services, but it&#8217;s a great example of how a web app can be extended to the desktop.</p>

<p>AIR does a lot to bridge the gap between web and desktop apps. But just like ColdFusion did for web scripting, it makes building all the parts <em>easy</em>. And you get to use tools that you already know exactly how to use.</p>

<p>Now you can get back to focusing on what&#8217;s really important: building better software.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/iE9_VnU29O8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2007/06/14/air-why-bother/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2007/06/14/air-why-bother/</feedburner:origLink></item>
		<item>
		<title>SelectSwap ColdFusion custom tag</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/mQcERT0AOuo/</link>
		<comments>http://www.imakewebjunk.com/2007/05/16/selectswap-coldfusion-custom-tag/#comments</comments>
		<pubDate>Wed, 16 May 2007 21:50:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lifelikeweeds.com/2007/05/16/selectswap-coldfusion-custom-tag/</guid>
		<description><![CDATA[I just posted the code for a dual select box ColdFusion custom tag called cf_SelectSwap.

It takes a query of items and produces two DHTML list boxes. Users can pick items from the available list and move them to the selected list. The selections are stored to two form variables. The first is a list of [...]]]></description>
			<content:encoded><![CDATA[<p>I just posted the code for a dual select box ColdFusion custom tag called <a href="http://selectswap.riaforge.com">cf_SelectSwap</a>.</p>

<p>It takes a query of items and produces two DHTML list boxes. Users can pick items from the available list and move them to the selected list. The selections are stored to two form variables. The first is a list of selected values, the other a list of selected display text values.</p>

<p>If a user has JavaScript disabled, it degrades down to a single list box with items selected. It can be used multiple times within the same cfm template.</p>

<p>Nothing earth shattering, but I put it together in the middle of a project I am working on. Maybe someone else can get some mileage out of it.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/mQcERT0AOuo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2007/05/16/selectswap-coldfusion-custom-tag/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2007/05/16/selectswap-coldfusion-custom-tag/</feedburner:origLink></item>
		<item>
		<title>Optional ColdFire Debugging</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/bPop6-uDeJM/</link>
		<comments>http://www.imakewebjunk.com/2007/05/08/optional-coldfire-debugging/#comments</comments>
		<pubDate>Tue, 08 May 2007 16:15:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lifelikeweeds.com/2007/05/08/optional-coldfire-debugging/</guid>
		<description><![CDATA[I&#8217;ve been using Ray Camden&#8217;s and Adam Podolnick&#8217;s ColdFire Firebug extension for a little while now. For those who haven&#8217;t tried it yet, the Firefox extension displays ColdFusion debugging info in a separate panel instead of appending it directly to the bottom of each page. It&#8217;s powerful stuff if you&#8217;ve ever had a page layout [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://ray.camdenfamily.com/index.cfm/2007/3/9/Announcing-ColdFire">Ray Camden</a>&#8217;s and Adam Podolnick&#8217;s <a href="http://coldfire.riaforge.com">ColdFire</a> Firebug extension for a little while now. For those who haven&#8217;t tried it yet, the Firefox extension displays ColdFusion debugging info in a separate panel instead of appending it directly to the bottom of each page. It&#8217;s powerful stuff if you&#8217;ve ever had a page layout mangled by the vanilla debug dump.</p>

<p>Part of the setup for using ColdFire is deploying a customized debugging cfm template to your server. I never knew this &#8212; but ColdFusion actually uses a cfm template to parse and format the debugging output that ends up on each page. You can actually edit this file to customize the output on your system.</p>

<p>I wanted to get ColdFire working on our shared development server at work. But I knew not all of the developers would be on board to start. Luckily, the debugging cfm executes within each application. So the session and application variable scopes are available inside it.</p>

<p>The server debug template can alternate between the default debugging dump and ColdFire formatted output by checking for the existence of a session variable. By default, the server will append the default debug information. But each developer can set a session variable inside an application event or on individual templates to fire the ColdFire formatted output.</p>

<p>This is what your debug template looks like:</p>

<div class="code">&lt;cfif IsDefined(&quot;SESSION&quot;)<br />
&nbsp;&nbsp;&nbsp;AND IsStruct(SESSION)<br />
&nbsp;&nbsp;&nbsp;AND StructCount(SESSION) GT 0<br />
&nbsp;&nbsp;&nbsp;AND IsDefined(&quot;SESSION.UseColdFireDebugging&quot;)<br />
&nbsp;&nbsp;&nbsp;AND SESSION.UseColdFireDebugging EQ true&gt;<br /><br />
&nbsp;&nbsp;&nbsp;&lt;!&#8212; Place the contents of ColdFire.cfm here &#8212;&gt;<br /><br />
&lt;cfelse&gt;<br /><br />
&nbsp;&nbsp;&nbsp;&lt;!&#8212; Place the contents of your classic.cfm or custom debug template here &#8212;&gt;<br /><br />
&lt;/cfif&gt;</div>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/bPop6-uDeJM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2007/05/08/optional-coldfire-debugging/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2007/05/08/optional-coldfire-debugging/</feedburner:origLink></item>
		<item>
		<title>Picking a gadget/widget platform</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/sauNlshmnlo/</link>
		<comments>http://www.imakewebjunk.com/2007/05/02/picking-a-gadgetwidget-platform/#comments</comments>
		<pubDate>Wed, 02 May 2007 14:52:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lifelikeweeds.com/2007/05/02/picking-a-gadgetwidget-platform/</guid>
		<description><![CDATA[There&#8217;s lots of ways right now to extend the web outside of a traditional web browser. Whether you call them gadgets or widgets, web-enabled desktop mini-apps can be a powerful way to bridge the divide between your users&#8217; machines and your Internet applications.

With all the gadget platforms out there, it can be tough to sift [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s lots of ways right now to extend the web outside of a traditional web browser. Whether you call them gadgets or widgets, web-enabled desktop mini-apps can be a powerful way to bridge the divide between your users&#8217; machines and your Internet applications.</p>

<p>With all the gadget platforms out there, it can be tough to sift through the options. But in reality, most of the gadget engines are nothing more than glorified web page renderers. If you know HTML and you&#8217;re comfortable with JavaScript, you&#8217;re already well on your way to churning out your own custom gadgets.</p>

<p><span id="more-94"></span></p>

<h4>Using the Operating System</h4>

<p>First off, there are the operating system platforms. Microsoft&#8217;s Windows Vista ships with a gadget tool-strip called the Sidebar. Apple&#8217;s OS X includes Dashboard, an application for running widgets. The advantage of these OS platforms is that they come pre-installed.</p>

<p>If you&#8217;re targeting a Microsoft Vista shop, you can deploy Sidebar gadgets out of the box without installing any additional software. And if your users are Apple-holics, you can be sure that every shiny new Macbook out there will be able to run your Dashboard Widget.</p>

<h4>Cross-Platform Support</h4>

<p>If you&#8217;re not catering to a single OS, cross-platform engines might be a better solution. Yahoo&#8217;s Widgets and Google&#8217;s Desktop Gadgets engines both run on Windows 2000, XP and Vista, as well as on newer versions of OS X. But users need to install the engine software before they can use your gadgets.</p>

<h4>Mighty Apollo</h4>

<p>Adobe&#8217;s Apollo runtime is the latest entry into the competition for the desktop. Apollo offers Flash, Flex, and AJAX functionality and hooks into a machine&#8217;s file system. But it can also be used simply to render HTML based mini-apps.</p>

<p>And if you&#8217;ve got Flash or Flex capabilities, you can pull off some very cool things in Apollo that you can&#8217;t do easily on the other platforms. Still, the barrier to entry is that users need to install the Apollo runtime on their machines. Given Adobe&#8217;s reach with the Flash player, this will become less and less of a problem over time.</p>

<h4>Lack of Standards</h4>

<p>Unfortunately, there are no common platform or format standards for gadgets. Each system has its quirks. Most require some kind of file for defining settings and options. Each one offers different hooks into extended desktop functionality that isn&#8217;t available to pages inside a regular web browser.</p>

<p>Learning the different API hooks is easy. But the differences prevent you from deploying one gadget for all of the platforms. The lesson here is to consider your audience. Make your mini-apps accessible to the people who will end up using them. With a little planning and understanding of the differences between platforms, you might even be able to repackage your HTML and scripting code for use in multiple of the platforms.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/sauNlshmnlo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2007/05/02/picking-a-gadgetwidget-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2007/05/02/picking-a-gadgetwidget-platform/</feedburner:origLink></item>
		<item>
		<title>Organize Twitter Tweets with Yahoo Pipes</title>
		<link>http://feedproxy.google.com/~r/IMakeWebJunk/~3/3YkrC1tg7fA/</link>
		<comments>http://www.imakewebjunk.com/2007/03/27/twitter-pipes/#comments</comments>
		<pubDate>Wed, 28 Mar 2007 03:30:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lifelikeweeds.com/2007/03/27/twitter-pipes/</guid>
		<description><![CDATA[Twitter has been all the rage amongst web geeks for a few months now. But as the service starts to catch on with the general public, keeping up on all the Tweet messages can get a little crazy. It only gets crazier as you start following tweets from your coworkers, ColdFusion gurus, the Mac community, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.twitter.com/lifelikeweeds">Twitter</a> has been all the rage amongst web geeks for a few months now. But as the service starts to catch on with the general public, keeping up on all the Tweet messages can get a little crazy. It only gets crazier as you start following tweets from your coworkers, ColdFusion gurus, the Mac community, and, oh yeah, Jack Bauer. With a little help from Yahoo Pipes, you can organize and separate tweets into different RSS feeds.</p>

<p>Twitter exposes most of its service functionality through an extensive <a href="http://twitter.com/help/api">API system</a>. The API is powerful and insanely simple. On top of that, most of the tweet lists are available in <a href="http://techbrew.net/articles/200703/twitter-hacks-rss-and-json-feeds/">both RSS and JSON</a> form. Using just a few lines of scripting code, you can bring all the elements of Twitter to your own web site or desktop gadget/widget.</p>

<p>Take this a step farther, and you can pull the RSS feeds for individual tweet streams into a single Yahoo Pipe. Pull the pipe through a sort operator on the publication date and the various Twitter streams intermingle into one timeline. The pipe has its own RSS feed that you can follow in your feed reader of choice or pull into your own applications.</p>

<p>I just threw together two quick examples, a <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=6Jvl5Njc2xG_9s0jmLokhQ">ColdFusion Tweet pipe</a> and a <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=RIgyvNrc2xGsajjmCB2yXQ">Flex Tweet pipe</a>. Neither is exhaustive but there&#8217;s enough there to get the basic idea.</p>

<p>This is some very cool stuff, a perfect example of opening up your applications so your users can decide how to consume them.</p>
<img src="http://feeds.feedburner.com/~r/IMakeWebJunk/~4/3YkrC1tg7fA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.imakewebjunk.com/2007/03/27/twitter-pipes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.imakewebjunk.com/2007/03/27/twitter-pipes/</feedburner:origLink></item>
	</channel>
</rss>
