﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>mojoPortal Developer Community Bloggers</title>
    <description>mojoPortal Developer Community Bloggers</description>
    <link>http://mojoportal.com/Default.aspx?mid=82</link>
    <lastBuildDate>Wed, 02 Jul 2008 22:47:41 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>RSS.NET: http://www.rssdotnet.com/</generator>
    <item>
      <title>The Experiment, +11 days.  </title>
      <description>&lt;p&gt;Today I'm about 11 days into my experiment with openSUSE as my primary OS.&amp;nbsp; So far, so good.&amp;nbsp; I've been using my client's Windows XP VMware image for a few days now, and really the only major problem is, as mentioned, that VMware doesn't seem to want to share the sound card with the VM.&amp;nbsp; Not a big deal.&lt;/p&gt;
&lt;p&gt;Keith Elder has an excellent post on build a &lt;a href="http://keithelder.net/blog/archive/2008/06/30/Setting-Up-Windows-Server-2008-VMWare-Virtual-Machines-For-.Net.aspx"&gt;Windows 2008 server VMware image&lt;/a&gt;, I highly recommend it.&amp;nbsp; I would like to expand on his post just one teeny tiny bit.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Offically, Windows 2008 Server and Windows Vista are not supported on VMWare Workstation 5.0 or on VMWare Server 1.0.x.&amp;nbsp; This doesn't mean much, but if you're setting up a VMware image that you'd like to share between Workstation and Server, make sure that when you are creating the image you specify VMware Workstation 5.0 (see images below).&amp;nbsp; If you try to &amp;quot;Upgrade or Change Version...&amp;quot; from VMware 6 to VMware 5, you will clobber your NIC real good and lose and not be able to recover it short of some act of God. Not even tech support at VMware can help you.&amp;nbsp; Ask me how I know.&lt;/p&gt;
&lt;p&gt;&lt;img width="399" height="325" alt="" src="http://www.opgenorth.net/Data/Sites/1/images/vmwarecreate1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width="400" height="325" alt="" src="http://www.opgenorth.net/Data/Sites/1/images/vmwarecreate2.png" /&gt;&lt;/p&gt;
&lt;p&gt;Also, just after you create your VM image, you might want to edit your .VMX file, and add these three lines:&lt;/p&gt;
&lt;pre&gt;&lt;span style="font-size: x-large;"&gt;&lt;span style="font-family: Courier New;"&gt;mainMem.useNamedFile=FALSE&lt;br /&gt;sched.mem.pshare.enable = &amp;quot;FALSE&amp;quot;&lt;br /&gt;MemTrimRate = 0&lt;/span&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;The first line is pretty important if you're going to be using VMware under Linux.&amp;nbsp; If you're running under Windows, this isn't as much of an issue.&amp;nbsp; Under Linux, a temporary file for the RAM will be created which then gets deleted when the VM shuts down.&amp;nbsp; If you're running your VM's off a USB disk, this file is typically in /tmp, which is probably a local disk, and so will therefore have faster disk access (being that you don't have to go over the USB2 cable).&amp;nbsp; If you don't have this line, it seems that VMware will spit up a nasty, obscure message to you about not being able to open the VM because it is corrupt and/or VMware doesn't have access to it.&lt;/p&gt;
&lt;p&gt;The second and third lines Keith explains in his post one Step 14.&amp;nbsp; Go read there.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=286&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/325463553" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/325463553/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Wed, 02 Jul 2008 22:47:41 GMT</pubDate>
    </item>
    <item>
      <title>Comic for July 3, 2008</title>
      <description>&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/15352/15352.strip.print.gif" border="0" /&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/DilbertDailyStrip?a=reiPD1"&gt;&lt;img src="http://feeds.feedburner.com/~a/DilbertDailyStrip?i=reiPD1" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/325554147" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/DilbertDailyStrip/~3/325554147/</link>
      <author>Dilbert</author>
      <pubDate>Wed, 02 Jul 2008 20:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Moonlight 0.7 released</title>
      <description>
	&lt;p&gt;We have just released Moonlight 0.7 to the public.

	&lt;p&gt;Get &lt;a href="http://www.go-mono.com/moonlight"&gt;your copy
	here&lt;/a&gt;. 

	&lt;p&gt;This
	new version of Moonlight works on both Firefox 2.0 and 3.0 and
	sports some significant changes from 0.6:

	&lt;ul&gt;
&lt;li&gt;Webkit loads the plugin (kangaroo, lewing)
   &lt;li&gt; The stream/downloader/request/response logic (used for
     downloading media) has been been almost entirely moved from the
     browser bridges into libmoon, with the browsers providing
     subclasses. (kangaroo, sde)

   &lt;/li&gt;
&lt;li&gt; Finally add argument checking to all wrapped plugin objects
     (fejj).

   &lt;/li&gt;&lt;li&gt; Windowless mode fixes (lewing, toshok)

   &lt;/li&gt;&lt;li&gt; Plugin event handling fixes (lewing)


&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Engine
&lt;ul&gt;
&lt;li&gt;Many clock/animation framework fixes.  We now pass both animation
     matrix tests, and many, *many* other bugs (and regressions) have
     been fixed. (mdk).

&lt;/li&gt;&lt;li&gt;Bug fixes in the Stroke{Collection}.HitTest and
     Stroke{Collection}.Bounds code (toshok, sde).

&lt;/li&gt;&lt;li&gt;Namescope merging fixes (sde, jackson)

&lt;/li&gt;&lt;li&gt;Parser fixes, and changes paving the way for 2.0 work (jackson)

&lt;/li&gt;&lt;li&gt;Fix mouse event bubbling behavior (toshok)
&lt;/li&gt;&lt;/ul&gt;

&lt;/li&gt;&lt;li&gt;Media
&lt;ul&gt;

&lt;li&gt;Big, big strides in our media framework and the various (file,
     http, mms) downloaders, (fejj, rolf, kangaroo, fer)

&lt;/li&gt;&lt;li&gt;MMS stream selection (kangaroo)
&lt;/li&gt;&lt;/ul&gt;

&lt;/li&gt;&lt;li&gt;Performance
&lt;ul&gt;&lt;li&gt; Shape caching and bounds computation reduction (spouliot)

&lt;/li&gt;&lt;li&gt;Geometry bounds work (spouliot)

&lt;/li&gt;&lt;li&gt;Fast path for position updates (Canvas.Left/Canvas.Top) (toshok)

&lt;/li&gt;&lt;li&gt;Improved temporary cairo surface bounds (lewing)

&lt;/li&gt;&lt;li&gt;Glyph rendering speedups (fejj)

&lt;/li&gt;&lt;li&gt;Resort by ZIndex as a dirty pass (toshok)
&lt;/li&gt;&lt;/ul&gt;

&lt;/li&gt;&lt;li&gt;Silverlight 2.0
&lt;ul&gt;&lt;li&gt; work is progressing. A very simple 2.0 application successfully
     ran. (miguel, jackson, sde).
&lt;/li&gt;&lt;/ul&gt;
&lt;/ul&gt;
</description>
      <link>http://www.mono-project.com/news/archive/2008/Jul-02.html</link>
      <author>Mono News</author>
      <pubDate>Wed, 02 Jul 2008 10:31:00 GMT</pubDate>
    </item>
    <item>
      <title>Comic for July 2, 2008</title>
      <description>&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/15351/15351.strip.print.gif" border="0" /&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/DilbertDailyStrip?a=Zf17dG"&gt;&lt;img src="http://feeds.feedburner.com/~a/DilbertDailyStrip?i=Zf17dG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/324673503" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/DilbertDailyStrip/~3/324673503/</link>
      <author>Dilbert</author>
      <pubDate>Tue, 01 Jul 2008 20:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Comic for July 1, 2008</title>
      <description>&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/15350/15350.strip.print.gif" border="0" /&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/DilbertDailyStrip?a=YL4yyL"&gt;&lt;img src="http://feeds.feedburner.com/~a/DilbertDailyStrip?i=YL4yyL" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/323846641" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/DilbertDailyStrip/~3/323846641/</link>
      <author>Dilbert</author>
      <pubDate>Mon, 30 Jun 2008 20:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Comic for June 30, 2008</title>
      <description>&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/15349/15349.strip.print.gif" border="0" /&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/DilbertDailyStrip?a=2wo0sj"&gt;&lt;img src="http://feeds.feedburner.com/~a/DilbertDailyStrip?i=2wo0sj" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/323044141" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/DilbertDailyStrip/~3/323044141/</link>
      <author>Dilbert</author>
      <pubDate>Sun, 29 Jun 2008 20:00:00 GMT</pubDate>
    </item>
    <item>
      <title>PayPal sandbox doesn't work</title>
      <description>&lt;p&gt;As a software developer I've worked with a lot of APIs and developer tools over the years and had many good experiences and a few bad ones. The bad ones are where you waste a lot of time trying to get something to work and it just doesn't do what its supposed to. These kinds of things make you angry and make you resent the vendor because they make you look bad as a developer and they cost you a lot of time, and time is money. The worst cases are those where you have no real choice, you have to use the vendors products or APIs.&amp;nbsp; The latest bad experience I've had is with PayPal. Their developer sandbox just doesn't work and its been eating up my time trying to make it work. I have followed the API documentation closely and am 100% sure I'm doing the right things in my code but it doesn't work. Yet, how can I ignore PayPal if I want to implement ecommerce? I can't because they are the most popular provider. I simply have to get it working. Maybe I will have to test on their production site and then issue refunds. This is what some others have resorted to if you read their forums. You end up paying the transaction fees though even if you do issue refunds. Its a wonder to me that PayPal is so dominant given these shortcomings. I've implemented google checkout and Authorize.NET and they both worked as expected using their sandboxes.&lt;/p&gt;
