<?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>Emergent Properties &#187; Programming</title>
	<atom:link href="http://emergent.urbanpug.com/?cat=11&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://emergent.urbanpug.com</link>
	<description>Order from disorder - Thoughts about where technology is going.</description>
	<lastBuildDate>Wed, 28 Jan 2009 19:27:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Online Image Resizing</title>
		<link>http://emergent.urbanpug.com/?p=75</link>
		<comments>http://emergent.urbanpug.com/?p=75#comments</comments>
		<pubDate>Sat, 12 Aug 2006 20:35:55 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=75</guid>
		<description><![CDATA[I&#8217;ve been working on a tool to resize images, and it&#8217;s finally ready (i think) for public usage. I call it RESIZR. It makes use of scriptaculous and the GD library to resize images. RESIZR &#8211; Resize Images Online technorati tags:image+resizing, photo+resizing, resize+images+online, free+image+resizing+software]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been working on a tool to resize images, and it&#8217;s finally ready (i think) for public usage.  I call it RESIZR.  It makes use of scriptaculous and the GD library to resize images.<br />
<a href="http://www.resizr.com">RESIZR &#8211; Resize Images Online</a></p>
<p><!-- technorati tags begin --></p>
<p style="font-size: 10px; text-align: right">technorati tags:<a rel="tag" href="http://technorati.com/tag/image+resizing">image+resizing</a>, <a rel="tag" href="http://technorati.com/tag/photo+resizing">photo+resizing</a>, <a rel="tag" href="http://technorati.com/tag/resize+images+online">resize+images+online</a>, <a rel="tag" href="http://technorati.com/tag/free+image+resizing+software">free+image+resizing+software</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=75</wfw:commentRss>
		<slash:comments>-30</slash:comments>
		</item>
		<item>
		<title>Multiple scopes with validates_uniqueness_of in Rails</title>
		<link>http://emergent.urbanpug.com/?p=72</link>
		<comments>http://emergent.urbanpug.com/?p=72#comments</comments>
		<pubDate>Thu, 22 Jun 2006 21:24:46 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=72</guid>
		<description><![CDATA[Previously, I talked about Validates_uniqueness_of and scope in rails Well, what happens if you&#8217;ve got a case where, say you&#8217;re selling widgets, and you&#8217;ve got a join model set up with has_many :through relations, and you&#8217;re working with the following table: (we&#8217;re listing stores that sell our widgets, and what size and price they sell &#8230; <a href="http://emergent.urbanpug.com/?p=72" class="more-link">Continue reading <span class="screen-reader-text">Multiple scopes with validates_uniqueness_of in Rails</span></a>]]></description>
				<content:encoded><![CDATA[<p>Previously, I talked about <a href="http://emergent.urbanpug.com/?p=69">Validates_uniqueness_of and scope in rails</a></p>
<p>Well, what happens if you&#8217;ve got a case where, say you&#8217;re selling widgets, and you&#8217;ve got a join model set up with <i>has_many :through </i>relations, and you&#8217;re working with the following table:</p>
<p>(we&#8217;re listing stores that sell our widgets, and what size and price they sell them for)
</p>
<p>Table: saleitems</p>
<p>Columns: widget_id, store_id, size, price</p>
<p>So, now, we want to validate that a widget can be sold at any store, and a widget can be sold many times at one store, but we can only sell a widget-store-size combo once.  (You can&#8217;t sell a LARGE widget twice at the same store)</p>
<p>I think I was wrong, previously in my understanding.  Now, I&#8217;ve written some code and see that you do the following:</p>
<p>You add a &#8220;validate_on_create&#8221; function to your <i>saleitems</i> model, and it looks like this:</p>
<p>def validate_on_create<br />
   if Store.find_by_widget_id_and_size_and_store_id(widget_id, size, store_id)<br />
   errors.add(&#8216;you can&#8217;t do that&#8217;)
</p>
<p>end</p>
<p>Thanks to: <a href="http://rails.techno-weenie.net/question/2006/1/11/how_do_or_can_you_specify_multiple_scopes_in_validates_uniqueness_of">Rails Weenie</a> for the answer
</p>
<p><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/ruby+on+rails" rel="tag">ruby+on+rails</a>, <a href="http://technorati.com/tag/validates_uniqueness_of" rel="tag">validates_uniqueness_of</a>, <a href="http://technorati.com/tag/validates_uniqueness_of+multiple+scope" rel="tag">validates_uniqueness_of+multiple+scope</a>, <a href="http://technorati.com/tag/ruby+on+rails+validates_uniqueness_of+multiple+scope" rel="tag">ruby+on+rails+validates_uniqueness_of+multiple+scope</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=72</wfw:commentRss>
		<slash:comments>-41</slash:comments>
		</item>
		<item>
		<title>Five Bad Reasons not to use Ruby on Rails</title>
		<link>http://emergent.urbanpug.com/?p=71</link>
		<comments>http://emergent.urbanpug.com/?p=71#comments</comments>
		<pubDate>Mon, 19 Jun 2006 23:33:19 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=71</guid>
		<description><![CDATA[I&#8217;m long term PHP developer, and I&#8217;ve recently started using Rails.  No, wait.  I was pretty much a deeply entrenched long term PHP developer, and I&#8217;ve recently been converted to the Cult of Rails.  I&#8217;ve been writing PHP since 1997, back before it had its very own recursive acronym and was called PHP/FI (Personal Home &#8230; <a href="http://emergent.urbanpug.com/?p=71" class="more-link">Continue reading <span class="screen-reader-text">Five Bad Reasons not to use Ruby on Rails</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m long term PHP developer, and I&#8217;ve recently started using Rails.  No, wait.  I was pretty much a <i>deeply entrenched</i> long term PHP developer, and I&#8217;ve recently been <i>converted</i> to the <i>Cult of Rails.  </i>I&#8217;ve been writing PHP since 1997, back before it had its very own recursive acronym and was called PHP/FI (Personal Home Page / Form Interpreter).  I&#8217;ve used it on many, many projects, and I&#8217;ve gotten pretty good at making it do <i>whatever the hell I want it to.</i>  If you&#8217;re a programmer, you know this concept.  Once you work with a language enough, it becomes second nature &#8212; you don&#8217;t have to look things up, and you don&#8217;t have to think about the tools, you think about what you&#8217;re doing, and that makes you a whole lot more productive.</p>
<p>So, I also keep up with things in this Web 2.0 internet world.  I know how to wield Prototype and Scriptaculous, and Model View Controller (MVC) is nothing new.  There&#8217;s lots of fanfare about how Rails &#8220;brings everything together&#8221; and is &#8220;omg so great.&#8221;  I took some of it as zealotry and the rest as people new to doing web apps finding a tool that&#8217;s better, than, say, ColdFusion. (Note: I hate ColdFusion)  Part of this is because so many <i>designers</i> are doing coding with Ruby on Rails.  So, I&#8217;ve been watching from the sides, but I haven&#8217;t actually gotten into Rails.  Why?  I&#8217;ve written a list.  I think a lot of developers would be served by reading this <br />
list and taking home some of the points.  Anyway, here goes.</p>
<p>Bad Reasons not to use Rails:
</p>
<p>1) It&#8217;s not PHP or your other alternative favorite language.
</p>
<blockquote><p>This is huge.  There&#8217;s just something that feels <i>wrong</i> about having to look up how to print to the screen or write to a file.  It&#8217;s been so long since many of us have had to read a manual for anything but, &#8220;Oh, what&#8217;s the syntax on that command again?&#8221; that we&#8217;re uncomfortable having to do it again.  This is essentially supreme laziness.  You don&#8217;t want to learn something new (Ruby), so you&#8217;re going to come up with excuses not to.  Let me tell you something: <i>In this business, you either keep learning new things or you become irrelevant.</i>  Ruby is not a weird language.  You will not have a hard time with it.  Just get a good syntax guide and keep it handy.  I promise you, Ruby is not hard.</p>
</blockquote>
<p>2) But I don&#8217;t have to learn Ruby, I can just use Symfony, CakePHP, PHP on Trax, or the like.</p>
<blockquote><p>I tried this, see.  This was my excuse not to learn Ruby &#8212; &#8220;I&#8217;ll just use a Rails Clone,&#8221; I told myself.  Well, blearg to that.  I actually tried three of them before trying rails, and let me tell you something: <i>none of them compare</i>.  Whether it&#8217;s features or documentation, none of them are really <strong>there</strong> yet.  These kinds of flexibile MVC/ActiveRecord style frameworks are still in their relative infancy, and Rails in 6 months is going to be 6 months better than it is today.  The other projects are months and months behind Rails, and in 6 months, they may not even be to where Rails is now.  Especially with documentation.  <i>ESPECIALLY WITH DOCUMENTATION.</i> 
</p>
<p>Rails does not have good documentation.  This means that the other guys&#8217; documentation is horrible, horrible crap.  Also, Rails has several books, which basically gives you somewhere to go when you need help.  There&#8217;s no CakePHP book.  There&#8217;s no Symfony book. <strong> Developers of other projects:</strong> If you want traction, you NEED documentation.  Orders of magnitude better than you have now.  <strong>Person considering Rails:  </strong>you need documentation.  Seriously, for something as big as this, you can&#8217;t just fiddle around, you&#8217;re not writing it yourself, and it&#8217;s a huge pain in the ass to look under the hood every 10 seconds &#8212; if you can even find what you&#8217;re looking for.  Rails does a lot of things for you, and you have to know what keywords to type where.  You need docs.  Good ones.  This goes for any big framework system.</p>
</blockquote>
<p>3) I tried, and it&#8217;s complicated.</p>
<blockquote><p>We&#8217;re starting to get to something resembling real problems, now.  Yes, you&#8217;ve tried using Rails, and yes, it CAN be daunting.  You have to do things &#8220;The Rails Way&#8221; many times, if you want to actually benefit from the framework rather than fight with it.</p>
<p>First and foremost, the biggest thing you have to accept is ActiveRecord.  Basically, for me, this means that I have to think about my database structure a little bit.  You&#8217;ll probably have to learn how to use something called join models, and you&#8217;ll have to learn about &#8220;has many through,&#8221; which is how you bend ActiveRecord to do your bidding in many cases.  However, the biggest thing for me was getting away from the notion I had in PHP coding of making one FILE that included other files and could be called directly.  Rails hides all of this from you.  There&#8217;s one &#8220;entry point&#8221; into the system, and everything past that is all &#8220;pretty urls that get parsed and sent to code&#8221; so to speak.  You&#8217;re not writing pages anymore, you&#8217;re putting pieces together in a framework to build an application.  After a while, you get used to it, and it really does make you more productive.
</p>
</blockquote>
<p>4) Frameworks are not flexible.</p>
<blockquote><p>You&#8217;re right.  Frameworks aren&#8217;t for everything.  However, if you&#8217;re like me, you&#8217;ll spend a LOT of time just getting simple CRUD (create, update, delete) going, writing some SQL by hand.  Even if you&#8217;re highly motivated and a fast coder, this takes a lot of time.  My point?  Even if you spend some time futzing around with bending Rails to your needs, you&#8217;ve got ample time to spare, because you didn&#8217;t have to do a lot of repetitive busywork.</p>
<p>Point two is &#8212; Rails is pretty damn flexible.  Most of my, &#8220;oh, i can&#8217;t do that in rails&#8221; moments are falling by the wayside.  As I become more familiar with rails, I learn more and what I had presumed were inflexibilities are really just gaps in my knowledge.  In other words, most of the so called inflexibility is more like, &#8220;I&#8217;d have to write code to do that&#8230;&#8221; Which is exactly what you&#8217;d have to do in any other environment.  It&#8217;s just that with rails, you get so used to having everything automated, you are reluctant to actually write any code.  Yes, that sounds horrible, and it&#8217;s partly because I&#8217;m still learning rails.</p>
<p>You see, with PHP and no frameworks, you&#8217;re essentially writing all the code yourself.  This is fine and dandy, and you can do pretty much whatever you want.  However, with rails, you have to do things within the framework.  You have to know where things go, how to add capabilities to the scaffolding that gets built for you.  In most cases, the framework isn&#8217;t inflexible, it&#8217;s that you have to have knowledge of the framework on top of knowledge of the basics (code, get, put, http, forms, html, etc).  You have to know a bit more, but you get LOTS in return.</p>
<p>So, inflexible? I dont think so.  Rails is still low-level enough to not put TOO much burden on you.  Extending a content management system like drupal could lead you to some inflexibilities.  Rails isn&#8217;t a CMS, it&#8217;s a framework for building web apps.  This is one time where a framework really isn&#8217;t locking you into that much.
</p>
</blockquote>
<p>5) It&#8217;s slow.
</p>
<blockquote><p>This is a problem with ruby on rails.  It&#8217;s interpreted.  There&#8217;s also another problem with an easy solution.  If you want to use rails with apache, you need to use either fastcgi or fcgid, both of which are kinda like daemons that run rails, keeping things running, so that when a user makes a call on the application, all of rails doesnt need to re-load.  This makes rails LOTS faster.  However, ruby is still an interpreted language, and it&#8217;s definitely NOT as fast as PHP + Zend + a good code cache.</p>
<p>This is probably the only good reason to not use Ruby.  However, 90% of your application will probably be just fine, and, if you really need to, you&#8217;ll be able to code up your whole app, then rewrite the hotspots in another language in less time than it takes to write the whole thing in PHP.</p>
<p>Additionally, there will probably be a Ruby compiler of some form out for use with rails at some point.  My guess is that at the pace the rails folks operate, we&#8217;ll see a ruby compiler out in less than a year.</p>
<p>If you need optimization NOW:</p>
<ul>
<li><a href="http://weblog.textdrive.com/article/175/rails-optimizing-resource-usage">Optimizing Rails Resource Usage</a>
</li>
<li><a href="http://fak3r.com/articles/2006/05/11/speed-up-ruby-on-rails-with-memcached">Speed Up Ruby on Rails with Memcached</a></li>
</ul>
</blockquote>
<p>
</p>
<p>Anyway, one final thought.  I&#8217;m not giving up PHP, it&#8217;s still very useful.  However, I *have* drunk the rails kool-aid, and it tastes pretty good.
</p>
<p><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<a href="http://technorati.com/tag/ruby+on+rails" rel="tag">ruby+on+rails</a>, <a href="http://technorati.com/tag/ruby+on+rails+is+bad" rel="tag">ruby+on+rails+is+bad</a>, <a href="http://technorati.com/tag/rails+flexible" rel="tag">rails+flexible</a>, <a href="http://technorati.com/tag/cakephp+symfony+rails" rel="tag">cakephp+symfony+rails</a>, <a href="http://technorati.com/tag/reasons+not+to+use+rails" rel="tag">reasons+not+to+use+rails</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=71</wfw:commentRss>
		<slash:comments>-101</slash:comments>
		</item>
		<item>
		<title>Google News to RSS Feed Converter</title>
		<link>http://emergent.urbanpug.com/?p=52</link>
		<comments>http://emergent.urbanpug.com/?p=52#comments</comments>
		<pubDate>Fri, 22 Jul 2005 03:44:43 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=52</guid>
		<description><![CDATA[This afternoon, I was really frustrated. I found an article I liked while looking through some financial sites, and I realized, &#8220;hey, i want to SUBSCRIBE to this article&#8221; Well, i went to google news, thinking, &#8220;of course, they probably already have rss feeds of news searches, just like technorati lets you have of blog &#8230; <a href="http://emergent.urbanpug.com/?p=52" class="more-link">Continue reading <span class="screen-reader-text">Google News to RSS Feed Converter</span></a>]]></description>
				<content:encoded><![CDATA[<p>This afternoon, I was really frustrated.  I found an article I liked while looking through some financial sites, and I realized, &#8220;hey, i want to SUBSCRIBE to this article&#8221;</p>
<p>Well, i went to google news, thinking, &#8220;of course, they probably already have rss feeds of news searches, just like technorati lets you have of blog space.&#8221;  Well, I couldn&#8217;t find it, so I looked around and found a couple tools, including <a href="http://www.xmlhub.com/rssgenr8.php">RSSgenr8</a> by XMLHub.com.  Then, in an hour or so I cooked together a little tool for me to use to track some news stories via my bloglines account.</p>
<p>Anyway, if it&#8217;s useful to me, it&#8217;s probably useful to someone else.  If others find it useful, I may make the code look nice and release it as GPL.</p>
<p>For now, you can try it out:  <strike>rss-a-tron-o-matic</strike></p>
<p>Edit: Removed Link, google news supports RSS now.</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/google" title="See the Technorati tag page for 'google'." rel="tag">google</a>, <a href="http://technorati.com/tag/news" title="See the Technorati tag page for 'news'." rel="tag">news</a>, <a href="http://technorati.com/tag/rss" title="See the Technorati tag page for 'rss'." rel="tag">rss</a>, <a href="http://technorati.com/tag/web2.0" title="See the Technorati tag page for 'web2.0'." rel="tag">web2.0</a>, <a href="http://technorati.com/tag/rss-a-tron-o-matic" title="See the Technorati tag page for 'rss-a-tron-o-matic'." rel="tag">rss-a-tron-o-matic</a>, <a href="http://technorati.com/tag/xml" title="See the Technorati tag page for 'xml'." rel="tag">xml</a></p>]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=52</wfw:commentRss>
		<slash:comments>-13</slash:comments>
		</item>
		<item>
		<title>All Powerful Playlist Generator of the Future</title>
		<link>http://emergent.urbanpug.com/?p=50</link>
		<comments>http://emergent.urbanpug.com/?p=50#comments</comments>
		<pubDate>Sat, 16 Jul 2005 19:28:04 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=50</guid>
		<description><![CDATA[I don&#8217;t know if this exists or not, but I certainly think it would be interesting. I&#8217;d like a music playlist generator that does the following for me: Is random, but not entirely random. There should be a chance that the next song is similar to the current song. All probabilities should be adjustable There &#8230; <a href="http://emergent.urbanpug.com/?p=50" class="more-link">Continue reading <span class="screen-reader-text">All Powerful Playlist Generator of the Future</span></a>]]></description>
				<content:encoded><![CDATA[<p>I don&#8217;t know if this exists or not, but I certainly think it would be interesting.</p>
<p>I&#8217;d like a music playlist generator that does the following for me:</p>
<ol>
<li>Is random, but not entirely random.  There should be a chance that the next song is similar to the current song.</li>
<li>All probabilities should be adjustable</li>
<li>There should be a probability that the next song is the next song on the album</li>
<li>&#8230;  that the next song is from the same album</li>
<li>&#8230;  that the next song is from the same artist.</li>
<li>&#8230;  that the next song is from the same genre.</li>
<li>&#8230;  that the next song is from a related genre. </li>
</ol>
<p>Ideally, the probabilities would get higher as you went along &#8212; so that you&#8217;d likely stay in the same genre for a while, listening to a couple songs by a given artist before switching to the next artist.</p>
<p>Also, I think that the &#8220;smart playlists&#8221; in itunes are really just, &#8220;not retarded playlists&#8221; &#8212; I think they need a big upgrade.</p>
<p>I need to be able to groupings of unions and intersections (ands/ors), for one; and &#8220;subplaylists&#8221; would be good too. &#8212; Let me create a couple smaller playlists, and link them together into one larger playlist, possibly by having a, &#8220;where playlist = &#8216;x&#8221; option.  That alone would let me do some &#8216;orring of ands&#8217; that i want to do.</p>
<p>If anyone knows of something that does this, please reply to this post!</p>
<p>I wonder if it&#8217;s possible to write something like this using the itunes scripting interface?</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/itunes" title="See the Technorati tag page for 'itunes'." rel="tag">itunes</a>, <a href="http://technorati.com/tag/apple" title="See the Technorati tag page for 'apple'." rel="tag">apple</a>, <a href="http://technorati.com/tag/smart" title="See the Technorati tag page for 'smart'." rel="tag">smart</a>, <a href="http://technorati.com/tag/playlist" title="See the Technorati tag page for 'playlist'." rel="tag">playlist</a>, <a href="http://technorati.com/tag/subplaylist" title="See the Technorati tag page for 'subplaylist'." rel="tag">subplaylist</a></p>]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=50</wfw:commentRss>
		<slash:comments>-16</slash:comments>
		</item>
		<item>
		<title>Where will the browser appear as a platform first? &#8212; The Enterprise</title>
		<link>http://emergent.urbanpug.com/?p=49</link>
		<comments>http://emergent.urbanpug.com/?p=49#comments</comments>
		<pubDate>Thu, 14 Jul 2005 05:32:29 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sun Microsystems]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web3.0]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=49</guid>
		<description><![CDATA[Here&#8217;s a thought from the future: The browser is the platform. Microsoft has embraced this and has released Office as an ASP.NET 2.0 Ajax application for enterprises. Microsoft is continuing its push into &#8216;Software as a Service&#8217; You can now rent Office XML Application Server for Windows Server 2007 All of your enterprise users, using &#8230; <a href="http://emergent.urbanpug.com/?p=49" class="more-link">Continue reading <span class="screen-reader-text">Where will the browser appear as a platform first? &#8212; The Enterprise</span></a>]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s a thought from the future:</p>
<ul>
<li>The browser is the platform. </li>
<li>Microsoft has embraced this and has released Office as an ASP.NET 2.0 Ajax application for enterprises.  </li>
<li>Microsoft is continuing its push into &#8216;Software as a Service&#8217;</li>
<li>You can now <strong>rent</strong> Office XML Application Server for Windows Server 2007</li>
<li>All of your enterprise users, using IE7.0, Firefox 2.1, Opera 16, or Safari can now access all their office applications from their desktop. (No, IE8.0 still won&#8217;t be out, but Firefox will be at 25% marketshare, and I&#8217;m not even going to guess at what Firefox will be alled then &#8212; how about &#8216;Burning Rabbit&#8217; ?) </li>
<li>Here&#8217;s the catch &#8212; When users click on that &#8216;Microsoft Word&#8217; button (or any of the office apps), a local application doesnt load.  It loads a rich web application that closely mimics what we now think of as word.</li>
<li>All of the users have their own document storage on your Windows Server</li>
<li>All of the users have access to their documents seamlessly through existing methods (the remote storage automatically shows up in a user&#8217;s &#8216;my documents&#8217; subfolder, apple&#8217;s finder/searchlight, etc)</li>
<li>Users can specify permissions on these centrally stored files, and they are easily shared &#8212; people don&#8217;t have to navigate to a random person&#8217;s desktop to get a document they shared, and a person doesn&#8217;t have to email it to them.  The documents on the server are all searchable by the user&#8217;s local desktop (depending on permissions).</li>
<li>When it&#8217;s time to upgrade to a new version of Office XML Application Server, the upgrade is done on the server, once, and all clients automatically have their update.</li>
<p>I know some of this isn&#8217;t new OR likely, but it&#8217;s fun to take an old idea that was once pure &#8216;out there&#8217; thinking and bring it down into the realm of &#8220;I see how this is possible even if it&#8217;s not either soon or likely&#8221;</p>
<p>Also, who knows if it will even be microsoft who does this?  Maybe it&#8217;s SUN, maybe this will all play out on linux desktops first, with &#8220;OpenOffice Network Server&#8221; &#8212; who knows.  I think the day of the browser as a platform IS coming, and I think we&#8217;re going to see REAL productivity applications created this way, and I think it&#8217;s going to come to the enterprise first.</p>
<p>They&#8217;re the ones who can see the real cost savings and increased productivity &#8212; through ease of deployment and upgrades for the former and ease of collaboration in the latter.</p>
</ul>
<p class="tags">Tags: <a href="http://technorati.com/tag/microsoft" title="See the Technorati tag page for 'microsoft'." rel="tag">microsoft</a>, <a href="http://technorati.com/tag/office" title="See the Technorati tag page for 'office'." rel="tag">office</a>, <a href="http://technorati.com/tag/xml" title="See the Technorati tag page for 'xml'." rel="tag">xml</a>, <a href="http://technorati.com/tag/web3.0" title="See the Technorati tag page for 'web3.0'." rel="tag">web3.0</a>, <a href="http://technorati.com/tag/openoffice" title="See the Technorati tag page for 'openoffice'." rel="tag">openoffice</a>, <a href="http://technorati.com/tag/deployment" title="See the Technorati tag page for 'deployment'." rel="tag">deployment</a>, <a href="http://technorati.com/tag/safari" title="See the Technorati tag page for 'safari'." rel="tag">safari</a>, <a href="http://technorati.com/tag/opera" title="See the Technorati tag page for 'opera'." rel="tag">opera</a>, <a href="http://technorati.com/tag/firefox" title="See the Technorati tag page for 'firefox'." rel="tag">firefox</a>, <a href="http://technorati.com/tag/burningrabbit" title="See the Technorati tag page for 'burningrabbit'." rel="tag">burningrabbit</a></p>]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=49</wfw:commentRss>
		<slash:comments>-2972</slash:comments>
		</item>
		<item>
		<title>TopJax 0.2</title>
		<link>http://emergent.urbanpug.com/?p=46</link>
		<comments>http://emergent.urbanpug.com/?p=46#comments</comments>
		<pubDate>Thu, 30 Jun 2005 04:12:21 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=46</guid>
		<description><![CDATA[I&#8217;ve released a new version of my little Ajax system utility, TopJax The new release displays a bit more information to the user than the last. If you don&#8217;t know, TopJax is basically the unix Top command ported to the web with Ajax techniques. It&#8217;s basically a, &#8220;hey let me do something that gets my &#8230; <a href="http://emergent.urbanpug.com/?p=46" class="more-link">Continue reading <span class="screen-reader-text">TopJax 0.2</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve released a new version of my little Ajax system utility, <a href="http://emergent.urbanpug.com/topjax">TopJax</a>  The new release displays a bit more information to the user than the last.</p>
<p>If you don&#8217;t know, TopJax is basically the unix <b>Top</b> command ported to the web with Ajax techniques.  It&#8217;s basically a, &#8220;hey let me do something that gets my feet wet w/ Ajax while also doing something potentially useful&#8221;</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/topjax" title="See the Technorati tag page for 'topjax'." rel="tag">topjax</a>, <a href="http://technorati.com/tag/top" title="See the Technorati tag page for 'top'." rel="tag">top</a>, <a href="http://technorati.com/tag/unix" title="See the Technorati tag page for 'unix'." rel="tag">unix</a>, <a href="http://technorati.com/tag/ajax" title="See the Technorati tag page for 'ajax'." rel="tag">ajax</a>, <a href="http://technorati.com/tag/xmlhttprequest" title="See the Technorati tag page for 'xmlhttprequest'." rel="tag">xmlhttprequest</a></p>]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=46</wfw:commentRss>
		<slash:comments>-21</slash:comments>
		</item>
		<item>
		<title>Original Ajax</title>
		<link>http://emergent.urbanpug.com/?p=44</link>
		<comments>http://emergent.urbanpug.com/?p=44#comments</comments>
		<pubDate>Wed, 29 Jun 2005 20:27:35 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=44</guid>
		<description><![CDATA[I thought this was interesting over on Scobleizer: Apparently Jean Paoli&#8217;s team at Microsoft created XMLHttp in 1998 in order to give the Outlook team a way to do Outlook Web Access. I mean, that&#8217;s not all that interesting. It&#8217;d be more neat if what we were using it for now was totally not what &#8230; <a href="http://emergent.urbanpug.com/?p=44" class="more-link">Continue reading <span class="screen-reader-text">Original Ajax</span></a>]]></description>
				<content:encoded><![CDATA[<p>I thought this was interesting over on <a href="http://radio.weblogs.com/0001011/2005/06/28.html#a10498">Scobleizer</a>:  Apparently Jean Paoli&#8217;s team at Microsoft created XMLHttp in 1998 in order to give the Outlook team a way to do Outlook Web Access.</p>
<p>I mean, that&#8217;s not all that interesting.  It&#8217;d be more neat if what we were using it for now was totally not what was expected, but I guess the tool is being used for what it was invented.</p>
<p>Full article about that, the Microsoft Atlas project, which I&#8217;m guessing is Visual Web Developer 2005 + ASP.NET 2.0, you can go to <a href="http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx">ScottGu&#8217;s Blog</a>.  There, he talks about the upcoming Atlas Client Script Framework, which will provide ajax support to ASP.NET</p>
<p>Next, we need to have System.Windows.Forms implemented in XHTML+CSS+AJAX.  Wouldn&#8217;t that be something?</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/xmlhttp" title="See the Technorati tag page for 'xmlhttp'." rel="tag">xmlhttp</a>, <a href="http://technorati.com/tag/xmlhttprequest" title="See the Technorati tag page for 'xmlhttprequest'." rel="tag">xmlhttprequest</a>, <a href="http://technorati.com/tag/OWA" title="See the Technorati tag page for 'OWA'." rel="tag">OWA</a>, <a href="http://technorati.com/tag/outlook" title="See the Technorati tag page for 'outlook'." rel="tag">outlook</a>, <a href="http://technorati.com/tag/web" title="See the Technorati tag page for 'web'." rel="tag">web</a>, <a href="http://technorati.com/tag/access" title="See the Technorati tag page for 'access'." rel="tag">access</a>, <a href="http://technorati.com/tag/scobleizer" title="See the Technorati tag page for 'scobleizer'." rel="tag">scobleizer</a>, <a href="http://technorati.com/tag/paoli" title="See the Technorati tag page for 'paoli'." rel="tag">paoli</a>, <a href="http://technorati.com/tag/visual" title="See the Technorati tag page for 'visual'." rel="tag">visual</a>, <a href="http://technorati.com/tag/developer" title="See the Technorati tag page for 'developer'." rel="tag">developer</a>, <a href="http://technorati.com/tag/2005" title="See the Technorati tag page for '2005'." rel="tag">2005</a></p>]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=44</wfw:commentRss>
		<slash:comments>-46</slash:comments>
		</item>
		<item>
		<title>American Express RSS Feeds?</title>
		<link>http://emergent.urbanpug.com/?p=42</link>
		<comments>http://emergent.urbanpug.com/?p=42#comments</comments>
		<pubDate>Fri, 24 Jun 2005 23:03:35 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=42</guid>
		<description><![CDATA[So, I was paying my AMEX bill yesterday and i noticed that they had an &#8220;RSS Feeds&#8221; Beta trial. At first, I was like, &#8220;Oh cool! They&#8217;re going to do something innovative with the technology!&#8221; Then, I signed up for the service and realized it&#8217;s all just a big marketing ploy to get you to &#8230; <a href="http://emergent.urbanpug.com/?p=42" class="more-link">Continue reading <span class="screen-reader-text">American Express RSS Feeds?</span></a>]]></description>
				<content:encoded><![CDATA[<p>So, I was paying my AMEX bill yesterday and i noticed that they had an &#8220;RSS Feeds&#8221; Beta trial.  At first, I was like, &#8220;Oh cool! They&#8217;re going to do something innovative with the technology!&#8221;</p>
<p>Then, I signed up for the service and realized it&#8217;s all just a big marketing ploy to get you to buy products that they&#8217;re offering.</p>
<p>To sign up for their marketing gimmick, you can go <a href="http://f.email.americanexpress.com/s/24/268935168/rss_survey.html">here</a>.</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/american" title="See the Technorati tag page for 'american'." rel="tag">american</a>, <a href="http://technorati.com/tag/express" title="See the Technorati tag page for 'express'." rel="tag">express</a>, <a href="http://technorati.com/tag/amex" title="See the Technorati tag page for 'amex'." rel="tag">amex</a>, <a href="http://technorati.com/tag/rss" title="See the Technorati tag page for 'rss'." rel="tag">rss</a></p>]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=42</wfw:commentRss>
		<slash:comments>-6</slash:comments>
		</item>
		<item>
		<title>TopJax -Unix Top in a browser.</title>
		<link>http://emergent.urbanpug.com/?p=36</link>
		<comments>http://emergent.urbanpug.com/?p=36#comments</comments>
		<pubDate>Fri, 17 Jun 2005 04:18:38 +0000</pubDate>
		<dc:creator><![CDATA[matt]]></dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://emergent.urbanpug.com/?p=36</guid>
		<description><![CDATA[Are you too lazy to ssh into servers you&#8217;re monitoring? Do you not want to set up a slick page with SNMP and/or RRDTool? Or, do these solutions just not fit your needs? TopJax might be for you. TopJax is essentially the &#8220;top&#8221; unix utility ported to the web via Ajax using Sack of Ajax. &#8230; <a href="http://emergent.urbanpug.com/?p=36" class="more-link">Continue reading <span class="screen-reader-text">TopJax -Unix Top in a browser.</span></a>]]></description>
				<content:encoded><![CDATA[<p>Are you too lazy to ssh into servers you&#8217;re monitoring?  Do you not want to set up a slick page with SNMP and/or RRDTool?  Or, do these solutions just not fit your needs?</p>
<p>TopJax might be for you.</p>
<p>TopJax is essentially the &#8220;top&#8221; unix utility ported to the web via <a href="http://emergent.urbanpug.com/?page_id=27">Ajax</a> using <a href="http://twilightuniverse.com/2005/05/sack-of-ajax/">Sack of Ajax</a>.  It provides the ability to <em>view system processes</em>, <em>sort processes</em> by various fields, <em>pause/unpause</em> monitoring, and <em>hide idle</em> processes.</p>
<p>TopJax is released under the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>.</p>
<p>Note: <strong>This is probably highly insecure</strong>.  I don&#8217;t encourage you to run it on a public server.</p>
<ul>
<li>See <a href="http://emergent.urbanpug.com/topjax/topjax.jpg">TopJax in action</a></li>
<li>See the <a href="http://emergent.urbanpug.com/topjax/README.txt">Documentation</a></li>
<li><a href="http://emergent.urbanpug.com/topjax/topjax-latest.tar.gz">Download it</a></li>
</ul>
<p>The permanent address for TopJax is http://emergent.urbanpug.com/topjax</p>
<p>If you&#8217;d like to keep up-to-date on the progress of the project, you can subscribe to this site&#8217;s RSS feed &#8211; <a href="http://feeds.feedburner.com/EmergentProperties" id="navContact" title="Subscribe to this site"><img src="http://www.feedburner.com/fb/images/pub/xml_button.gif" border=0/></a></p>
<p>Notes:  I&#8217;ve separated all styling information from the code, because I know I&#8217;m not the best person with CSS.  If anyone wants to help by providing alternate stylesheets, I&#8217;d be very happy.</p>
<p>If you want to help out by making a small donation, that would be cool.</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/><br />
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/><br />
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----"/><br />
</form>
<p>You could also buy a <a href="http://www.threadless.com/?streetteam=jmatthew3">Threadless shirt using me as a referral</a>.</p>
<p class="tags">Tags: <a href="http://technorati.com/tag/top" title="See the Technorati tag page for 'top'." rel="tag">top</a>, <a href="http://technorati.com/tag/unix" title="See the Technorati tag page for 'unix'." rel="tag">unix</a>, <a href="http://technorati.com/tag/ajax" title="See the Technorati tag page for 'ajax'." rel="tag">ajax</a>, <a href="http://technorati.com/tag/topjax" title="See the Technorati tag page for 'topjax'." rel="tag">topjax</a>, <a href="http://technorati.com/tag/xmlhttprequest" title="See the Technorati tag page for 'xmlhttprequest'." rel="tag">xmlhttprequest</a></p>]]></content:encoded>
			<wfw:commentRss>http://emergent.urbanpug.com/?feed=rss2&#038;p=36</wfw:commentRss>
		<slash:comments>-67</slash:comments>
		</item>
	</channel>
</rss>
