<?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>morrisdev.com</title>
	<atom:link href="http://morrisdev.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://morrisdev.com</link>
	<description></description>
	<lastBuildDate>Fri, 18 Nov 2011 20:54:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Securing documents with ASP.net handlers</title>
		<link>http://morrisdev.com/2011/10/securing-documents-with-handlers/</link>
		<comments>http://morrisdev.com/2011/10/securing-documents-with-handlers/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 04:21:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net]]></category>

		<guid isPermaLink="false">http://morrisdev.com/?p=86</guid>
		<description><![CDATA[A client had been posting training files and some order templates in an unmarked directory on their website. None of them are really all that secret, but some contact lists and other things got picked up by google. So, they&#8217;ve got pages and pages on their intranet that has links to these docs.  Templates for [...]]]></description>
			<content:encoded><![CDATA[<p>A client had been posting training files and some order templates in an unmarked directory on their website. None of them are <em>really</em> all that secret, but some contact lists and other things got picked up by google.<br />
<span id="more-86"></span></p>
<p>So, they&#8217;ve got pages and pages on their intranet that has links to these docs.  Templates for new orders, insurance forms, calculators for price lists, etc&#8230;  So, I can&#8217;t just move them.  They are a mixture of doc, xls, docx, xlsx, etc&#8230; just random crap.</p>
<p>Initially, I figured, I&#8217;ll just put in a nice handler to catch things first (which is so easy that it took me all damn day &#8211; I&#8217;ll get into that later!)</p>
<p>Here was the real problem:  The intranet site it is written in classic asp, so the session variables, so my standard &#8220;if session(&#8220;loggedin&#8221;)&lt;&gt;true then goto login page&#8221; isn&#8217;t going to work.  Classic asp doesn&#8217;t have the ease of a handler and if there is a way to do it, well&#8230;. I really don&#8217;t want to know.  Seriously, I&#8217;m not going to learn how to write something complicated in a dead language.  I&#8217;d prefer to learn something new that will be useful in the future.</p>
<p>So, sticking with the .Net handler idea.  Here&#8217;s the theory I decided upon.  Yes, I know, it is horrible, but here it is:</p>
<p>All I&#8217;m going to do is check to see if the referring page was within the intranet site.   Think about it&#8230;  If you really really really wanted to, you could write a script that would rip out those files, but seriously&#8230;.  this is about all it really needs and I&#8217;m not going to make a new login page.</p>
<p>Here&#8217;s how I started:</p>
<pre class="brush: vb; ">

Imports Microsoft.VisualBasic
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.IO

Public Class secureDocs : Implements IHttpHandler

    Dim mimes As New contentTypes

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

        Dim f, strReqPath, filePath, sql As String
        strReqPath = context.Request.Path
        Dim ref As String = context.Request.ServerVariables(&quot;HTTP_REFERER&quot;)
        Dim fileOK As Boolean = False

        Dim strliveSite As String = ConfigurationManager.AppSettings(&quot;public-domain&quot;)  &#039;I keep these values in my web.config as appsettings
        Dim strlocalSite As String = ConfigurationManager.AppSettings(&quot;local-domain&quot;)

        Dim liveSite As Integer = InStr(ref, &quot;http://&quot; &amp;amp;amp;amp; strliveSite)
        Dim localSite As Integer = InStr(ref, &quot;http://&quot; &amp;amp;amp;amp; strlocalSite)
        If liveSite &gt; 0 Or localSite &gt; 0 Then fileOK = True

        If Not fileOK Then
&#039; normally, I&#039;d be checking to see if the user was logged in
&#039; and then send them to a login page, but I just don&#039;t have
&#039; the budget for that right now.  so....
            context.Response.Write(&quot;THIS IS A SECURE FILE&quot;)
            Exit Sub
        End If

        f = context.Request.Path.Substring(context.Request.Path.LastIndexOf(&quot;/&quot;) + 1)
        filePath = context.Request.PhysicalPath

        Dim strContentType As String
        Dim extension As String = context.Request.Path.Substring(context.Request.Path.LastIndexOf(&quot;.&quot;) + 1)
        strContentType = mimes.getContentType(extension)

        Try

            Dim file As New FileInfo(filePath)
            Dim len As Integer = file.Length

            context.Response.Clear()
            context.Response.AddHeader(&quot;Content-Disposition&quot;, &quot;inline; filename=&quot; &amp;amp;amp;amp; file.Name)
            context.Response.AddHeader(&quot;Content-Length&quot;, file.Length.ToString())
            context.Response.ContentType = strContentType
            context.Response.WriteFile(file.FullName)

            Try
                context.Response.End()
            Catch ex As Exception

            End Try

        Catch ex As Exception

            context.Response.Write(&quot;FILE DOES NOT EXIST&quot;)
            Exit Sub
        End Try

    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

End Class
Class contentTypes
    Dim _types As New StringDictionary
    Sub New()
        makeKeys()
    End Sub
    Public ReadOnly Property getContentType(myExtension As String) As String
        Get

            Return _types.Item(myExtension)

        End Get

    End Property
    Sub makeKeys()

        _types.Add(&quot;acx&quot;, &quot;application/internet-property-stream&quot;)
        _types.Add(&quot;ai&quot;, &quot;application/postscript&quot;)
        _types.Add(&quot;aif&quot;, &quot;audio/x-aiff&quot;)

      &#039;---- a whole bunch more mime types here -----&#039;

        _types.Add(&quot;z&quot;, &quot;application/x-compress&quot;)
        _types.Add(&quot;zip&quot;, &quot;application/zip&quot;)

    End Sub

End Class
</pre>
<p>Now, that file I stick into my app_code directory and I can then reference it by putting it in my web.config file.</p>
<p>it needs to be in two spots:</p>
<pre class="brush: xml; ">

 &lt;system.web&gt;
     &lt;httpHandlers&gt;
			&lt;add verb=&quot;*&quot; path=&quot;/client_files/*&quot; type=&quot;secureDocs&quot; /&gt;
			&lt;add verb=&quot;*&quot; path=&quot;/someOtherDirectory/*&quot; type=&quot;secureDocs&quot; /&gt;
      &lt;/httpHandlers&gt;
  &lt;/system.web&gt;
</pre>
<p>And you&#8217;re also going to need to tell the server that you don&#8217;t care what the file is, but you absolutely MUST kick off aspnet when you are in the<br />
directories where these files are.  Otherwise, IIS will see .doc or .xls and just give it to them without hitting your handler.  </p>
<pre class="brush: xml; ">

	&lt;system.webServer&gt;
		&lt;handlers&gt;
			&lt;add name=&quot;sd&quot; path=&quot;client_files/*&quot; verb=&quot;*&quot; modules=&quot;IsapiModule&quot;
				 scriptProcessor=&quot;C:\windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll&quot; resourceType=&quot;Unspecified&quot;
				 preCondition=&quot;classicMode,runtimeVersionv4.0,bitness64&quot; /&gt;
		&lt;/handlers&gt;
	&lt;/system.webServer&gt;
</pre>
<p>HOWEVER&#8230;.  If you run a shitty old server that still has IIS 6.0 on it, this latter module doesn&#8217;t work.  </p>
<p>You need to open IIS on the server, hit the properties for your website, go to &#8220;home direc</p>
]]></content:encoded>
			<wfw:commentRss>http://morrisdev.com/2011/10/securing-documents-with-handlers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Executing Asynchronous Functions from ASP.NET</title>
		<link>http://morrisdev.com/2011/10/executing-asynchronous-functions-from-asp-net/</link>
		<comments>http://morrisdev.com/2011/10/executing-asynchronous-functions-from-asp-net/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 04:14:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Asynchronous]]></category>
		<category><![CDATA[email]]></category>

		<guid isPermaLink="false">http://morrisdev.com/?p=84</guid>
		<description><![CDATA[Don&#8217;t make your users wait unnecessarily. For example, a page where you generate a PDF and send it to someone else. Hand the job off to an asynchronous process and move on. There are a lot of ways this can be done, but the easiest seems to be using a Thread. However, you run into [...]]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t make your users wait unnecessarily.  For example, a page where you generate a PDF and send it to someone else.  Hand the job off to an asynchronous process and move on.<br />
<span id="more-84"></span><br />
There are a lot of ways this can be done, but the easiest seems to be using a Thread.  However, you run into a problem with having parameters.  A parameterizedThread can actually only have ONE parameter&#8230;. but it can be an object, so that means you can jam all sorts of cool things in there.</p>
<p>Here is a example of a parameterized thread</p>
<p>First, you make a nice class to hold your parameters:</p>
<pre class="brush: vb; ">

    Class mailParams
        Public mTo As String
        Public mFrom As String
        Public subject As String
        Public body As String
        Public attachmentMemoryStream As MemoryStream
        Public attachmentFileName As String
        Public archiveFile As String
    End Class
</pre>
<p>Then we have a subroutine attached to a button that does a fire-and-forget email.  Basically, it just says, &#8220;send that..&#8221; and continues to process the page.  You get refreshed practically instantly.</p>
<pre class="brush: vb; ">

protected sub btnSendMail_OnClick(sender as object, e as eventargs) handles btnSendMail.click

    Dim objMailParams As New mailParams
    objMailParams.mTo = strTo
    objMailParams.mFrom = strFrom
    objMailParams.subject = strSubject
    objMailParams.body = strMessage

     Dim asyncMailObj As New System.Threading.ParameterizedThreadStart(AddressOf sendAnEmail)
     Dim t As New System.Threading.Thread(asyncMailObj)
     t.Start(objMailParams)

end sub
</pre>
<p>That ParameterizedThreadStart simply assigns a CPU thread to kick off the subroutine &#8220;sendAnEmail&#8221;.  I preloaded the class of parameters and used the entire class as a single object parameter.</p>
<pre class="brush: vb; ">

sub sendAnEmail(obj as object)
       Dim mp As mailParams = obj

        &#039;===  I keep all my settings for mail and connection strings in a class called DataLayer.
        Dim myServer As New DataLayer.mailSettings

        Dim objMM As New MailMessage
        Dim objSMTP As New SmtpClient

        Dim m As New MailMessage()
        Dim mTo As New System.Net.Mail.MailAddress(mp.mTo)
        Dim mFrom As New System.Net.Mail.MailAddress(mp.mFrom)

        objMM.To.Add(mTo)
        objMM.From = mFrom
        objMM.IsBodyHtml = False
        objMM.Priority = MailPriority.Normal
        objMM.Subject = mp.subject
        objMM.Body = mp.body
        objSMTP.Host = myServer.smtpServer
        objSMTP.DeliveryMethod = SmtpDeliveryMethod.Network
        objSMTP.Credentials = New System.Net.NetworkCredential(myServer.smtpUser, myServer.smtpPassword)
        objSMTP.EnableSsl = False
        objSMTP.Send(objMM)

end sub
</pre>
<p>Now, this is a very simple example.  The reason I started doing this is because I was generating PDF invoices by screen captures, then sending an archive of the PDF up to Amazon&#8217;s S3 storage, then emailing the pdf to the client.  Some of the invoices were 20 pages long.  The server can handle the workload, but people couldn&#8217;t handle the wait.  So, fire-and-forget.</p>
<p>Later on, if it becomes a problem, I&#8217;ll see about putting in some kind of confirmation emails that say whether or not the invoice actually got sent.  </p>
<p>If it becomes a server memory issue, I&#8217;ll update this post with whatever solution I came up with next!</p>
]]></content:encoded>
			<wfw:commentRss>http://morrisdev.com/2011/10/executing-asynchronous-functions-from-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft XPath problem with Amazon Web Services (AWS) XML</title>
		<link>http://morrisdev.com/2011/10/microsoft-xpath-problem-with-amazon-web-services-aws-xml/</link>
		<comments>http://morrisdev.com/2011/10/microsoft-xpath-problem-with-amazon-web-services-aws-xml/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 04:10:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Amazon]]></category>

		<guid isPermaLink="false">http://morrisdev.com/?p=81</guid>
		<description><![CDATA[This isn&#8217;t directly just with Amazon, but it is a problem we ran into when working with a VB application using Amazon&#8217;s Route 53 DNS Service. Our application uses DataTables to create drop down menus, list values, etc&#8230;  Amazon&#8217;s result sets are in XML.  So, the best way to dig through an XML file is [...]]]></description>
			<content:encoded><![CDATA[<p>This isn&#8217;t directly just with Amazon, but it is a problem we ran into when working with a VB application using Amazon&#8217;s Route 53 DNS Service.<br />
<span id="more-81"></span><br />
Our application uses DataTables to create drop down menus, list values, etc&#8230;  Amazon&#8217;s result sets are in XML.  So, the best way to dig through an XML file is to use XPath queries.  It&#8217;s pretty easy&#8230; unless Microsoft makes a decision to ruin your day with a &#8220;bug&#8221; who&#8217;s &#8220;Behavior is by Design&#8221;.</p>
<p>Basically, if you leave the default namespace on the leading line of the XML doc, XPath queries don&#8217;t work.  They don&#8217;t error, they just don&#8217;t return anything.</p>
<p><a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;313372">http://support.microsoft.com/default.aspx?scid=kb;en-us;313372</a></p>
<pre class="brush: vb; ">

Dim contents As String = reader.ReadToEnd()
&#039;contents = contents.Replace(&quot;&lt;!--?xml version=&quot;&quot;1.0&quot;&quot;?--&gt;&quot;, &quot;&quot;)
contents = System.Text.RegularExpressions.Regex.Replace(contents, &quot;(^\s+)|(\s+$)|(\s+(?=\s.))&quot;, &quot;&quot;)
contents = contents.Replace(&quot;&gt; contents = contents.Replace(vbLf, &quot;&quot;)
contents = contents.Replace(&quot;xmlns=&quot;&quot;https://route53.amazonaws.com/doc/2010-10-01/&quot;&quot;&quot;, &quot;&quot;)
</pre>
<p>So, I got rid of the white spaces.  I got rid of the line feeds and I removed their xmlns.</p>
<p>Suddenly, I could do this:</pre>
<pre class="brush: vb; ">

Dim xmlDoc As New Xml.XmlDocument
        xmlDoc.LoadXml(contents)
        Dim nodeList As Xml.XmlNodeList

        &#039; xmlDoc.SelectNodes(&quot;ListResourceRecordSetsResponse/ResourceRecordSets/ResourceRecordSet&quot;).Count
        Dim pattern As String = &quot;ListResourceRecordSetsResponse/ResourceRecordSets/ResourceRecordSet&quot;

nodeList = xmlDoc.SelectNodes(pattern)
</pre>
<p>And get a nice set of records.  From there it was just a lot of grunt work to get it moving, but no more spending all day long trying to get past that idiotic empty recordset.</p>
<p>Thanks Microsoft.  </p>
]]></content:encoded>
			<wfw:commentRss>http://morrisdev.com/2011/10/microsoft-xpath-problem-with-amazon-web-services-aws-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Streaming Video Using CloudFront</title>
		<link>http://morrisdev.com/2011/10/streaming-video-using-cloudfront/</link>
		<comments>http://morrisdev.com/2011/10/streaming-video-using-cloudfront/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 02:40:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Amazon]]></category>
		<category><![CDATA[CloudFront]]></category>
		<category><![CDATA[Featured Items]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://morrisdev.com/?p=46</guid>
		<description><![CDATA[Posting a video on your website is quite simple, but "Streaming" a video is not as easy as you might expect.  There are a variety of services, such as YouTube, that do this for you, but they are not exactly what you want on your professional website.   Beyond that, it can really slam your site to have a large video get downloaded by a lot of people.
Finally, if you have a large video, it is nice to be able to skip to the middle rather than sit around and wait for the entire thing to load.  Streaming servers take care of this problem for you.  Amazon's CloudFront service is key.

Here's a quick tutorial for how to do it.]]></description>
			<content:encoded><![CDATA[<p>Posting a video on your website is quite simple, but &#8220;Streaming&#8221; a video is not as easy as you might expect.  There are a variety of services, such as YouTube, that do this for you, but they are not exactly what you want on your professional website.   Beyond that, it can really slam your site to have a large video get downloaded by a lot of people.<br />
<span id="more-46"></span></p>
<p>Finally, if you have a large video, it is nice to be able to skip to the middle rather than sit around and wait for the entire thing to load.  Streaming servers take care of this problem for you.  Amazon&#8217;s CloudFront service is key.</p>
<p><a href="?page_id=62">Here&#8217;s a quick tutorial for how to do it.</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://morrisdev.com/2011/10/streaming-video-using-cloudfront/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon&#8217;s Route53 DNS Service</title>
		<link>http://morrisdev.com/2011/10/intellievent-lighting/</link>
		<comments>http://morrisdev.com/2011/10/intellievent-lighting/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 22:59:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Featured Items]]></category>

		<guid isPermaLink="false">http://morrisdev.com/?p=19</guid>
		<description><![CDATA[Today, ZoneEdit, who I&#8217;ve been using for 11years, failed me once again. Even with 4 nameservers, it was the web-forward gadget that blew, cutting off a lot of business. The client had a fit and I had to find something more reliable. We use Amazon S3 to handle all file management for our sites and [...]]]></description>
			<content:encoded><![CDATA[<p>Today, ZoneEdit, who I&#8217;ve been using for 11years, failed me once again. Even with 4 nameservers, it was the web-forward gadget that blew, cutting off a lot of business. The client had a fit and I had to find something more reliable.<br />
<span id="more-19"></span><br />
 We use Amazon S3 to handle all file management for our sites and they have been awesome. So, just for fun, I googled Amazon and DNS to see if they had any DNS services and came up with this <a href="http://aws.amazon.com/route53/">Route53 beta page</a>.</p>
<p>So, nothing like a client emergency to try something brand-spankin&#8217; new. I signed up and got to work. The first thing I discovered was that there is no gui. None. No nice module in the amazon console. Nada. You&#8217;ve got to make your own damn XML commands and there is a little perl script that will help you.</p>
<p>ugh&#8230;</p>
<p>Luckily, I know there are about a billion amazon api fiends out there who can&#8217;t help but put free stuff together and I found a great one: <a href="https://www.interstate53.com/">https://www.interstate53.com</a></p>
<p>So here&#8217;s how it works and how Interstate53 plays into it.</p>
<p>Amazon needs a secure connection using it&#8217;s access key pairs.  Then, once that is established, you can request records from the Route53 database.  Those requests for data and requests to make updates and get confirmations, all of that is done with little XML commands sent to Route53.  &#8221;Interstate53&#8243; simply provides a GUI so you don&#8217;t have to write the commands.</p>
<p>Sure, if you need to automate some things, you can get out your coding gloves and write up something using one of many APIs (which is what I did with S3).  However, I just wanted the benefit of a fast and stable DNS server.  Interstate53 handles it.</p>
<p>The first thing you see when you come to the page is the login.</p>
<p><img class="alignnone size-medium wp-image-285" title="Interstate53" src="http://morrisdev.files.wordpress.com/2011/03/login.jpg?w=300" alt="" width="300" height="151" /></p>
<p>You add your Access Key and your &#8220;Secret Key&#8221;.  Those come from your accounts page at Amazon: <a href="https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&amp;action=access-key">https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&amp;action=access-key</a></p>
<p>On that accounts page, you can actually make an extra security key, just for this instance if you are concerned about security.  (I made one for this instance)  From what they say at Interstate53, it is just to perform the connection with amazon&#8230; which is what I do on my own server.  still&#8230;</p>
<p>Anyway, once you login, you see the domains you have registered with Amazon Route53:</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/domain-list.jpg"><img class="alignnone size-medium wp-image-286" title="domain list" src="http://morrisdev.files.wordpress.com/2011/03/domain-list.jpg?w=300" alt="" width="300" height="141" /></a></p>
<p>It is pretty simple, just click &#8220;Add Zone&#8221;, a little popup appears asking for the new domain name.  You add it and it is then on the list.</p>
<p>Click on the domain name and then you&#8217;ll see all the details about it.</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/editzone.jpg"><img class="alignnone size-medium wp-image-287" title="editZone" src="http://morrisdev.files.wordpress.com/2011/03/editzone.jpg?w=300" alt="" width="300" height="146" /></a></p>
<p>Then click to add a record:</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/addarec.jpg"><img class="alignnone size-medium wp-image-288" title="addArec" src="http://morrisdev.files.wordpress.com/2011/03/addarec.jpg?w=300" alt="" width="300" height="145" /></a></p>
<p>You can see, there is every type of record available to you.  I&#8217;m just going to do an A record.</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/addarec2.jpg"><img class="alignnone size-medium wp-image-289" title="addArec2" src="http://morrisdev.files.wordpress.com/2011/03/addarec2.jpg?w=300" alt="" width="300" height="144" /></a></p>
<p>Hit save and that&#8217;s it&#8230;</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/zone.jpg"><img class="alignnone size-medium wp-image-290" title="zone" src="http://morrisdev.files.wordpress.com/2011/03/zone.jpg?w=300" alt="" width="300" height="166" /></a></p>
<p>oh.. no&#8230;  you&#8217;ve still got to hit &#8220;Accept Changes&#8221;, and then, that&#8217;s it&#8230;</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/zonechanged.jpg"><img class="alignnone size-medium wp-image-291" title="zoneChanged" src="http://morrisdev.files.wordpress.com/2011/03/zonechanged.jpg?w=300" alt="" width="300" height="142" /></a></p>
<p>Damn&#8230; not quite.  So, you might be tempted to hit &#8220;reload&#8221;, DON&#8217;T.  I know, seems like common sense, like you need to wait for the page to refresh&#8230;  no.  That means, &#8220;reload the data from Amazon right over all the stuff I just did&#8221;.</p>
<p>No, hover your mouse over the right hand column and you&#8217;ll see a new button appear</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/zonepush.jpg"><img class="alignnone size-medium wp-image-293" title="zonePush" src="http://morrisdev.files.wordpress.com/2011/03/zonepush.jpg?w=300" alt="" width="300" height="146" /></a></p>
<p>THAT will do it.  At this point, Interstate53 takes all your changes, wraps them up in a nice XML command package and sends it to Amazon.  Amazon then updates all the DNS servers, syncing them across the globe, and sends Interstate53 a nice confirmation.</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/zonepush2.jpg"><img class="alignnone size-medium wp-image-294" title="zonePush2" src="http://morrisdev.files.wordpress.com/2011/03/zonepush2.jpg?w=300" alt="" width="300" height="145" /></a></p>
<p>Finally, you&#8217;re all set and your files are &#8220;Insync&#8221;</p>
<p><a href="http://morrisdev.files.wordpress.com/2011/03/insync.jpg"><img class="alignnone size-medium wp-image-295" title="insync" src="http://morrisdev.files.wordpress.com/2011/03/insync.jpg?w=300" alt="" width="300" height="145" /></a></p>
<p>That&#8217;s it.  At least as far as the Amazon part is concerned.</p>
<p>To actually make the change live, just go to your domain registrar and change the name servers to the ones listed on the edit page for the domain.</p>
<p>So, it&#8217;s been a single day.  I can&#8217;t give you a really good judgment, but that&#8217;s what Interstate53 has for you and that&#8217;s how it works with Amazon.</p>
]]></content:encoded>
			<wfw:commentRss>http://morrisdev.com/2011/10/intellievent-lighting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