&lt;p&gt;I've created a Camtasia movie &lt;a href="http://www.joeaudette.com/paypalsandboxproblems/"&gt;here&lt;/a&gt; showing the problems, but to summarize:&lt;/p&gt;
&lt;p&gt;PayPal offers 2 products, PayPal Express and PayPal Pro/ Direct Pay. The Direct Pay allows you to charge the customer right from your own site by letting them enter their credit card info, this costs you $30/month to enable the service. Express checkout doesn't have this monthly fee but requires the user to pay at the paypal site with their paypal account.&lt;/p&gt;
&lt;p&gt;Using the NVP (Name Value Pair) API to process Express checkout, the process is.&lt;/p&gt;
&lt;p&gt;1. Make a call to the PayPal NVP web service using the SetExpressCheckout call. You recieve back a paypaltoken and then you redirect the user to paypal passing this same token. This call works as expected, you get the token and you redirect.&lt;/p&gt;
&lt;p&gt;2. After the customer pays at PayPal, PayPal redirects them back to your designated page and passes the paypaltoken again. Its the same token as the one returned from the previous call to SetExpressCheckout. Next you are supposed to call GetExpressCheckoutDetails passing the same token back to PayPal. This call fails with the error &amp;quot;Security header is not valid&amp;quot;. When you look this up or google it, its supposed to mean that you did not pass the correct API credentials, but believe me, I'm passing the right credentials and its the same credentials that worked fine in the call to SetExpressCheckout. If the call to GetExpressCheckoutDetails worked as its supposed to, the next step would be to call DoExpressCheckoutPayment which is where the order would be completed.&lt;/p&gt;
&lt;p&gt;To use the DirectPay API you need to accept the billing agreement which would cost you $30/month on production but should be free on the sandbox. However, when you click the I Agree button in the sandbox account it doesn't work so you can't get your sandboz account enabled to use the DirectPay API.&lt;/p&gt;
&lt;p&gt;So, in short, the PayPal sandbox just doesn't work. You can't reliably test the Expess Checkout or the DirectPay API. You would think the so called industry leader in payment processing could do a better job with this. PayPal are you listening? Please please please fix this crap and stop making me waste my time. Are you really going to make me use the production site for testing? Is that some angle to help you squeeze me for $30/month or are you just incompetant?&lt;/p&gt;
&lt;p&gt;UPDATE: In case you think I'm being too hard on PayPal, I captured &lt;a href="http://www.joeaudette.com/paypalsupportticket/"&gt;another little video to show how difficult it is to file a support ticket&lt;/a&gt;. I have not figured out how to do it yet. I had this same problem yesterday which is why I resorted to blogging in hopes of getting some attention from PayPal to address the sandbox problems. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.joeaudette.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.joeaudette.com/paypal-sandbox-doesnt-work.aspx'&gt;...&lt;/a&gt;</description>
      <link>http://www.joeaudette.com/paypal-sandbox-doesnt-work.aspx</link>
      <author>Joe Audette</author>
      <pubDate>Sun, 29 Jun 2008 10:14:58 GMT</pubDate>
    </item>
    <item>
      <title>Comic for June 29, 2008</title>
      <description>&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/14370/14370.strip.print.gif" border="0" /&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/DilbertDailyStrip?a=LjHgM5"&gt;&lt;img src="http://feeds.feedburner.com/~a/DilbertDailyStrip?i=LjHgM5" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/322441375" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/DilbertDailyStrip/~3/322441375/</link>
      <author>Dilbert</author>
      <pubDate>Sat, 28 Jun 2008 20:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Comic for June 28, 2008</title>
      <description>&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/14369/14369.strip.print.gif" border="0" /&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/DilbertDailyStrip?a=e6TIHI"&gt;&lt;img src="http://feeds.feedburner.com/~a/DilbertDailyStrip?i=e6TIHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/321863119" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/DilbertDailyStrip/~3/321863119/</link>
      <author>Dilbert</author>
      <pubDate>Fri, 27 Jun 2008 20:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Rod Paddock At EDMUG</title>
      <description>&lt;p&gt;Last night (Thursday, June 26th) &lt;a href="http://blog.dashpoint.com/"&gt;Rod Paddock&lt;/a&gt; gave a talk on using &lt;a href="http://www.sliverlight.net"&gt;Silverlight&lt;/a&gt; 2.0 to the Edmonton .NET User Group.&amp;nbsp; I'd say that Rod did a pretty good job, despite the fact that the beta of both &lt;a href="http://www.sliverlight.net"&gt;Silverlight&lt;/a&gt; and Expression Blend didn't exactly want to play nice all the time.&amp;nbsp; It's definitely perked my interest in the technology, and I can see a lot of business potential for it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The rich user experience that &lt;a href="http://www.sliverlight.net"&gt;Silverlight&lt;/a&gt; brings to the web-browser, will, I think raise the bar for what web applications will do for businesses.&amp;nbsp; Forget all the buzz about ASP.NET MVC or MonoRail or ASP.NET 3.5.&amp;nbsp; This is just another layer of makeup on the tired, old, hooker that is application development in .NET.&amp;nbsp; &lt;a href="http://www.sliverlight.net"&gt;Silverlight&lt;/a&gt; is what will make business users oh and ah and get excited about web apps again.&lt;/p&gt;
&lt;p&gt;Those who were at last night's talk will remember that Rod was using a fairly large database that he got from &lt;a href="http://www.freedb.org/"&gt;freedb&lt;/a&gt;.&amp;nbsp; It's fairly large, not quite 7GB of data.&amp;nbsp; I did get a copy of it, in MS-SQL Server format.&amp;nbsp; When I compressed it (tar.gz), I got it down to 2GB in size.&amp;nbsp; If you're interested in a copy of the database for your own purposes, leave me a comment here and we'll work something out.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Note:&amp;nbsp; I would like to state that &lt;a href="http://www.igloocoder.com"&gt;Don&lt;/a&gt; is usually drunk, and as such you shouldn't believe some of the wild things he said last night, especially about me.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=285&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/321640940" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/321640940/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Fri, 27 Jun 2008 15:01:00 GMT</pubDate>
    </item>
    <item>
      <title>Coming Soon - The mojoPortal Store</title>
      <description>&lt;p&gt;Back in October of 2006 when I first launched my company, Source Tree Solutions to work full time on mojoPortal, I had kind of a fuzzy business plan with the main idea being that I would make revenue by offering consulting around the free mojoPortal product. I guess in my wide eyed optimism I thought that doing this kind of consutling would improve mojoPortal and in fact it did to some extent. A few customers actually sponsored development for things that improved mojoPortal for everyone. But most of the consutling was really for things that were not of any general benefit beyond the customer's needs, so in some cases I felt like taking on this work was actually slowing me down from progress on improving mojoPortal. Forming a business around consulting means you always have to be taking on more projects to keep the business going because you don't make any money unless you are doing billable work. Now I am in the process of shifting my strategy to sell some premium features on top of the free mojoPortal core product. I think that selling some products in order to generate revenue will be better because it will pay for the free time I need to keep improving the mojoPortal. Consulting will remain a part of my business model but my plan is to keep it very limited goig forward.&lt;/p&gt;
