<?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>Morroni Blog</title>
	<atom:link href="http://blog.morroni.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.morroni.com</link>
	<description>Possibly Useful Information from Morroni Technologies</description>
	<lastBuildDate>Thu, 10 Nov 2011 15:43:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Official Percolator Coffee Ratios</title>
		<link>http://blog.morroni.com/2011/11/10/official-percolator-coffee-ratios/</link>
		<comments>http://blog.morroni.com/2011/11/10/official-percolator-coffee-ratios/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 15:43:29 +0000</pubDate>
		<dc:creator>jwatson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=347</guid>
		<description><![CDATA[The new percolator is to be loaded in the following ratio: 1/8 cup (metal scoop) per 2 cups water. Review pending.]]></description>
			<content:encoded><![CDATA[<p>The new percolator is to be loaded in the following ratio:</p>
<p>1/8 cup (metal scoop) per 2 cups water.</p>
<p>Review pending.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2011/11/10/official-percolator-coffee-ratios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Allowing blank submissions for MappedEmail</title>
		<link>http://blog.morroni.com/2011/08/10/allowing-blank-submissions-for-mappedemail/</link>
		<comments>http://blog.morroni.com/2011/08/10/allowing-blank-submissions-for-mappedemail/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 22:13:11 +0000</pubDate>
		<dc:creator>jwatson</dc:creator>
				<category><![CDATA[Lift]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=342</guid>
		<description><![CDATA[The MappedEmail class does not take kindly to blank submissions in it&#8217;s default form, however with a simple override you can retain all the goodness of the validations built into MappedEmail, while ignoring these requirements if there is no value submitted: object emailAddress extends MappedEmail(this, 100) { override def validate = if (this.is == "") [...]]]></description>
			<content:encoded><![CDATA[<p>The MappedEmail class does not take kindly to blank submissions in it&#8217;s default form, however with a simple override you can retain all the goodness of the validations built into MappedEmail, while ignoring these requirements if there is no value submitted:<br />
<code><br />
object emailAddress extends MappedEmail(this, 100) {<br />
    override def validate = if (this.is == "") Nil else super.validate<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2011/08/10/allowing-blank-submissions-for-mappedemail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Scala projects in IntelliJ</title>
		<link>http://blog.morroni.com/2011/06/30/debugging-scala-projects-in-intellij/</link>
		<comments>http://blog.morroni.com/2011/06/30/debugging-scala-projects-in-intellij/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 18:25:05 +0000</pubDate>
		<dc:creator>jwatson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=331</guid>
		<description><![CDATA[Open up your preferences, and go to your SBT settings. You want to add this to your VM Parameters: &#8220;-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005&#8243; Now to debug, you need to create a new debugging profile of type &#8220;Remote&#8221; And make sure that it is running with your sbt debug line &#8221; -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005&#8243;, and verify that the settings [...]]]></description>
			<content:encoded><![CDATA[<p>Open up your preferences, and go to your SBT settings. You want to add this to your VM Parameters: &#8220;-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005&#8243;</p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/06/Screen-shot-2011-06-30-at-2.18.17-PM.png"><img class="alignnone size-large wp-image-332" title="IntelliJ Preferences" src="http://blog.morroni.com/wp-content/uploads/2011/06/Screen-shot-2011-06-30-at-2.18.17-PM-1024x363.png" alt="" width="1024" height="363" /></a></p>
<p>Now to debug, you need to create a new debugging profile of type &#8220;Remote&#8221;</p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/06/debug_menu.png"><img class="alignnone size-full wp-image-333" title="debug_menu" src="http://blog.morroni.com/wp-content/uploads/2011/06/debug_menu.png" alt="" width="475" height="431" /></a></p>
<p>And make sure that it is running with your sbt debug line &#8221; -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005&#8243;, and verify that the settings are set to transport:socket, debugger mode: Attach, and host:localhost on port 5005.</p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/06/debug_settings.png"><img class="alignnone size-full wp-image-334" title="debug_settings" src="http://blog.morroni.com/wp-content/uploads/2011/06/debug_settings.png" alt="" width="819" height="678" /></a></p>
<p>Set breakpoints and enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2011/06/30/debugging-scala-projects-in-intellij/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sorted Pagination with Lift Framework</title>
		<link>http://blog.morroni.com/2011/06/20/sorted-pagination-with-lift/</link>
		<comments>http://blog.morroni.com/2011/06/20/sorted-pagination-with-lift/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 14:43:52 +0000</pubDate>
		<dc:creator>acoimbra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=327</guid>
		<description><![CDATA[Lift provides built in snippets to allow easy pagination of data. Here is a brief reference for the SortedMapperPaginatorSnippet (SMPS henceforth). As you can tell from the name, it specifically allows sorted pagination of mapper data. The Lift documentation provides more general information on PaginatorSnippets here. Let&#8217;s say you have a snippet called listProducts. You&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>Lift provides built in snippets to allow easy pagination of data. Here is a brief reference for the SortedMapperPaginatorSnippet (SMPS henceforth). As you can tell from the name, it specifically allows sorted pagination of mapper data.</p>
<p><em>The Lift documentation provides more general information on PaginatorSnippets <a href="http://www.assembla.com/spaces/liftweb/wiki/Pagination">here</a>.</em></p>
<p>Let&#8217;s say you have a snippet called listProducts. You&#8217;d like listProducts to display a sorted pagination of all your products, which are stored in your database. Of course, you&#8217;ve already created <a href="http://www.assembla.com/spaces/liftweb/wiki/Mapper">Mapper</a> classes to relate to the data. The very first thing to do is add a couple of imports to your snippet:</p>
<blockquote><p>import net.liftweb.mapper.{By, OrderBy, MaxRows, Like,Cmp,NotNullRef,NullRef, QueryParam, StartAt, Ascending, Descending}<br />
import net.liftweb.mapper.view.{MapperPaginatorSnippet, SortedMapperPaginatorSnippet}</p></blockquote>
<p>Now let&#8217;s create the paginator.</p>
<blockquote><p>val paginator = new SortedMapperPaginatorSnippet(Product, Product.createdAt, &#8220;createdAt&#8221; -&gt; Product.createdAt, &#8220;price&#8221; -&gt; Product.price) {</p>
<p>}</p></blockquote>
<p>The first argument sets the mapper class we are querying. The next one specifies the column we want to sort by initially. Finally we have the two columns we will allow the user to sort by. These are actually both part of the third argument, but thanks to scala&#8217;s <a href="http://blog.darevay.com/2009/01/remedial-scala-repeated-parameters-and-initializing-collections/">repeated parameters</a>, we can have as many choices as we&#8217;d like. The third argument(s) should be pair(s) of column labels [String] and MappedFields.</p>
<p>Now let&#8217;s say we want to add some custom query criteria. For example, let&#8217;s only return products who have their inStock field set to true. To do this, we must set the constantParams var that is built into SMPS. This variable takes the format of a Seq[QueryParam]. So inside our paginator, add the following code:</p>
<blockquote><p>var params: List[net.liftweb.mapper.QueryParam[Product]] = Nil<br />
params = By(Product.inStock, true) :: Nil<br />
constantParams = params</p></blockquote>
<p>The first line sets up the Seq[QueryParam] format of the variable. Then, we set the list to have 2 elements: first is a By QueryParam and second is a Nil. If we had set the variable to just the QueryParam, then Scala would have changed the variable type to QueryParam. By prepending a Nil to the end, it maintains its status as a sequence of elements. The By param takes two arguments. First is the Mapper field to check and second is the value it must be. So in this case, we are checking the inStock is true. Finally set constantParams equal to params. This adds our custom query to the SMPS&#8217;s logic.</p>
<p>This is all you need to do to set up an SMPS in a snippet. To add it to a template, you need to bind each page to something in the xhtml. An example of how to do this would be to add this code to the snippet (outside of the paginator!):</p>
<blockquote><p>def all(xhtml: NodeSeq) : NodeSeq = paginator.page.flatMap(a =&gt; bind(&#8220;p&#8221;,xhtml,&#8221;createdAt&#8221; -&gt; a.createdAt, &#8220;price&#8221; -&gt; a.price, &#8220;inStock&#8221; -&gt; a.inStock))</p></blockquote>
<p>Paginator creates a &#8220;page&#8221; that is essentially a list of Products that is sorted and offset based on which page the user has selected. The code above simply binds each product in the paginator.page to some xhtml code. We could use this on a Lift template like this:</p>
<blockquote><p>
&lt;lift:listProducts.paginator.paginate&gt;<br />
&lt;tr&gt;&lt;th&gt;&lt;sort:createdAt /&gt;&lt;/th&gt;&lt;th&gt;&lt;sort:price /&gt;&lt;/th&gt;&lt;/tr&gt;<br />
&lt;/lift:listProducts.paginator.paginate&gt;</p>
<p>&lt;lift:listProducts.all&gt;<br />
&lt;tr&gt;&lt;td&gt;&lt;p:createdAt /&gt;&lt;/td&gt;&lt;td&gt;&lt;p:price /&gt;&lt;/td&gt;&lt;td&gt;&lt;p:inStock /&gt;&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/lift:listProducts.all&gt;<br />
&lt;lift:listProducts.paginator.paginate&gt;            &lt;nav:first/&gt;            |            &lt;nav:prev/&gt;            |           &lt;nav:allpages/&gt;          |            &lt;nav:next/&gt;            |            &lt;nav:last/&gt;            |            &lt;nav:records/&gt;<br />
&lt;/lift:listProducts.paginator.paginate&gt;</p></blockquote>
<p>Note that all of the tags inside both the &lt;lift:listProducts.paginator.paginate&gt; areas are built into SMPS, which the code inside &lt;lift:listProducts.all&gt; is populated by the custom all function we defined above. Also note that all this can (and should) be customized for your own needs.</p>
<p>A final point about SMPS is that the current sort field, offset, and sort order can all be set by url query strings:</p>
<p>paginatorpage?sort=0 would cause our SMPS above to sort by the createdAt field. sort=1 would cause it to sort by price.</p>
<p>paginatorpage?offset=100 would cause our SMPS&#8217;s current page to start at record 100.</p>
<p>paginatorpage?asc=false would cause our SMPS to sort in descending order.</p>
<p>Of course these can be combined such as: paginatorpage?sort=1&amp;asc=true</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2011/06/20/sorted-pagination-with-lift/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up your iPhone with Morroni email</title>
		<link>http://blog.morroni.com/2011/05/09/setting-up-your-iphone-with-morroni-email/</link>
		<comments>http://blog.morroni.com/2011/05/09/setting-up-your-iphone-with-morroni-email/#comments</comments>
		<pubDate>Mon, 09 May 2011 17:50:31 +0000</pubDate>
		<dc:creator>acoimbra</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=289</guid>
		<description><![CDATA[Before you start this tutorial, make sure you have the following handy: An email address hosted by Morroni Technologies (For this tutorial, we will use info@morroni.com as an example) A username (For this tutorial, we will use mor0127 as an example) A password Once you are ready, go to your iPhone home screen and tap the [...]]]></description>
			<content:encoded><![CDATA[<p>Before you start this tutorial, make sure you have the following handy:</p>
<ul>
<li>An email address hosted by Morroni Technologies<br />
(For this tutorial, we will use info@morroni.com as an example)</li>
<li>A username<br />
(For this tutorial, we will use mor0127 as an example)</li>
<li>A password</li>
</ul>
<p>Once you are ready, go to your iPhone home screen and tap the <strong>Settings</strong> icon.</p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/05/1.png"><img class="size-medium wp-image-291 alignnone" title="Home screen" src="http://blog.morroni.com/wp-content/uploads/2011/05/1-200x300.png" alt="" width="200" height="300" /></a></p>
<p>In settings, scroll to and tap <strong>Mail, Contacts, Calendars</strong></p>
<p><strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/2.png"><img class="alignnone size-medium wp-image-292" title="Settings&gt;Mail,Contacts,Calendars" src="http://blog.morroni.com/wp-content/uploads/2011/05/2-200x300.png" alt="" width="200" height="300" /></a></strong></p>
<p>Tap <strong>Add Account</strong></p>
<p><strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/3.png"><img class="alignnone size-medium wp-image-293" title="Add Account" src="http://blog.morroni.com/wp-content/uploads/2011/05/3-200x300.png" alt="" width="200" height="300" /></a></strong></p>
<p>Tap<strong> Other</strong></p>
<p><strong> </strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/4.png"><img class="alignnone size-medium wp-image-294" title="Other" src="http://blog.morroni.com/wp-content/uploads/2011/05/4-200x300.png" alt="" width="200" height="300" /></a></p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/05/4.png"></a>Tap <strong>Add Mail Account</strong></p>
<p><strong> </strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/5.png"><img class="alignnone size-medium wp-image-295" title="Add Mail Account" src="http://blog.morroni.com/wp-content/uploads/2011/05/5-200x300.png" alt="" width="200" height="300" /></a></p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/05/5.png"></a>At this next screen, you will need to enter the name you want associated with your email account. The sample image below uses &#8220;Morroni Technologies&#8221; but you can enter anything you want.</p>
<p>For the <strong>Address </strong>and <strong>Password </strong>please enter the email address and password you were provided with.</p>
<p>Tap <strong>Next </strong>when finished.</p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/05/6.png"><img class="alignnone size-medium wp-image-296" title="Entering Account Info" src="http://blog.morroni.com/wp-content/uploads/2011/05/6-200x300.png" alt="" width="200" height="300" /></a></p>
<p>The next step is to set up the Incoming/Outgoing mail servers. First, set up the <strong>Incoming Mail Server</strong> (IMAP).</p>
<ul>
<li><strong>Host Name</strong>: mailserver.morroni.com</li>
<li><strong>User Name:</strong> Enter the User Name (not the email address!) you were sent by Morroni Technologies. In the sample image below, mor0127 is the user name.</li>
<li><strong>Password</strong>: Enter the password you were sent.</li>
</ul>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/05/IMG_0178.png"><img class="alignnone size-medium wp-image-297" title="Incoming" src="http://blog.morroni.com/wp-content/uploads/2011/05/IMG_0178-200x300.png" alt="" width="200" height="300" /></a></p>
<p>Now, scroll down to set up the <strong>Outgoing</strong><strong> Mail Server</strong> (SMTP).</p>
<ul>
<li><strong>Host Name</strong>: smtpserver.morroni.com</li>
<li><strong>User Name:</strong> Enter the User Name (not the email address!) you were sent by Morroni Technologies. In the sample image below, mor0127 is the user name.</li>
<li><strong>Password</strong>: Enter the password you were sent.</li>
</ul>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong></p>
<div><a href="http://blog.morroni.com/wp-content/uploads/2011/05/IMG_0179.png"><img class="alignnone size-medium wp-image-299" title="Outgoing" src="http://blog.morroni.com/wp-content/uploads/2011/05/IMG_0179-200x300.png" alt="" width="200" height="300" /></a></div>
<div><span style="font-weight: normal;">Tap </span>Next<span style="font-weight: normal;"> when finished.</span></div>
<div><em><span style="font-weight: normal;">Note: If you get a message saying </span>Cannot Verify Server Identity <span style="font-weight: normal;">tap </span>Continue<span style="font-weight: normal;"> as shown below.</span></em></div>
<div><span style="font-weight: normal;"><a href="http://blog.morroni.com/wp-content/uploads/2011/05/cannot.png"><img class="alignnone size-full wp-image-300" title="cannot" src="http://blog.morroni.com/wp-content/uploads/2011/05/cannot.png" alt="" width="275" height="288" /></a><br />
</span></div>
<div><span style="font-weight: normal;">When the </span>Verifying&#8230;<span style="font-weight: normal;"> is finished, you will be greeted with the following screen. Tap </span>Save.</div>
<div><a href="http://blog.morroni.com/wp-content/uploads/2011/05/IMG_0181.png"><img class="alignnone size-medium wp-image-301" title="IMG_0181" src="http://blog.morroni.com/wp-content/uploads/2011/05/IMG_0181-200x300.png" alt="" width="200" height="300" /></a></div>
<div><span style="font-weight: normal;">At this point, your iPhone can send and receive messages using your Morroni account. </span></div>
<div><span style="font-weight: normal;">However, we need to instruct it to use your Morroni Trash, Drafts, and Sent folders instead of sharing with your other email accounts. To do so, first return to your home screen and open the <strong>Mail</strong> app.</span></div>
<div><span style="font-weight: normal;"><br />
</span></div>
<div><span style="font-weight: normal;">Scroll down to </span>Accounts <span style="font-weight: normal;">(not inboxes!).</span></div>
<div><span style="font-weight: normal;"><br />
</span></div>
<div><em><span style="font-weight: normal;">Note: On the New Account screen from before, there was a Description field. If you made any changes to that field, the description you entered will be the name of the account you want to tap. Otherwise, tap the account that is labelled with your new email address. For the tutorial images, we did not make a change to the Description field, so the Account to select is simply the info@morroni.com email address.</span></em></div>
<div><span style="font-weight: normal;">Select your newly created account.</span></div>
<div><span style="font-weight: normal;"><a href="http://blog.morroni.com/wp-content/uploads/2011/05/accounts.png"><img class="alignnone size-medium wp-image-302" title="accounts" src="http://blog.morroni.com/wp-content/uploads/2011/05/accounts-200x300.png" alt="" width="200" height="300" /></a></span></div>
<div><span style="font-weight: normal;">Ensure that under Inbox is a list of email folders as is show below. If the only item listed is Inbox, you may need to tap the <strong>refresh</strong> icon in the lower left corner of the screen.</span></div>
<div><span style="font-weight: normal;"><a href="http://blog.morroni.com/wp-content/uploads/2011/05/photo.png"><img class="alignnone size-medium wp-image-303" title="photo" src="http://blog.morroni.com/wp-content/uploads/2011/05/photo-200x300.png" alt="" width="200" height="300" /></a><br />
</span></div>
<p></strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Scroll down and tap <strong>Mail, Contacts, Calendars</strong>. Tap your newly created account in the list as shown below. <em>Again, it will be labelled with either your email address or, your description if you entered one.</em></p>
<p><em><a href="http://blog.morroni.com/wp-content/uploads/2011/05/photo2.png"><img class="alignnone size-medium wp-image-304" title="photo2" src="http://blog.morroni.com/wp-content/uploads/2011/05/photo2-200x300.png" alt="" width="200" height="300" /></a><br />
</em></p>
<p>You will arrive at the account settings screen pictured below. Tap the account under <strong>IMAP.</strong></p>
<p><strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/8.png"><img class="alignnone size-medium wp-image-305" title="8" src="http://blog.morroni.com/wp-content/uploads/2011/05/8-200x300.png" alt="" width="200" height="300" /></a></strong></p>
<p>Scroll to the bottom of this screen and tap <strong>Advanced</strong>.</p>
<p><a href="http://blog.morroni.com/wp-content/uploads/2011/05/9.png"><img class="alignnone size-medium wp-image-306" title="9" src="http://blog.morroni.com/wp-content/uploads/2011/05/9-200x300.png" alt="" width="200" height="300" /></a></p>
<p>Tap <strong>Drafts Mailbox</strong></p>
<p><strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/drafts.png"><img class="alignnone size-medium wp-image-307" title="drafts" src="http://blog.morroni.com/wp-content/uploads/2011/05/drafts-200x300.png" alt="" width="200" height="300" /></a></strong></p>
<p>Scroll to the <strong>On The Server </strong>list and select <strong>Drafts. </strong></p>
<p><strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/drafts2.png"><img class="alignnone size-medium wp-image-308" title="drafts2" src="http://blog.morroni.com/wp-content/uploads/2011/05/drafts2-200x300.png" alt="" width="200" height="300" /></a></strong></p>
<p><strong><span style="font-weight: normal;">Tap the <strong>Advanced</strong> button in the upper left corner of the screen.<br />
Tap </span>Sent Mailbox.</strong></p>
<p><strong><span style="font-weight: normal;"><a href="http://blog.morroni.com/wp-content/uploads/2011/05/sent.png"><img class="alignnone size-medium wp-image-309" title="sent" src="http://blog.morroni.com/wp-content/uploads/2011/05/sent-200x300.png" alt="" width="200" height="300" /></a> </span></strong></p>
<p><strong><span style="font-weight: normal;">Scroll to the <strong>On The Server </strong>list and select <strong>Sent. </strong></span></strong></p>
<p><strong><span style="font-weight: normal;"><strong><a href="http://blog.morroni.com/wp-content/uploads/2011/05/sent2.png"><img class="alignnone size-medium wp-image-310" title="sent2" src="http://blog.morroni.com/wp-content/uploads/2011/05/sent2-200x300.png" alt="" width="200" height="300" /></a></strong></span></strong></p>
<p><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;">Tap the <strong>Advanced</strong> button in the upper left corner of the screen.<br />
Tap </span>Deleted Mailbox<span style="font-weight: normal;">.</span></strong></span></strong></p>
<p><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><a href="http://blog.morroni.com/wp-content/uploads/2011/05/deleted.png"><img class="alignnone size-medium wp-image-311" title="deleted" src="http://blog.morroni.com/wp-content/uploads/2011/05/deleted-200x300.png" alt="" width="200" height="300" /></a></span></strong></span></strong></p>
<p><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;">Scroll to the <strong>On The Server</strong> list and select </span>Trash<span style="font-weight: normal;">.</span></strong></span></strong></p>
<p><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><a href="http://blog.morroni.com/wp-content/uploads/2011/05/trash2.png"><img class="alignnone size-medium wp-image-313" title="trash2" src="http://blog.morroni.com/wp-content/uploads/2011/05/trash2-200x300.png" alt="" width="200" height="300" /></a><br />
</span></strong></span></strong></p>
<p><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;">At this point, you are ready to use the iPhone Mail app with your Morroni Email account. Simply press the home button and tap the Mail app to begin!</span></strong></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2011/05/09/setting-up-your-iphone-with-morroni-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Best Lift / SBT / IntelliJ Startup Process</title>
		<link>http://blog.morroni.com/2011/03/11/the-best-lift-sbt-intellij-startup-process/</link>
		<comments>http://blog.morroni.com/2011/03/11/the-best-lift-sbt-intellij-startup-process/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 16:33:13 +0000</pubDate>
		<dc:creator>lmorroni</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=279</guid>
		<description><![CDATA[I&#8217;ve been searching for the ideal startup process when building a lift project and I might have just found it! I am using simple-build-tool(sbt) and two sbt processors.  The processors are: lifty:  http://lifty.github.com/Lifty/ sbt-idea:  https://github.com/mpeltonen/sbt-idea Here are the steps: amore:wheels lmorroni$ sbt Project does not exist, create new project? (y/N/s) y Name: appName Organization: com.morroni [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been searching for the ideal startup process when building a lift project and I might have just found it!</p>
<p>I am using simple-build-tool(sbt) and two sbt processors.  The processors are:</p>
<p>lifty:  http://lifty.github.com/Lifty/<br />
sbt-idea:  https://github.com/mpeltonen/sbt-idea</p>
<p>Here are the steps:</p>
<p><code>amore:wheels lmorroni$ sbt<br />
Project does not exist, create new project? (y/N/s) y<br />
Name: appName<br />
Organization: com.morroni<br />
Version [1.0]:<br />
Scala version [2.7.7]: 2.8.1<br />
sbt version [0.7.4]:<br />
...<br />
&gt;*lifty is org.lifty lifty 1.6<br />
&gt;*sbtIdeaRepo at http://mpeltonen.github.com/maven/<br />
&gt;*idea is com.github.mpeltonen sbt-idea-processor 0.3.0<br />
&gt;lifty create project-blank with user<br />
&gt;reload<br />
&gt;update<br />
&gt;idea<br />
&gt;~jetty-run</p>
<p>References:</p>
<p>http://lifty.github.com/Lifty/</p>
<p>https://github.com/mpeltonen/sbt-idea</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2011/03/11/the-best-lift-sbt-intellij-startup-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some IntelliJ pain relief during lift development</title>
		<link>http://blog.morroni.com/2010/12/01/some-intellij-pain-relief-during-lift-development/</link>
		<comments>http://blog.morroni.com/2010/12/01/some-intellij-pain-relief-during-lift-development/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 22:02:34 +0000</pubDate>
		<dc:creator>jwatson</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=270</guid>
		<description><![CDATA[If you&#8217;re developing lift in IntelliJ, often you get popup inspector errors all over your XHTML markup because the namespaces of your snippet classes, etc. are not valid. To turn it off, you can click on the inspector in the bottom right of the intelliJ window, Configure Inspections, and turn off that specific XML setting [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re developing lift in IntelliJ, often you get popup inspector errors all over your XHTML markup because the namespaces of your snippet classes, etc. are not valid. To turn it off, you can click on the inspector in the bottom right of the intelliJ window, Configure Inspections, and turn off that specific XML setting inspection in the XML options. Nothing huge, but it saves some annoyance.
<a href='http://blog.morroni.com/2010/12/01/some-intellij-pain-relief-during-lift-development/inspector/' title='inspector'><img width="150" height="146" src="http://blog.morroni.com/wp-content/uploads/2010/12/inspector-150x146.png" class="attachment-thumbnail" alt="inspector" title="inspector" /></a>
<a href='http://blog.morroni.com/2010/12/01/some-intellij-pain-relief-during-lift-development/inspector2/' title='inspector2'><img width="150" height="150" src="http://blog.morroni.com/wp-content/uploads/2010/12/inspector2-150x150.png" class="attachment-thumbnail" alt="inspector2" title="inspector2" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2010/12/01/some-intellij-pain-relief-during-lift-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browser Detect and Redirect in Lift Framework</title>
		<link>http://blog.morroni.com/2010/10/08/browser-detect-and-redirect-in-lift-framework/</link>
		<comments>http://blog.morroni.com/2010/10/08/browser-detect-and-redirect-in-lift-framework/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 21:22:27 +0000</pubDate>
		<dc:creator>lmorroni</dc:creator>
				<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=255</guid>
		<description><![CDATA[This may not seem like a difficult task for many of the more experienced Scala/Lift developers out there but it took me some time to write this little piece and I thought I would share it. I basically needed a way to redirect clients running IE6 to a single page which explained that the site [...]]]></description>
			<content:encoded><![CDATA[<p>This may not seem like a difficult task for many of the more experienced Scala/Lift developers out there but it took me some time to write this little piece and I thought I would share it.<br />
I basically needed a way to redirect clients running IE6 to a single page which explained that the site does not support their browser and here is how to upgrade.  To do this, I used the LiftRules object&#8217;s dispatch field inside the boot.scala file.  Here&#8217;s the line of code:<br />
<code><br />
    LiftRules.dispatch.prepend {<br />
      case Req(path, _, _) if (path != List("unsupported-browser") &#038;&#038; S.request.dmap(false)(_.isIE6)) => () => {Full(RedirectResponse("unsupported-browser"))}<br />
    }<br />
</code><br />
So I showed this line to my co-worker, Jeff, and his eyes almost popped out of his head.  I am digging Scala and Lift and I do see the power once I get a grasp on the syntax.  However, ramping up in this language is no small task.  It has actually been quite difficulty for me and while I may not be the sharpest developer in the world, I think I am relatively capable.  Anyway, enough of a rant.  Here&#8217;s what is going on above.  If any Scala masters are reading this and want to correct my explanation, please feel free.<br />
We are prepending a new rule to the dispatch field.  The format of the case statement is basically <code>case pattern if guard => {/*do something*/}</code><br />
The part that I got stuck on was binding a variable in the pattern that could be used in the guard.  So here&#8217;s how it breaks down.<br />
Pattern:  <code>Req(path, _, _) </code><br />
This grabs the current dispatch request and binds the path variable to the current path list.</p>
<p>Guard:  <code>if (path != List("unsupported-browser") &#038;&#038; S.request.dmap(false)(_.isIE6))</code><br />
The guard takes the binded path variable and checks to make sure it is any single path on the site EXCEPT the /unsupported-browser path.  That is an important part since we do not want a infinite loop redirect.  The second half of the guard takes the current session request box and uses dmap to open it and check if the current browser is indeed ie6.</p>
<p>Action:  If the pattern and guard are satisfied then we do a redirect to the unsupported browser page.  </p>
<p>Hopefully some people find this information useful.  </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2010/10/08/browser-detect-and-redirect-in-lift-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IntelliJ, SBT, and Lift</title>
		<link>http://blog.morroni.com/2010/09/09/intellij-sbt-and-lift/</link>
		<comments>http://blog.morroni.com/2010/09/09/intellij-sbt-and-lift/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 18:53:41 +0000</pubDate>
		<dc:creator>lmorroni</dc:creator>
				<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=240</guid>
		<description><![CDATA[Update: This is easier now. See this post: http://blog.morroni.com/2011/03/11/the-best-lift-sbt-intellij-startup-process/ This post describes how to get IntelliJ, Git, SBT(Scala Build Tool) and Lift playing nicely together. This post assumes you have Maven and SBT already installed since you will need them in order to make this work. More information about the sbt setup is here: http://code.google.com/p/simple-build-tool/wiki/Setup. [...]]]></description>
			<content:encoded><![CDATA[<p>Update:  This is easier now.  See this post:  http://blog.morroni.com/2011/03/11/the-best-lift-sbt-intellij-startup-process/<br />
This post describes how to get IntelliJ, Git, SBT(Scala Build Tool) and Lift playing nicely together.  This post assumes you have Maven and SBT already installed since you will need them in order to make this work.  More information about the sbt setup is here:  <a href="http://code.google.com/p/simple-build-tool/wiki/Setup">http://code.google.com/p/simple-build-tool/wiki/Setup</a>.  Information about installing maven is available here: <a href="http://maven.apache.org/run-maven/index.html">http://maven.apache.org/run-maven/index.html</a></p>
<p><strong>Install GIT</strong></p>
<ol>
<li>Browse to http://code.google.com/p/git-osx-installer/</li>
<li>Install the git package.</li>
<li>After installation, you need to run a shell command to finish things properly.  it sets paths and what not.</li>
<li>Open up a terminal.</li>
<li>Change directories to the mounted image</li>
<li><code>bash$ cd /Volumes/Git\ 1.6.4.4\ Intel\ Leopard/</code></li>
<li><code>bash$ ./setup\ git\ PATH\ for\ non-terminal\ programs.sh</code></li>
<li>Close your terminal and reopen it.  Now type <code>git</code> and confirm it is installed.</li>
</ol>
<p><strong>Download archetype</strong></p>
<ol>
<li>Open up terminal and browse to a folder where you will store your project.</li>
<li>Type the following:</li>
<li><code>mvn archetype:generate -U        \<br />
-DarchetypeGroupId=net.liftweb        \<br />
-DarchetypeArtifactId=lift-archetype-basic        \<br />
-DarchetypeVersion=2.0        \<br />
-DremoteRepositories=http://scala-tools.org/repo-releases        \<br />
-Dversion=0.1        \<br />
-DgroupId=com.myCompany.myProject -DartifactId=myProject</code></li>
<li>Change into the folder where the project was created and type &lt;code&gt;sbt update&lt;/code&gt;.  this will download the libraries and crate the sbt project folder.</li>
</ol>
<p><strong>Open IntelliJ</strong></p>
<p>I did a pretty verbose post on using IntelliJ with lift here:  <a href="http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/">http://blog.morroni.com/2010/07/14/setup-intellij-9-for-lift-framework-development/</a>.  This assumes you have installed the Scala and SBT plugins in IntelliJ.</p>
<ol>
<li>Now we open up IntelliJ and import the maven project.  File -&gt; New Project -&gt;Import Project From External Model.</li>
<li>Let IntelliJ do its thing and when it is done, we will need to add a class describing sbt build information.  Create a folder inside project/build and create a file called LiftProject.scala.  Place the following inside that file.<code><br />
import sbt._<br />
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {<br />
val liftVersion = "2.0"</p>
<p>override def libraryDependencies = Set(<br />
"net.liftweb" % "lift-webkit" % liftVersion % "compile-&gt;default",<br />
"net.liftweb" % "lift-mapper" % liftVersion % "compile-&gt;default",<br />
"org.mortbay.jetty" % "jetty" % "6.1.22" % "test-&gt;default",<br />
"junit" % "junit" % "4.5" % "test-&gt;default",<br />
"org.scala-tools.testing" % "specs" % "1.6.2.1" % "test-&gt;default",<br />
"com.h2database" % "h2" % "1.2.138"<br />
) ++ super.libraryDependencies<br />
}</code></li>
<li>Open up a terminal and inside your project folder type <code> sbt ~jetty-run</code></li>
<li>Open up your web browser and browse to <a href="http://localhost:8080">http://localhost:8080</a></li>
<li>Hopefully, you see your project.  if not, it&#8217;s probably because my post was too terse.  I apologize, but a lot of these posts are just so I do not forget certain processes <img src='http://blog.morroni.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2010/09/09/intellij-sbt-and-lift/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the patch utility to remove a patch on Magento Enterprise Edition</title>
		<link>http://blog.morroni.com/2010/07/16/using-the-patch-utility-to-remove-a-patch-on-magento-enterprise-edition/</link>
		<comments>http://blog.morroni.com/2010/07/16/using-the-patch-utility-to-remove-a-patch-on-magento-enterprise-edition/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 15:02:07 +0000</pubDate>
		<dc:creator>jwatson</dc:creator>
				<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://blog.morroni.com/?p=234</guid>
		<description><![CDATA[I am making an assumption here that you already know the normal forward-usage of the patch command. If you&#8217;re unversed In case you didn&#8217;t want to decipher the entire man page just yet, you&#8217;re in luck. I came across an instance where I had to remove a previous patch file from the Magento Enterprise code-base. [...]]]></description>
			<content:encoded><![CDATA[<p>I am making an assumption here that you already know the normal forward-usage of the patch command. If you&#8217;re unversed In case you didn&#8217;t want to decipher the entire man page just yet, you&#8217;re in luck. I came across an instance where I had to remove a previous patch file from the Magento Enterprise code-base. The patch was originally applied as so:</p>
<p>patch -p0 &lt; firstpatch.patch</p>
<p>Problems ensued, and I was given a new patch, however it was a cumulative patch so it couldn&#8217;t be laid over the first patch. So how to remove? After a man-page reading, it&#8217;s quite a breeze. You need the original patch to be removed, and use the patch number you used in the first patching instance. In this case it equates to the following:</p>
<p>patch -R -p0 &lt; firstpatch.patch</p>
<p>now you can add the new patch.</p>
<p>patch -p0 &lt; secondpatch.patch</p>
<p>Hopefully this will save someone a man-page reading on a small terminal in a dimly lit server room. <img src='http://blog.morroni.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.morroni.com/2010/07/16/using-the-patch-utility-to-remove-a-patch-on-magento-enterprise-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