&lt;p&gt;So with this changing strategy in mind I've been working feverishly to get my first product completed so that I can open up a Store here on &lt;a href="http://www.mojoportal.com"&gt;mojoPortal.com&lt;/a&gt; in early July and begin selling it. The first feature for sale will be a more advanced Event Calendar that allows selling tickets to events. Following that I plan to build a Form Wizard that allows users to easily create forms to capture arbitrary data. I also plan a Fund Raiser feature and an add on package for Web Farm support. I have a lot of ideas for premium features, but my main goal is to just get enough revenue rolling in to allow me to keep improving the core. There are a lot of planned improvements for the core that I'm eager to complete, like built in support for tagging, comments, and content versioning so that they can easily be enabled for any feature with little effort. Eventually I'd like to open the store up so that other developers can also sell products there too, so that it can be a market place something like snowcovered.com which sells add ons for DNN.&lt;/p&gt;
&lt;p&gt;One of the reasons I chose to implement a commerce enabled feature as my first product was so that I could figure out which pieces of the commerce architecture need to b re-usable. We already have a WebStore project that I will be using to sell my premium products and this WebStore is one of the free open source features of mojoPortal. So far the WebStore is very rudimentary, it can only sell download products and its really a bare bones implementation for the product catalog at the moment. The project was originally started under a sponsorship by BrainBeacon but was never completed fully because they went out of business before ever opening a store. Its hard to really polish up a complex feature like ecommerce unless you are actually using it for business or supporting a customer who is using it. So using it to sell my own products will lead to a lot of improvement in the WebStore feature. I've been doing a lot of re-factoring in the WebStore to get the re-usable pieces built into mojoPortal core so they can be used across features. For example, Country List, State List, Currency List, Language List and their administrative features were originally in the WebStore projects but I've moved them into the core of mojoPortal because they will be needed by other features. Support for Payment gateways like Google Checkout and PayPal are also being moved into the core so they can be re-used by any feature that wants to implement ecommerce. Since my first product will be an Event Calendar that allows selling tickets it will need to leverage a lot of the same ecommerce code that the WebStore does. Rather than re-implement it in every feature it has forced me to think about the best way to make most of it easily re-usable.&lt;/p&gt;
&lt;p&gt;Implementing this more advanced Event Calendar has also led me to other improvements in the core of mojoPortal. For example one of the features in my new Event Calendar is support for recurring events. When you create a recurring event it actually creates event instances going out x number of years. Since&amp;nbsp; events are also searchable using the site search, you have to update the search index for each created event as well. What I found was that creating events in rapid succession due to recurrence could lead to some problems due to the way I was handling the indexing of items. The indexing was triggered by the saving of the event then code to update the index was spawned on a new thread so that it doesn't block the UI. Under some circumstances the writing to the index was not in the proper sequence and errors could occur. So I implemented a queue in the database so that items to be indexed could be queued and then processed in batch on a background thread while keeping the sequence correct because everything is processed in queue sequence.&lt;/p&gt;
&lt;p&gt;Another thing that got improved in the core as I implemented this new Event Calendar is module settings, which is just a place to store feature specific settings for instances of a feature. In a number of the mojoPortal features we have support for google maps, but some of the settings needed for google maps were not well supported by module settings. For example the google maps api defines some constants for the Map Type like G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP, etc. When I first enabled support for specifying the map type, it was done in module settngs by entering the constant in a textbox like this:&lt;/p&gt;
&lt;p&gt;&lt;img height="445" width="509" src="http://www.mojoportal.com/Data/Sites/1/gmapbefore.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;pretty yucky and not user friendly since its easy to put something incorrect there and nothing to tell the user what is acceptable. So as much as this bothered me I could not conceive of shipping a paid product with this kind of setting so I implemented ISettingControl as a way to introduce a possibility to use a custom UserControl for this setting and now for all features that use the google map the setting looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img height="445" width="509" src="http://www.mojoportal.com/Data/Sites/1/gmapafter.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;much better implemented as a dropdown list! Actually not shown in the screen shot is I also implemented a dropdown for the zoom level so that it is limited to the range of acceptable values.&lt;/p&gt;
&lt;p&gt;So, in short, developing features to sell has made me think more deeply about what is needed in the core of mojoPortal to support 3rd party feature development more easily, because its made me think more like a third party.&lt;/p&gt;
&lt;p&gt;I haven't blogged much this month because I've been so busy working to get this feature completed and to get the store opened, but thught I should go ahead and post this to let people know what I'm doing. Several people have asked recently what happened to the store demo site as it is currently off line. I will have that site back up soon. I just have a little more re-factoring of the WebStore code to do and I will setup the demo store again.&lt;/p&gt;
&lt;p&gt;I'm very excited about the new store opening soon and will announce it here in the blog as soon as its open. There will also be anew release of mojoPortal soon with the improvements I've mentioned above as well as a few bug fixes and skin tweaks to better support Firefox 3.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/coming-soon-the-mojoportal-store.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-Coming_Soon_-_The_mojoPortal_Store.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/321300864/658186f7-1b58-4d96-a4b7-0443ef0846af</link>
      <author>mojoPortal Blog</author>
      <pubDate>Fri, 27 Jun 2008 06:58:05 GMT</pubDate>
    </item>
    <item>
      <title>Comic for June 27, 2008</title>
      <description>&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/10000/1000/100/14368/14368.strip.print.gif" border="0" /&gt;
&lt;p&gt;&lt;a href="http://feeds.feedburner.com/~a/DilbertDailyStrip?a=smTm59"&gt;&lt;img src="http://feeds.feedburner.com/~a/DilbertDailyStrip?i=smTm59" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DilbertDailyStrip/~4/321122799" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/DilbertDailyStrip/~3/321122799/</link>
      <author>Dilbert</author>
      <pubDate>Thu, 26 Jun 2008 20:00:00 GMT</pubDate>
    </item>
    <item>
      <title>The Experiment, Day 3 &amp;amp; 4</title>
      <description>&lt;p&gt;Just a quick recap of days 3 &amp;amp; 4 of running with openSUSE 11 as my primary OS.&amp;nbsp; By far and large, not a lot of complaints.&amp;nbsp; As I do most of my work on a laptop, I tend to keep my VM's on external HDD's connected via USB2.&amp;nbsp; I've been doing this for a while now, under Windows.&lt;/p&gt;
&lt;p&gt;I'm not to sure I'm a big fan of how openSUSE mounts (or tries to mount) my external HDD.&amp;nbsp; It just doesn't seem as...seamless...as how Windows XP does it.&amp;nbsp; I'm use to just plugging in my external HDD, and not worrying about it until it's time to disconnect.&amp;nbsp; openSUSE seems to get a big confused with automounting, and I always seem to have to help it along.&amp;nbsp; It's something I can live with for now.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The other thing I notice is that openSUSE doesn't seem to want to share the sound card with VMware.&amp;nbsp; I'm getting more than a few alerts from VMware that the sound card is not available and can't be used.&amp;nbsp; Again, nothing to critical - for now.&lt;/p&gt;
&lt;p&gt;The third thing I'm noticing is that some HDD enclosures seem to work better than others.&amp;nbsp; I'm noticing that at least one HDD enclosure (a SmartDisk FireLite with a 250GB HDD inside) doesn't seem to want to consistently and reliably work.&amp;nbsp; I did have VMware (and openSUSE) complain that they could not write that particular HDD as it could no longer be found.&lt;/p&gt;
&lt;p&gt;So far, I am pleased with how Linux is handling NTFS as well.&amp;nbsp; I remember back five or six years ago that NTFS support for Linux was pretty much read-only.&amp;nbsp; Read-write was for people who were delusionally insane or who go to the same hair stylist as Justice Grey.&lt;/p&gt;
&lt;p&gt;A couple of lessons learned:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Get lots of disk space.&amp;nbsp; I'm thinking it may be time to get a 320GB HD for my laptop, and keeping my &amp;quot;working&amp;quot; VM's there.&amp;nbsp; I'd have something like a 100 GB partition for Windows XP, and then 220GB for openSUSE.&lt;/li&gt;
    &lt;li&gt;Backups - I'm very happy that I made copies of my VM's and worked off those.&amp;nbsp;&lt;/li&gt;
    &lt;li&gt;Fear not the command line.&amp;nbsp; But if you're a *nix guys, you're probably there already.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=284&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/320132222" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/320132222/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Wed, 25 Jun 2008 19:58:34 GMT</pubDate>
    </item>
    <item>
      <title>The Experiment Day 2.</title>
      <description>&lt;p&gt;As I indicated yesterday, I'm doing a little experiment to try and see if I can reduce my dependency on Window.&amp;nbsp; Yesterday I installed OpenSUSE 11, today I was going to install some extra stuff into OpenSUSE, and see if I can get VMware Workstation up and running.&lt;/p&gt;
&lt;p&gt;First thing that that I did wrong was install the wrong version of OpenSUSE.&amp;nbsp; Silly old me wasn't paying attention when I downloaded the ISO, and I grabbed the 32-bit ISO.&amp;nbsp; I wanted the x64_86 edition.&amp;nbsp; So, I downloaded that DVD, and then re-installed from scratch.&lt;/p&gt;
&lt;p&gt;With that out of the way, I preceeded to install the following:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;VMWare Workstation 6.04.&lt;/li&gt;
    &lt;li&gt;FireFox 3&lt;/li&gt;
    &lt;li&gt;Opera 9.5&lt;/li&gt;
    &lt;li&gt;Git&lt;/li&gt;
    &lt;li&gt;Subversion&lt;/li&gt;
    &lt;li&gt;Mono 1.9&lt;/li&gt;
    &lt;li&gt;MySQL Query Browser&lt;/li&gt;
    &lt;li&gt;Adobe Air for Linux, beta 1.&amp;nbsp; Twitter&lt;/li&gt;
    &lt;li&gt;Pidgin&lt;/li&gt;
    &lt;li&gt;NTFS-3G (for read/write access to NTFS partitions)&lt;/li&gt;
    &lt;li&gt;ntfs-config (to help config this read/write access to NTFS partitions).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now VMware Workstation 6.04 is kind of what I'm after, so that was the recent focus.&amp;nbsp; Installing VMware on OpenSUSE 11 isn't that hard.&amp;nbsp; Basically, I did the following:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Download VMware Workstation for Linux.&amp;nbsp; I used the RPM.&amp;nbsp; I installed via YAST2.&lt;/li&gt;
    &lt;li&gt;Went and got kernel-sources, gcc, gcc-c++, and make.&lt;/li&gt;
    &lt;li&gt;Dropped to a bash shell, su to root.&lt;/li&gt;
    &lt;li&gt;Type vmware-install.pl to get VMware workstation.&amp;nbsp; I just went with all the defaults at the prompts.&lt;/li&gt;
    &lt;li&gt;Run VMware&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One thing you might find when you try to open up your VM's.&amp;nbsp; You might get a wacky error message like: VMware Workstation unrecoverable error: (vcpu-0)&lt;br /&gt;
Failed to allocate page for guest RAM!&amp;nbsp; Best to just follow the advice in this &lt;a href="http://razius.blogspot.com/2007/12/vmware-crash.html"&gt;blog post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Next on the TODO list is to try, on some test VM's, developing on Linux.&amp;nbsp; If no problems after some undisclosed amount of time, then I guess maybe I'll trying working full-time under Linux.&lt;/p&gt;
&lt;p&gt;And, if that works, then the true test/question:&amp;nbsp; can I get World of Warcraft&amp;nbsp; working on Linux?&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=283&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/318630209" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/318630209/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Tue, 24 Jun 2008 00:40:29 GMT</pubDate>
    </item>
    <item>
      <title>The Experiment Begins</title>
      <description>&lt;p&gt;I've decided to try a little experiment, and see how things will go, computing-wise, if I minimize my dependence on Windows.&amp;nbsp; Now, I don't want to run out and buy a Mac (not yet, anyway), so I'm taking a middle ground.&lt;/p&gt;
&lt;p&gt;I first repartitioned my hard drive (thanks &lt;a href="http://gparted.sourceforge.net/"&gt;gparted&lt;/a&gt;), and set aside a 15GB partition.&amp;nbsp; On this partition, I installed &lt;a href="http://software.opensuse.org/"&gt;OpenSUSE 11&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My plan is to run &lt;a href="http://software.opensuse.org/"&gt;OpenSUSE 11&lt;/a&gt; as the host OS, and then use &lt;a href="http://www.vmware.com"&gt;VMware&lt;/a&gt; to run VM's for my work and such.&lt;/p&gt;
&lt;p&gt;I'm curious as to how it will work out.&amp;nbsp; I know the one hurdle I would like to come is the stupid DRM that Apple iTunes uses.&amp;nbsp; Anybody have some suggestions, so I can do this while it's still legal to format-shift in Canada (or perhaps I should spell it Kanada if bill C-61 passes).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=282&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/317866345" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/317866345/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Mon, 23 Jun 2008 00:59:26 GMT</pubDate>
    </item>
    <item>
      <title>Using jQuery with UpdatePanel in a User Control</title>
      <description>&lt;p&gt;Okay, this scenario might not be all that common, but in case someone else out there needs some tips on getting this to work, I hope this helps.&amp;nbsp; I spent quite a bit of frustration on this one.&lt;/p&gt;
&lt;p&gt;I have an ASP.NET web application that uses Microsoft AJAX UpdatePanels and embedded User Controls.&amp;nbsp; In this particular case, I wanted to try out jQuery in one of my User Controls.&amp;nbsp; The User Control uses an UpdatePanel, and the User Control itself is dynamically loaded in an UpdatePanel on the parent page.&amp;nbsp; Here are the things I ended up doing in order to get jQuery and UpdatePanel to play together.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Registering jQuery Scripts&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Since I'm not planning to use jQuery everywhere in the Web application, I need a way to register the scripts I need from the User Control.&amp;nbsp;&amp;nbsp;In my search, I came across a Rick Strahl post &lt;a href="http://www.west-wind.com/WebLog/posts/167052.aspx"&gt;Implementing a jQuery-Calendar ASP.NET Control&lt;/a&gt; that was exactly what I needed.&amp;nbsp; This post led me to his earlier &lt;a href="http://www.west-wind.com/weblog/posts/9601.aspx"&gt;UpdatePanels and ClientScript in custom Controls&lt;/a&gt; for the necessary ClientScriptProxy code, which is a great utility class for registering any client scripts, not just jQuery. However, I started getting a Sys.ScriptLoadFailedException, which led me to &lt;a href="http://billrob.com/archive/2006/11/17/ScriptLoadFailedException-when-adding-ScriptReferences.aspx"&gt;Sys.ScriptLoadFailedException when adding ScriptReferences&lt;/a&gt;.&amp;nbsp; To work around this, I added the following to the end of my jquery.js script file (and other script files I was registering).&lt;/p&gt;
&lt;div class="code-csharp"&gt;
&lt;pre&gt;
if( Sys &amp;amp;&amp;amp; Sys.Application ){ Sys.Application.notifyScriptLoaded(); }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Client Script for the User Control&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;My User Control is dynamicaly loaded, so simply putting a script block in the .ascx template doesn't work in this scenario.&amp;nbsp; Also, the standard jQuery &lt;span style="font-family: Courier New;"&gt;$(document).ready&lt;/span&gt; doesn't work.&amp;nbsp; I believe it's because of the way the DOM is manipulated by the UpdatePanel.&amp;nbsp; So, borrowing a couple of ideas from &lt;a href="http://www.asp.net/ajax/documentation/live/tutorials/ExclusiveAsyncPostback.aspx"&gt;Giving Precendence to a Specific Asynchronous Postback&lt;/a&gt; and &lt;a href="http://www.thegrubbsian.com/2007/10/jquery-event-bi.html"&gt;jQuery Event Binding vs. ASP.NET AJAX UpdatePanel&lt;/a&gt;, I created another script file named init.js that contains the following code:&lt;/p&gt;
&lt;div class="code-csharp"&gt;
&lt;pre&gt;
function ApplicationLoadHandler(sender, args) {
  // InitScript is a custom function 
  // registered from the User Control
  if(typeof InitScript == 'function')
    InitScript();
					
}

if( Sys &amp;amp;&amp;amp; Sys.Application ){ 
  Sys.Application.add_load(ApplicationLoadHandler);
  Sys.Application.notifyScriptLoaded(); 
}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;In my User Control's code-behind, I need to override the OnPreRender to register my script files and custom script block.&lt;/p&gt;
&lt;div class="code-csharp"&gt;
&lt;pre&gt;
protected override void OnPreRender(EventArgs e)
{
	base.OnPreRender(e);

	// *** MS AJAX aware script management
	ClientScriptProxy p = ClientScriptProxy.Current;

	// *** Register resources
	this.RegisterResources(p);
}

private void RegisterResources(ClientScriptProxy p)
{
  p.RegisterClientScriptInclude(this.Page, this.GetType(), &amp;quot;_jqueryjs&amp;quot;, this.ResolveUrl(&amp;quot;~/client_scripts/jquery.js&amp;quot;));
  p.RegisterClientScriptInclude(this.Page, this.GetType(), &amp;quot;_initjs&amp;quot;, this.ResolveUrl(&amp;quot;~/client_scripts/init.js&amp;quot;));

  StringBuilder sb = new StringBuilder();

  sb.AppendLine(@&amp;quot;

function InitScript() {
  // control-specific code goes here
}

&amp;quot;);

  p.RegisterClientScriptBlock(this.Page, this.GetType(), &amp;quot;_init_&amp;quot; + this.ID, sb.ToString(), true);

}
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Now all I have to do is customize the InitScript() in my code-behind to do useful things with jQuery.&lt;/p&gt;
&lt;p&gt;Hope this helps!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.christianasp.com'&gt;David Neal&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.christianasp.com/using-jquery-with-updatepanel-in-a-user-control.aspx'&gt;...&lt;/a&gt;</description>
      <link>http://www.christianasp.com/using-jquery-with-updatepanel-in-a-user-control.aspx</link>
      <author>David Neal</author>
      <pubDate>Fri, 20 Jun 2008 10:07:00 GMT</pubDate>
    </item>
    <item>
      <title>FAIL:  Windows Vista 64 As An O/S For the Home</title>
      <description>&lt;p&gt;Recently I upgraded the family computer.&amp;nbsp; Well, I upgraded the hardware and changed the operating system to Windows Vista 64bit.&amp;nbsp; This is the computer that my kids play their games on, my wife does her work and her post-graduate work on.&amp;nbsp; I use it to play the odd bit of World of Warcraft and surf the web.&amp;nbsp; To me, it's not that important.&amp;nbsp; To my family, not being able to play Freddie Fish or using &lt;a href="http://www.incredimail.com"&gt;bloated crap-ware&lt;/a&gt; to keep in touch with colleagues and friends is pretty close to catastrophic.&lt;/p&gt;
&lt;p&gt;Today, I've decided to repave the family PC with good old Windows XP, and turn my back on Vista 64bit.&amp;nbsp; The straw that broke the camel's back was when I went to setup the kids &lt;a href="http://en.wikipedia.org/wiki/U.B._Funkeys"&gt;U.B. Funkeys&lt;/a&gt;, and much to my dismay the driver that this toy needs aren't supported under Vista 64.&amp;nbsp; Simply put, to much of my kid's software and gizmos just don't work under Windows 64 bit.&amp;nbsp; Now, some of you might say, &amp;quot;Wait - it's the responsibility of the vendor to ensure compatibility&amp;quot;.&amp;nbsp; Yes, it is.&amp;nbsp; However, for the here and now, my kids and wife don't care who should be supporting what.&amp;nbsp; Stuff doesn't work, they yell/whine/cry at me.&lt;/p&gt;
&lt;p&gt;I'm sure Windows 64 bit is fine for other roles, but as an O/S for a home PC that need to run older games and such, it FAILS.&lt;/p&gt;
&lt;p&gt;Pragmatism wins, Windows 64 bit loses.&amp;nbsp; Windows XP gets reinstalled.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=281&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/315799074" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/315799074/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Thu, 19 Jun 2008 19:02:58 GMT</pubDate>
    </item>
    <item>
      <title>CSA - Martian Weather Report</title>
      <description>&lt;p&gt;&lt;a href="http://www.space.gc.ca/asc/eng/exploration/phoenix_weather1.asp"&gt;CSA - Martian Weather Report&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now this is kind of neat:&amp;#160; weather reports from Mars.&amp;#160; Now, some of you might think, BORING.&amp;#160; Think about this first:&amp;#160; This isn't a &amp;quot;stick your head out the window&amp;quot; kind of thing.&amp;#160; This involved placing a man-made object tens of millions of kilometres away on another planet, and then transmitting that data back to Earth where big, wrinkly, brains can interpret that data and where you and I can see this with a simple click of our mouse.&amp;#160; Smooth, little, brains like mine boggle at the thought of this.&lt;/p&gt;  &lt;p&gt;Anyway, I guess the latest weather report kind of makes our Canadian winters seem not so bad.&amp;#160;&amp;#160; At least the Martian cold is a dry cold.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=280&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/313869183" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/313869183/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Tue, 17 Jun 2008 10:41:43 GMT</pubDate>
    </item>
    <item>
      <title>Time For New a new Blog Engine?</title>
      <description>&lt;p&gt;For the longest time, almost three years now, I've been running &lt;a href="http://www.mojoportal.com"&gt;mojoPortal&lt;/a&gt; for my website.&amp;#160; My basic criteria at the time was pretty simple:&amp;#160; open-source, Mono compatible, and supports either MySQL or PostgreSQL for a database, and something that seem to be supported/actively developed.&amp;#160; I settled on mojoPortal.&amp;#160; Joe Audette, the author of mojoPortal, has been spending the past 4+ years working on mojoPortal, and as done a pretty good job getting it to work with a variety of databases, and on both Linux and Windows.&amp;#160; &lt;/p&gt;  &lt;p&gt;Lately, I've been thinking that perhaps mojoPortal is getting a bit to big/bloated for what I need.&amp;#160; Don't get me wrong, I still like mojoPortal.&amp;#160; However, after the past three years, I've learned that all I really need is a simple blogging engine, with Windows Live Writer support (&lt;em&gt;as an aside, I'm working on WLW support for mojoPortal.&amp;#160; Hoping to merge the code into trunk soon - really&lt;/em&gt;).&amp;#160; mojoPortal seems to have all that, and then more.&amp;#160; It's a lot of stuff I don't really need, and I'm sure that most security types will tell you that you just don't install stuff you don't need on your PC's - the less there is to hack, the better.&lt;/p&gt;  &lt;p&gt;Now, what criteria would I have for a new blog engine?&amp;#160; Well, in no particular order:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Windows Live Writer support&lt;/li&gt;    &lt;li&gt;Can run on Linux.&amp;#160; Either Mono (C#) compatible, or something like Ruby or boo&lt;/li&gt;    &lt;li&gt;If it does use a database, then MySQL&lt;/li&gt;    &lt;li&gt;Open Source&lt;/li&gt;    &lt;li&gt;Relatively light weight, compared to mojoPortal.&amp;#160; My definition of &amp;quot;light-weight&amp;quot; is rather abitrary, based on what I see when I dig through through the code of this new uber-blog engine.&lt;/li&gt;    &lt;li&gt;Modular design&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Ideally, I think it would be nice if there was a blog engine that uses &lt;a href="http://www.castleproject.org/MonoRail/"&gt;MonoRail&lt;/a&gt;, or perhaps ASP.NET MVC.&amp;#160; However, I really haven't found anything yet that fits the bill. I suppose if I was independently wealthy, I'd take the time and just write my own, but, honestly, I just don't see the point to that.&lt;/p&gt;  &lt;p&gt;If you have any suggestions, I'd like to hear about them.&amp;#160; Feel free to speak up.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=279&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/313547457" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/313547457/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Tue, 17 Jun 2008 00:50:16 GMT</pubDate>
    </item>
    <item>
      <title>Another Annoying Test Post On The Blog.</title>
      <description>&lt;p&gt;This is just a test post, please feel free to ignore.&amp;#160; In fact, you are encouraged to ignore this blog post.&amp;#160; Just checking to see if the error that pops up when users post a comment is fixed.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Update:&amp;#160; Well, it looks like the problem is fixed.&amp;#160; And, to boot, it looks like I have the editing of posts with Windows Live Writer working too. &lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=278&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/313522713" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/313522713/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Tue, 17 Jun 2008 00:19:32 GMT</pubDate>
    </item>
    <item>
      <title>Ubuntu 8.04 and Me</title>
      <description>&lt;h3&gt;Installing Hardy Heron&lt;/h3&gt;  &lt;p&gt;I'm in the process of setting up a new box to run some virtual machines for me, it's nothing to fancy, but it is adequate for my needs.&amp;#160; It's a humble little PC with scads of RAM (8GB) and a big hard drive (750GB).&amp;#160; I figured that setting this up would be a snap, as I had done it several times before - well for &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; 7.10 Gutsy Gibbon.&amp;#160; Installing Linux these days is pretty simple and quick, compared to say, install Windows.&lt;/p&gt;  &lt;p&gt;Turns out that things were quite as straight forward as I thought it would be.&amp;#160; The first glitch happened when I booted from the CD. I went through the first bit of the &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; install, at which point I was informed that the CDROM could not be mounted.&amp;#160; Somewhat confusing, as I had just booted from the CD no problem.&lt;/p&gt;  &lt;p&gt;Seems that there is a bug in the installer, and when you try to install on a PC with more than 8GB of RAM, the CD ROM gets &amp;quot;lost&amp;quot;.&amp;#160; The work around is that when you're booting, you modify the startup so that only 4GB of RAM is used.&amp;#160; You do this by appending &lt;font face="Courier New"&gt;mem=4G&lt;/font&gt; at the end of the boot parameters.&amp;#160; Of course, when you're done installing, you have to edit the boot parameters and remove the &lt;font face="Courier New"&gt;mem=4G&lt;/font&gt; so that you get all your RAM back.&amp;#160; Of course, be aware that when you do this, you loose your CD-ROM drive.&lt;/p&gt;  &lt;h3&gt;Installing VMware Server&lt;/h3&gt;  &lt;p&gt;This had to have been one of the most painless installations of anything I have ever done - truly.&amp;#160; Installing &lt;a href="http://www.vmware.com"&gt;VMware&lt;/a&gt; on &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; isn't a big deal, you just have to make sure that you have all your dependencies up to date.&amp;#160; And, when you're on x86_64 there are a couple extras that you don't normally need on i386.&amp;#160; However, on the &lt;a href="http://ubuntuforums.org/"&gt;Ubuntu Forurms&lt;/a&gt;, someone (a Canadian it seems) went to the effort of putting together a &lt;a href="http://ubuntuforums.org/showthread.php?t=788169"&gt;nice little bash script&lt;/a&gt; that does everything for you.&amp;#160; Well, not everything, you still have to get the serial number for &lt;a href="http://www.vmware.com"&gt;VMware&lt;/a&gt; server.&amp;#160; Grab the script, make sure you read the directions posted, and away you go.&amp;#160; It's nice when things are that simple.&lt;/p&gt;  &lt;p&gt;Now the next great adventure is to move my VM's onto the new server.&amp;#160; Shouldn't be a big problem, as I do have some external HDD's for just this type of thing.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=277&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/310128007" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/310128007/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Wed, 11 Jun 2008 22:41:05 GMT</pubDate>
    </item>
    <item>
      <title>Flip Mino Review</title>
      <description>&lt;p&gt;Rumors of my demise have been greatly exaggerated.&amp;nbsp; I've had several ideas for blog posts recently, but just haven't sat down and wrote them out.&lt;/p&gt;
&lt;p&gt;My outdated video camera is nearly 10 years old, so I've been thinking about getting a replacement.&amp;nbsp; The Flip Ultra has been on my radar screen for quite a while.&amp;nbsp; With Scott Hanselman's &lt;a href="http://www.hanselman.com/blog/PureDigitalFlipVideoUltraReview.aspx"&gt;glowing review&lt;/a&gt; and the release of the 2nd generation &lt;a href="http://theflip.com"&gt;Flip Mino&lt;/a&gt;, I was finally convinced.&amp;nbsp; As an early Father's Day gift, I ordered one online and it arrived today.&lt;/p&gt;
&lt;p&gt;Wow.&amp;nbsp; I just can't get over how much I like this gadget.&amp;nbsp; It's no bigger than a point-and-click camera, it's ridiculously simple to use, and the software to manage your movies is right on the camera.&amp;nbsp; You just plug the camera into any PC (or Mac, apparently) and go.&amp;nbsp; Within minutes of opening the box I had recorded my first short videos and transferred them to my PC.&amp;nbsp; I like the fact that it comes with a TV RCA audio/video cable so I can show videos when visiting friends or family.&amp;nbsp; I haven't tried all the features, but it appears that you can easily convert, upload and share videos online, too.&lt;/p&gt;
&lt;p&gt;As other reviewers have stated, the light sensor does an excellent job of quickly adjusting to any light conditions.&amp;nbsp; Video quality is passable, but it's certainly good enough for casual use.&amp;nbsp; To me, the built-in rechargeable battery in the Flip Mino is well worth the premium over the Flip Ultra.&amp;nbsp; I'm not too crazy about the touch-sensitive buttons surrounding the big, red record button, but that's not a show-stopper.&amp;nbsp; I'm also impressed with the short time it takes to power up the device and start recording.&lt;/p&gt;
&lt;p&gt;So far, I am absolutely thrilled with this purchase.&amp;nbsp; I once read (regarding photography) the best camera is the one you have with you.&amp;nbsp; With the Flip Mino's small form-factor and easy-to-use features, I see my family and I recording and sharing a lot more memories in our future.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.christianasp.com'&gt;David Neal&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.christianasp.com/flip-mino-review.aspx'&gt;...&lt;/a&gt;</description>
      <link>http://www.christianasp.com/flip-mino-review.aspx</link>
      <author>David Neal</author>
      <pubDate>Tue, 10 Jun 2008 22:27:02 GMT</pubDate>
    </item>
    <item>
      <title>I Can't Resist I'm Gonna Get a 3g iPhone</title>
      <description>&lt;p&gt;I followed the Apple WWDC keynote today and I'm sold, hook line and sinker, I want an iPhone.&lt;/p&gt;
&lt;p&gt;And I can justify it too because its not as expensive as it was and I'm a web developer so I have to be able to test the &lt;a href="http://www.mojoportal.com"&gt;mojoPortal&lt;/a&gt; experience on an iPhone since a lot of people are viewing the web with it and more will be soon with 3G. Yeah thats the ticket, I &amp;quot;have to&amp;quot; have one for work. See how easy that was.&lt;/p&gt;
&lt;p&gt;Only problem now is July 11 seems a long time to wait, I'm impatient, I want it now :-D&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.joeaudette.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.joeaudette.com/i-cant-resist-im-gonna-get-a-3g-iphone.aspx'&gt;...&lt;/a&gt;</description>
      <link>http://www.joeaudette.com/i-cant-resist-im-gonna-get-a-3g-iphone.aspx</link>
      <author>Joe Audette</author>
      <pubDate>Mon, 09 Jun 2008 17:41:47 GMT</pubDate>
    </item>
    <item>
      <title>A Few New Developer Docs</title>
      <description>&lt;p&gt;Just a quick post to point out some new documentation for &lt;a href="http://www.mojoportal.com"&gt;mojoPortal&lt;/a&gt; developers.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mojoportal.com/setting-up-your-projects.aspx"&gt;Setting Up Your Projects&lt;/a&gt; - has notes about how to work with mojoPortal from our repository and your own code from your own repository.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mojoportal.com/using-the-installation-system.aspx"&gt;Using The Installation System&lt;/a&gt; - talks about how to leverage the mojoPortal installation system to install your own features.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mojoportal.com/using-the-task-framework.aspx"&gt;Using The Task System&lt;/a&gt; - discusses a little framework we have for managing long running tasks on a background thread. You can implement your own and plug them in. I built it for sending the news letter emails. It can chug through a long list effectively because it can resume even if the thread is killed by recycling the app pool. When the app starts again it picks up where it left off.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/a-few-new-developer-docs-2008-06-07.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-A_Few_New_Developer_Docs.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/306881220/58f3a159-2ff0-45e5-9ac9-7fa1e92bcd30</link>
      <author>mojoPortal Blog</author>
      <pubDate>Sat, 07 Jun 2008 12:29:05 GMT</pubDate>
    </item>
    <item>
      <title>NHAML View Engine for MonoRail</title>
      <description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/mirvodasergey/archive/2008/06/02/introducing-monorail-nhaml.aspx"&gt;This seems interesting&lt;/a&gt;:&amp;#160; an NHaml view engine has been implemented for &lt;a href="http://www.castleproject.org/MonoRail/"&gt;MonoRail&lt;/a&gt;.&amp;#160; One thing about this that I find neat is that the &lt;a href="http://andrewpeters.net/2007/12/19/introducing-nhaml-an-aspnet-mvc-view-engine/"&gt;NHaml view engine for the ASP.NET MVC&lt;/a&gt; was ported back to &lt;a href="http://www.castleproject.org/MonoRail/"&gt;MonoRail&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Great to see such cross-pollination of ideas and code between the two projects.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=275&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/306094004" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/306094004/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Fri, 06 Jun 2008 09:15:38 GMT</pubDate>
    </item>
    <item>
      <title>D-Day</title>
      <description>&lt;p&gt;Today is the 64th anniversary of D-Day.&amp;nbsp; If you are a Canadian, take a moment today and read up about 3rd Canadian Infantry Division and the 14, 000 Canadians which went ashore at Juno Beach (the 2nd most heavily defended beach of the invasion).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Likewise, if you're British, I would suggest taking a moment today and reading up on Sword and Gold beach.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And, if you are American, then perhaps read up on Utah and Omaha beach (the most heavily defended beach of the whole invasion).&amp;nbsp; And no, watching &lt;a href="http://www.imdb.com/title/tt0120815/"&gt;Saving Private Ryan&lt;/a&gt; doesn't count.&lt;/p&gt;
&lt;p&gt;Granted military history (which I read a lot of) can be kind of boring and slow sometimes, but D-Day was a very important day in the 20th century, and some of the troops involved had been training for almost a year for just this one day.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=274&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/306094005" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/306094005/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Fri, 06 Jun 2008 08:22:51 GMT</pubDate>
    </item>
    <item>
      <title>Testing (Ignore)</title>
      <description>&lt;p&gt;Okay, this is just a test of the new build of mojoPortal that I just threw up on my web server.&lt;/p&gt;  &lt;p&gt;This should now allow for editing of blog posts via Windows Live Writer.&amp;#160; Hopefully, I can merge with the trunk and then Joe can do an offical release.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=273&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/304075464" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/304075464/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Tue, 03 Jun 2008 18:49:52 GMT</pubDate>
    </item>
    <item>
      <title>PDF Abuse</title>
      <description>&lt;p&gt;&amp;lt;rant&amp;gt;   &lt;br /&gt;
It might just be cranky old me whining and complaining, but I'm finding it harder and harder to understand, why, in this day of Web 2.0 and all things wonderful on the internet, companies still serve up PDF's as their primary form of communication.&amp;nbsp; I mean really, it's not that hard to serve up an HTML page that I can read in my browser.&amp;nbsp; Why force me to download and look at a PDF?&lt;/p&gt;
&lt;p&gt;Provide me with a link that I can download the PDF from, but if I'm taking my time to visit your corporate website to find out about some product or to look at a schedule or an item in your inventory, don't waste my time or my bandwidth with some bulky, bloated PDF.&amp;nbsp; Show me what I want to see.&lt;/p&gt;
&lt;p&gt;&amp;lt;/rant&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=272&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/301653012" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/301653012/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Sat, 31 May 2008 00:02:36 GMT</pubDate>
    </item>
    <item>
      <title>IronRuby Is Now Running Rails</title>
      <description>&lt;p&gt;&lt;a href="http://www.iunknown.com/2008/05/ironruby-and-rails.html"&gt;John Lam just blogged&lt;/a&gt; about how they now have IronRuby running Rails (unmodified).&amp;nbsp; It sounds like there is still work to be done, but still noteworthy in my books.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.opgenorth.net'&gt;Tom Opgenorth&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.opgenorth.net/BlogView.aspx?pageid=1&amp;ItemID=271&amp;mid=27'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/opgenorth/blog/~4/301265360" height="1" width="1"/&gt;</description>
      <link>http://feeds.feedburner.com/~r/opgenorth/blog/~3/301265360/BlogView.aspx</link>
      <author>Tom Opgenorth</author>
      <pubDate>Fri, 30 May 2008 09:42:43 GMT</pubDate>
    </item>
    <item>
      <title>mojoPortal 2.2.5.8 Released</title>
      <description>&lt;p&gt;I'm happy to announce the release of &lt;a href="http://www.mojoportal.com"&gt;mojoPortal&lt;/a&gt; 2.2.5.8, its available now on the &lt;a href="http://www.mojoportal.com/download.aspx"&gt;download page&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;New This Release&lt;/h3&gt;
&lt;p&gt;Friendly urls for the blog as mentioned in my &lt;a href="http://www.mojoportal.com/blog-improvements-landed-in-svn-trunk.aspx"&gt;previous post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Folder Image Gallery now works in Medium Trust&lt;/p&gt;
&lt;p&gt;Bug fixes for SQLite and pgsql and other various minor bugs as reported in the forums since the last release.&lt;/p&gt;
&lt;p&gt;As always, be sure and backup your site and database before upgrading, and report any problems in the &lt;a href="http://www.mojoportal.com/forums.aspx"&gt;Forums&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/mojoportal-2258-released.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-mojoPortal_2258_Released.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/295377295/27a333b2-d082-402b-ace6-4ac8cfd09017</link>
      <author>mojoPortal Blog</author>
      <pubDate>Wed, 21 May 2008 18:13:35 GMT</pubDate>
    </item>
    <item>
      <title>Forums added to Mono Website</title>
      <description>
	&lt;p&gt;Web-based forums for Mono discussions have been added at 
	&lt;a href="http://www.go-mono.com/forums"&gt;http://www.go-mono.com/forums&lt;/a&gt;

	&lt;p&gt;Most active Mono community members participate in on-line discussions 
	through our mailing lists; however, many Mono users have expressed a 
	preference for web forums based discussions.

	&lt;p&gt;In order to address this demand for an official forums for Mono, 
	while keeping the community engaged in our mailing lists, we have 
	embedded &lt;a href="http://www.nabble.com"&gt;nabble.com&lt;/a&gt; into our 
	site to create a bridge between the two groups.  So, you can now use 
	whichever method you prefer participate in the community.



	
</description>
      <link>http://www.mono-project.com/news/archive/2008/May-19.html</link>
      <author>Mono News</author>
      <pubDate>Mon, 19 May 2008 19:15:00 GMT</pubDate>
    </item>
    <item>
      <title>mojoPortal.com Makeover</title>
      <description>&lt;p&gt;With all the nice looking new skins from my &lt;a href="http://www.mojoportal.com/help-me-pick-the-next-10-designs-for-mojoportal-skins.aspx"&gt;recent skinning campaign&lt;/a&gt;, I decided it was time to give &lt;a href="http://www.mojoportal.com"&gt;mojoPortal.com&lt;/a&gt; a makeover. The previous design was about 2 years old and was starting to look a little dated. I also wanted to reduce the clutter on the home page and try to have a more succinct marketing message. I think in the past I've thought that most of my audience were developers so I was packing in a lot of technical information on the home page, but over time I've come to realize I should be targeting more towards business people and emphasizing the business value of mojoPortal more than the technical merits, at least on the home page. So I hope you like the new look! &lt;/p&gt;
&lt;p&gt;&lt;img width="500" height="514" src="http://www.mojoportal.com/Data/Sites/1/mojo-makeover.jpg" alt="screen shot of new site design" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/mojoportalcom-makeover-2008-05-16.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-mojoPortalcom_Makeover.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/291876694/ef1ab3b3-1067-4fa2-a264-4dda45b364ce</link>
      <author>mojoPortal Blog</author>
      <pubDate>Fri, 16 May 2008 16:21:30 GMT</pubDate>
    </item>
    <item>
      <title>Blog Improvements Landed in svn trunk</title>
      <description>&lt;p&gt;I put a little more love into the &lt;a href="http://www.mojoportal.com"&gt;mojoPortal&lt;/a&gt; blog feature in the last few days. &lt;/p&gt;
&lt;p&gt;We now have friendly urls for blog posts. Instead of the previous ~/BlogView.aspx?pageid=2&amp;amp;mid=19&amp;amp;ItemID=258, we now have ~/the-title-of-your-post.aspx&lt;/p&gt;
&lt;p&gt;I also added a Next Previous, navigation to make it easier to page through the posts.&lt;/p&gt;
&lt;p&gt;There is also a new Site Map for blog posts to make it easier for google and other search indexes to crawl your blog posts and improve your SEO. You can ad your blog site map to &lt;a href="https://www.google.com/webmasters/tools/"&gt;google webmaster tools&lt;/a&gt; as yoursiteroot/BlogSiteMap.ashx&lt;/p&gt;
&lt;p&gt;This is available in svn trunk now for developers and will be in the next release for everyone else.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/blog-improvements-landed-in-svn-trunk.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-Blog_Improvements_Landed_in_svn_trunk.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/291691657/729643f4-41fe-4cff-8190-17e9b173ef97</link>
      <author>mojoPortal Blog</author>
      <pubDate>Thu, 15 May 2008 19:39:38 GMT</pubDate>
    </item>
    <item>
      <title>First Moonlight Source Code Release</title>
      <description>
	&lt;p&gt;To encourage users to try out Moonlight, we are doing a
	source-code only release of Moonlight for developers to try
	out Moonlight.

	&lt;p&gt;To try out Moonlight, you have two options:

	&lt;ul&gt;
		&lt;li&gt;Media codecs: you must do your own build from
		source code.

		&lt;li&gt;No-media codecs: we provide one-click addins for
		Firefox that will install with no effort.
	&lt;/ul&gt;

	&lt;p&gt;Firefox addins are available
	from &lt;a href="http://www.go-mono.com/moonlight"&gt;http://www.go-mono.com/moonlight&lt;/a&gt;.

	&lt;p&gt;Source code for Moonlight is available
	from &lt;a href="ftp://ftp.novell.com/pub/mono/sources/moon/moon-0.6.tar.bz2"&gt;here&lt;/a&gt;.
	To compile Moonlight from source code
	follow &lt;a href="http://www.mono-project.com/Moonlight"&gt;these
	instructions&lt;/a&gt;.



	
</description>
      <link>http://www.mono-project.com/news/archive/2008/May-13.html</link>
      <author>Mono News</author>
      <pubDate>Tue, 13 May 2008 19:50:00 GMT</pubDate>
    </item>
    <item>
      <title>mojoPortal 2.2.5.4 Released</title>
      <description>&lt;p&gt;I'm very excited to announce the release of &lt;a href="http://www.mojoportal.com"&gt;mojoPortal&lt;/a&gt; 2.2.5.4&lt;/p&gt;
&lt;p&gt;Its available now on the &lt;a href="http://www.mojoportal.com/download.aspx"&gt;download page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main focus of this release is making mojoPortal more attractive, with the addition of 21 good looking new skins for a total of 34 skins now included with mojoPortal. There were also a few minor bug fixes for things reported in the Forums since the last release.&lt;/p&gt;
&lt;p&gt;Those of you upgrading should do a full upgrade, don't try to just upload the new skins as there were code changes needed to support some of these new designs. You should &lt;a href="http://www.mojoportal.com/uploadingfilestoahostedserver.aspx"&gt;upload all the new files&lt;/a&gt; and restore your customizations to &lt;a href="http://www.mojoportal.com/webconfig.aspx"&gt;Web.config or user.config&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My goals in producing all these skins was to make mojoPortal more popular and also to prove just how skinnable mojoPortal is. You can have a site fully populated with content and dramatically change the look of it with one click by changing the skin. This shows that we really have achieved good separation of presentation from content in mojoPortal. Those of you following this blog have surely seen the screen shots over the last 20 days as I implemented these new skins. 21 skins in 20 days is not bad if I do say so myself. It says a lot about the quality of the rendered markup produced by mojoPortal that one can go and find nice standards based designs and create mojoPortal skins from them relatively easy at least if you have an understanding of html and css. All these included skins can be used as a starting point for further customization to make your own custom skins as well.&lt;/p&gt;
&lt;p&gt;I'd like to extend a huge thanks to the great designers who have made their work available. All the new skins in this release are the work of only 7 designers, &lt;a href="http://andreasviklund.com/"&gt;Andreas Viklund&lt;/a&gt;, &lt;a href="http://www.freecsstemplates.org/"&gt;FreeCssTemplates&lt;/a&gt;, &lt;a href="http://www.graformix.com/"&gt;Graformix&lt;/a&gt;, &lt;a href="http://www.mitchinson.net/"&gt;Denise Mitchinson&lt;/a&gt;, &lt;a href="http://fullahead.org/"&gt;snop&lt;/a&gt;, &lt;a href="http://www.styleshout.com/"&gt;styleshout&lt;/a&gt;, and &lt;a href="http://arcsin.se/"&gt;arcsin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As always, be sure and backup your site and database before upgrading and if you have any trouble let us know in the forums.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/mojoportal-2254-released.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-mojoPortal_2254_Released.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/291691659/2f338b4c-af9d-42a5-9cac-39dd650eff5a</link>
      <author>mojoPortal Blog</author>
      <pubDate>Mon, 12 May 2008 17:47:12 GMT</pubDate>
    </item>
    <item>
      <title>20th Skin Completed freecsstemplates-level2</title>
      <description>&lt;p&gt;I've just completed the 20th and final skin of this skinning campaign. Later this afternoon/evening I will be making a release to include all the new skins.&lt;/p&gt;
&lt;p&gt;This one is based on &lt;a href="http://www.opendesigns.org/preview/?template=944"&gt;freecsstemplates-level2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img width="500" height="490" alt="freecsstemplates-level2 skin screen shot" src="http://www.mojoportal.com/Data/Sites/1/freecsstemplates-level2.gif" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/20th-skin-completed-freecsstemplates-level2.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-20th_Skin_Completed_freecsstemplates-level2.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/291691660/e1f66f33-4a35-4d36-acaf-2e87710b7fca</link>
      <author>mojoPortal Blog</author>
      <pubDate>Mon, 12 May 2008 11:53:33 GMT</pubDate>
    </item>
    <item>
      <title>19th Skin Completed - mitchinson-golden</title>
      <description>&lt;p&gt;I've just completed the 19th new skin of my campaign, &lt;a href="http://www.mitchinson.net/designs/67_golden/index.html"&gt;mitchinson-golden&lt;/a&gt;, which can be seen on &lt;a href="http://demo.mojoportal.com"&gt;demo.mojoportal.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width="500" height="524" alt="mitchinson-golden skin screen shot" src="http://www.mojoportal.com/Data/Sites/1/mitchinson-golden.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;One more to go and I'm finished with skinning for a while!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/19th-skin-completed---mitchinson-golden.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-19th_Skin_Completed_-_mitchinson-golden.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/291691661/f077979a-b639-421c-ae3f-5fd13d04502a</link>
      <author>mojoPortal Blog</author>
      <pubDate>Sun, 11 May 2008 15:44:26 GMT</pubDate>
    </item>
    <item>
      <title>17th and 18th New Skins, mitchinson-khaki, styleshout-coolwater</title>
      <description>&lt;p&gt;I've just completed the 18th new skin for mojoPortal, far exceeding &lt;a href="http://www.mojoportal.com/BlogView.aspx?pageid=2&amp;amp;ItemID=433&amp;amp;mid=19"&gt;my original goal of 10 new skins&lt;/a&gt;. This one is named &lt;a href="http://www.mitchinson.net/designs/51_khaki/index.html"&gt;mitchinson-khaki&lt;/a&gt;, and the one below is &lt;a href="http://www.styleshout.com/templates/preview/CoolWater1-0/index.html"&gt;styleshout-coolwater&lt;/a&gt;, which I completed yesterday. You can see these skins now on &lt;a href="http://demo.mojoportal.com"&gt;demo.mojoportal.com&lt;/a&gt;. I still have 2 more designs that I want to try and make skins with today while I have skinning momentum. Tomorrow I will package a new release of mojoPortal to include all these new skins. I've been working full blast on skins since April 23rd until today. I'm very happy with the results, but ready to get working on other priorities.&lt;/p&gt;
&lt;p&gt;&lt;img width="500" height="527" alt="mitchinson-khaki skin screen shot" src="http://www.mojoportal.com/Data/Sites/1/mitchinson-khaki.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width="500" height="546" alt="styleshout-coolwater skin screen shot" src="http://www.mojoportal.com/Data/Sites/1/styleshout-coolwater.jpg" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/17th-and-18th-new-skins-mitchinson-khaki-styleshout-coolwater.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-17th_and_18th_New_Skins_mitchinson-khaki_styleshout-coolwater.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/291691662/f104bcfc-6d40-415d-b319-21d4850486e9</link>
      <author>mojoPortal Blog</author>
      <pubDate>Sun, 11 May 2008 10:02:16 GMT</pubDate>
    </item>
    <item>
      <title>2nd Skin for 11th Design - styleshout-envision</title>
      <description>&lt;p&gt;I've completed the second skin of 3 for the 11th design of my &lt;a href="../../../BlogView.aspx?pageid=2&amp;amp;ItemID=439&amp;amp;mid=19"&gt;11 design campaign&lt;/a&gt;, &lt;a href="http://www.styleshout.com/templates/preview/Envision1-1/index.html"&gt;styleshout-envision&lt;/a&gt; which can be seen on &lt;a href="http://demo.mojoportal.com/"&gt;demo.mojoportal.com&lt;/a&gt;. Of course since its a public demo site, someone may come along and change it, but you can change it back or checkout the different skins by (key icon) Administration Menu &amp;gt; Site Settings.&lt;/p&gt;
&lt;p&gt;&lt;img width="500" height="537" alt="styleshout-envision skin screen shot" src="http://www.mojoportal.com/Data/Sites/1/styleshout-envision.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Coming up next,&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.styleshout.com/templates/preview/CoolWater1-0/index.html"&gt;styleshout-coolwater&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.mojoportal.com'&gt;Joe Audette&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.mojoportal.com/2nd-skin-for-11th-design-styleshout-envision.aspx'&gt;...&lt;/a&gt;&lt;br&gt;&lt;a type="audio/mpeg" href="http://podcasts.odiogo.com/get_mp3.mp3?f=/mojoportal-change-blog/mojoPortal_Change_Blog-2nd_Skin_for_11th_Design_-_styleshout-envision.mp3"&gt;Click here to play&lt;/a&gt;&lt;br&gt;</description>
      <link>http://feeds.feedburner.com/~r/mojoportal/~3/291691663/d0ed77b7-8d22-461a-be0a-a8431de5ddc0</link>
      <author>mojoPortal Blog</author>
      <pubDate>Sat, 10 May 2008 09:51:38 GMT</pubDate>
    </item>
  </channel>
</rss>