<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Ben Barreth</title>
        <link>http://geekswithblogs.net/BenBarreth/Default.aspx</link>
        <description>Ideas, Startups, Tech</description>
        <language>en-US</language>
        <copyright>Ben Barreth</copyright>
        <managingEditor>support@geekswithblogs.net</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Ben Barreth</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/BenBarreth/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>The New Google Maps &amp;ndash; Better than you might think</title>
            <link>http://geekswithblogs.net/BenBarreth/archive/2013/05/24/the-new-google-maps-ndash-better-than-you-might-think.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/BenBarreth/archive/2013/05/24/the-new-google-maps-ndash-better-than-you-might-think.aspx'&gt;http://geekswithblogs.net/BenBarreth/archive/2013/05/24/the-new-google-maps-ndash-better-than-you-might-think.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;So today I had a nice surprise waiting in my inbox: &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_4.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_1.png" width="440" height="514" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I dove right in: &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_6.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_2.png" width="694" height="415" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;A simple search for “coffee, Westport, Kansas City, MO” yields the following: &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_8.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_3.png" width="690" height="413" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Notice none of the businesses are highlighted in red, meaning that none of them are my “anchor” right now. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;This is where it gets interesting. After clicking on &lt;a href="http://www.oddlycorrect.com/index.html"&gt;Oddly Correct Coffee Bar&lt;/a&gt;, the businesses shown on the map immediately change to the following: &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_20.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_9.png" width="691" height="536" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Oddly Correct Coffee Bar is red as my anchor business with additional details in the top left panel. From the panel in the top left I can jump to directions or reviews of the business very quickly. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;At this point: What if I change my mind about what I’m looking for? I decide to click on “&lt;a href="http://www.cupinis.com/"&gt;Cupini’s&lt;/a&gt;” – one of my favorite meeting places, right opposite the &lt;a href="http://fiber.google.com/about/"&gt;Google Fiberspace&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_22.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_10.png" width="691" height="537" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As expected, Cupini’s is now shown in the top left panel, but Google Maps remembers that I first began my search looking for “coffee”, so it keeps the coffee shops highlighted in larger dark bold as the main emphasis. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Now let’s go way off of our initial search path and click on the Frank Rushton Elementary School:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note&lt;/strong&gt;: All ugly red circles added by myself for emphasis.  &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_26.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_12.png" width="690" height="536" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;New schools have been added in bold light gray to the map, but again, the underlying theme is still “coffee shops”. &lt;/p&gt;  &lt;p&gt;The cool thing to mention here is that I’m enjoying this experience. I feel like I’m browsing a directory of services, not looking at a map. When I click on the different businesses, I’m immediately thrown into the context of that additional click, without losing my place from my initial thought of “coffee”. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;But what if I want to abandon my initial pursuit of looking for a “coffee shop”? How do I remove that anchor and initiate a completely different line of inquiry? In the detail panel for the Frank Rushton Elementary School, I click on “kindergarten”:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_38.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_18.png" width="690" height="536" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Suddenly my bold anchored map locations have changed. My primary inquiry is now “kindergarten” and the original path of inquiry into “coffee shops” has been abandoned. Perfect! &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_40.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_19.png" width="686" height="532" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Now if I return to my initial search, but this time I opt to filter by my circles: &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_12.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_5.png" width="680" height="453" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I see a review by a friend of a coffee shop with “Westport” in the name, but the coffee shop isn’t actually present in Westport. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Filtered by “Experts” or Top Reviewers:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_28.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_13.png" width="665" height="517" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I can also click anywhere on the map (even where business names do not appear) and the small thumbnail of the street view is displayed in the detail panel: &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_30.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_14.png" width="658" height="511" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;After further clicking on the “street view” in the detail panel …&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Again&lt;/strong&gt;: Ugly red notes added by myself for emphasis.  &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_34.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_16.png" width="653" height="508" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There are some really nice new details added to the street view, like the street name “embedded” into the roads so you never get that “what street is this?” feeling. The mouse pointer is a much larger circle and feels more fun and tactile than the previous treatment.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Back in the map view, you may have noticed the persistent link to Google Earth: &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_36.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_17.png" width="650" height="505" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After clicking the Google Earth link (and some quick tilting): &lt;/p&gt;  &lt;p&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_42.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/831a06f9cb91_6F9E/image_thumb_20.png" width="651" height="504" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;:&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;I love the way the new Google Maps focuses on browsing. Each click changes your context, but not in a way that you feel lost or that you can’t return. Each click &lt;em&gt;feels like&lt;/em&gt; I’m moving towards a goal, because I’m focusing and refocusing my context each time, narrowing my search with each click. It’s surprisingly fun! &lt;/p&gt;  &lt;p&gt;The new Google Maps also seems to more dramatically elevate businesses that have a strong online presence, whether that be via reviews from people in your circles, so called “experts” that have written about them or presumably from traditional google search rankings. This makes it more important than ever to have a strong, positive, representation of your business in every possible online avenue. &lt;/p&gt;  &lt;p&gt;The only negative takeaway might be that, by very definition, this contextual focusing of your search also blurs information that Google Maps deems less relevant. I could see some businesses getting lost in the blur if they don’t quite match what the maps algorithm is looking for. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://maps.google.com/help/maps/helloworld/desktop/preview/" target="_blank"&gt;Request your own invite&lt;/a&gt; to the new Google Maps today!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/BenBarreth/aggbug/152986.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Barreth</dc:creator>
            <guid>http://geekswithblogs.net/BenBarreth/archive/2013/05/24/the-new-google-maps-ndash-better-than-you-might-think.aspx</guid>
            <pubDate>Fri, 24 May 2013 15:12:45 GMT</pubDate>
            <comments>http://geekswithblogs.net/BenBarreth/archive/2013/05/24/the-new-google-maps-ndash-better-than-you-might-think.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/BenBarreth/comments/commentRss/152986.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/BenBarreth/services/trackbacks/152986.aspx</trackback:ping>
        </item>
        <item>
            <title>How to create a nightly backup of your SQL Azure database using the new Azure Mobile Services (Preview)</title>
            <category>Azure</category>
            <category>Azure Mobile Services</category>
            <category>SQL Azure</category>
            <link>http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure.aspx'&gt;http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/windows_azure_technical_support_wats_team/archive/2013/03/04/different-ways-to-backup-your-windows-azure-sql-database.aspx" target="_blank"&gt;This handy MSDN blog post&lt;/a&gt; already details 8 (yes EIGHT) different ways to backup your SQL Azure Database. But the easiest technique of all, by &lt;a href="http://fabriccontroller.net/blog/posts/build-your-own-sql-server-agent-for-windows-azure-sql-database-with-the-scheduler/" target="_blank"&gt;scheduling a job using Windows Azure Mobile Services&lt;/a&gt;, isn’t even mentioned. Perhaps this is because WAMS is so new and still in Preview mode as of right now. &lt;/p&gt;  &lt;p&gt;This technique does not use a 3rd party and is 100% cloud - it doesn’t require any traditional server-hosted resources to complete the backup and stores the database backup itself in a .bacpac file in an Azure-hosted storage container of your choice.    &lt;br /&gt;    &lt;br /&gt;(Please Note: &lt;a href="http://blogs.msdn.com/b/windows_azure_technical_support_wats_team/archive/2013/03/04/different-ways-to-backup-your-windows-azure-sql-database.aspx" target="_blank"&gt;as per Microsoft&lt;/a&gt;, “the .BACPAC file is not equivalent to a Backup as it does not contain Transaction Log and History Data and is not transactionally consistent by itself.”)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;To perform a SQL Azure Database Backup Using Windows Azure Mobile Services: &lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Log into Azure and navigate to the “Mobile Services” section.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_2.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb.png" width="438" height="245" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Click the “New” button. The “Compute &amp;gt; Mobile Service &amp;gt; Create” menu should appear. Click “Create”.      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Name your new Mobile Service something unique to your specific account. Select the Database option and make sure you select the same Region in which your database resides.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_6.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb_2.png" width="363" height="258" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Enter your Database login details. This will grant the service access to the database to create a randomized new username that is specific to that Azure Mobile Service. You should be able to see the random user listed in the database now:      &lt;br /&gt;      &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_20.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb_9.png" width="345" height="392" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;(Note: As mentioned &lt;a href="http://fabriccontroller.net/blog/posts/build-your-own-sql-server-agent-for-windows-azure-sql-database-with-the-scheduler/" target="_blank"&gt;on the blog of Fabric Controller&lt;/a&gt;, this user doesn’t have access to run stored procedures as of yet. If you want to run a stored proc in a nightly job, make sure you grant execute access for this user to run that specific stored proc. )       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Select your new Mobile Service and click “Scheduler”, then “Create a Scheduled Job”. Enter your own job name, like “NightlyDBBackup” and set the schedule to something like every 1 day at midnight.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_12.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb_5.png" width="470" height="336" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Now click into the job you’ve created and select “Script” from the top nav:      &lt;br /&gt;      &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_14.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb_6.png" width="557" height="310" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Copy and paste the script below. Obviously, don’t forget to swap out all the variables in &amp;lt;brackets&amp;gt; at the beginning with your own. &lt;strong&gt;Note: Run this script at your own risk.&lt;/strong&gt;       &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;function NightlyDBBackup(){       &lt;br /&gt;    &lt;br /&gt;    console.log('Start of NightlyDBBackup task...');       &lt;br /&gt;    &lt;br /&gt;    var azure = require('azure');       &lt;br /&gt;    var request = require('request');       &lt;br /&gt;    var dbName = '&amp;lt;azure database name&amp;gt;';       &lt;br /&gt;    var dbUserName = '&amp;lt;azure database user name&amp;gt;';       &lt;br /&gt;    var dbPassword = '&amp;lt;azure database user password&amp;gt;';       &lt;br /&gt;    var dbServerName = '&amp;lt;azure database server name&amp;gt;.database.windows.net';       &lt;br /&gt;    var storageAccountName = '&amp;lt;azure storage account&amp;gt;';       &lt;br /&gt;    var storageAccountKey = '&amp;lt;azure storage account key - XXXXXXXXXXXXXXXXXXXXXXXXX&amp;gt;';       &lt;br /&gt;    var storageHost = storageAccountName + '.blob.core.windows.net';       &lt;br /&gt;    var storageContainerName = '&amp;lt;azure storage container name where you want to store the nightly DB backups&amp;gt;';       &lt;br /&gt;    &lt;br /&gt;    // The code below saves a different file for every day of the month (up to 31 backup files).       &lt;br /&gt;    // To save a file for every day of the week, use d.getDay(); (7 backup files)       &lt;br /&gt;    var d=new Date();       &lt;br /&gt;    var dayOfMonth = d.getDate();       &lt;br /&gt;    var backupFileName = 'DayOfMonthBackup_' + dayOfMonth + '.bacpac';       &lt;br /&gt;    var blobService = azure.createBlobService(storageAccountName, storageAccountKey, storageHost);       &lt;br /&gt;      &lt;br /&gt;   /* endpoint depends on the Datacenter of the DB       &lt;br /&gt;        North Central US   &lt;a href="https://ch1prod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://ch1prod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;        South Central US   &lt;a href="https://sn1prod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://sn1prod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;        North Europe       &lt;a href="https://db3prod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://db3prod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;        West Europe        &lt;a href="https://am1prod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://am1prod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;        East Asia          &lt;a href="https://hkgprod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://hkgprod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;        Southeast Asia     &lt;a href="https://sg1prod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://sg1prod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;        East US            &lt;a href="https://bl2prod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://bl2prod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;        West US            &lt;a href="https://by1prod-dacsvc.azure.com/DACWebService.svc/Export"&gt;https://by1prod-dacsvc.azure.com/DACWebService.svc/Export&lt;/a&gt;       &lt;br /&gt;    */       &lt;br /&gt;    var datacenterEndpoint = "&lt;a href="https://by1prod-dacsvc.azure.com/DACWebService.svc/Export&amp;quot;;"&gt;https://by1prod-dacsvc.azure.com/DACWebService.svc/Export";&lt;/a&gt;       &lt;br /&gt;    &lt;br /&gt;    // Look for existing blob file with same name. If found, delete it.       &lt;br /&gt;    blobService.listBlobs(storageContainerName, function(error, blobs){       &lt;br /&gt;        if(!error){       &lt;br /&gt;            console.log('Attempting to find existing blob named: ' + backupFileName + ' in container ' + storageContainerName + '.');       &lt;br /&gt;            &lt;br /&gt;            for(var index in blobs){       &lt;br /&gt;                if (blobs[index].name === backupFileName){       &lt;br /&gt;                    &lt;br /&gt;                    console.log("Blob name found in storage: " + blobs[index].name);       &lt;br /&gt;                    console.log("Name of blob backup file according to todays day: " + backupFileName);       &lt;br /&gt;                    &lt;br /&gt;                    blobService.deleteBlob(       &lt;br /&gt;                        storageContainerName       &lt;br /&gt;                        , backupFileName       &lt;br /&gt;                        , function(){       &lt;br /&gt;                            if (!error)  {       &lt;br /&gt;                                console.log('deletion of blob ' + storageContainerName + ' successfully queued.');       &lt;br /&gt;                            }       &lt;br /&gt;                            else if (error) {       &lt;br /&gt;                                console.error('deletion of blob ' + storageContainerName + ' failed:' + error);       &lt;br /&gt;                            }       &lt;br /&gt;                        }       &lt;br /&gt;                    );       &lt;br /&gt;                }       &lt;br /&gt;            }       &lt;br /&gt;        }       &lt;br /&gt;    });       &lt;br /&gt;    &lt;br /&gt;    // Now initiate backup to .bacpac file       &lt;br /&gt;    var body = {       &lt;br /&gt;        BlobCredentials : {       &lt;br /&gt;            __type : "BlobStorageAccessKeyCredentials:#Microsoft.SqlServer.Management.Dac.ServiceTypes",       &lt;br /&gt;            Uri : "&lt;a href="https://&amp;quot;"&gt;https://"&lt;/a&gt; + storageHost + "/" + storageContainerName + "/" + backupFileName,       &lt;br /&gt;            StorageAccessKey : storageAccountKey       &lt;br /&gt;        },       &lt;br /&gt;        ConnectionInfo: {       &lt;br /&gt;            DatabaseName : dbName,       &lt;br /&gt;            Password : dbPassword,       &lt;br /&gt;            ServerName : dbServerName,       &lt;br /&gt;            UserName : dbUserName       &lt;br /&gt;        }       &lt;br /&gt;    }       &lt;br /&gt;    &lt;br /&gt;    request.post({       &lt;br /&gt;        uri: datacenterEndpoint,       &lt;br /&gt;        headers: {       &lt;br /&gt;            'Content-Type': 'application/json',       &lt;br /&gt;            },       &lt;br /&gt;        body: JSON.stringify(body)       &lt;br /&gt;        }, function(e, r, b) {       &lt;br /&gt;            if (e || r.statusCode != 200) {       &lt;br /&gt;                console.error('backup failed:', e || r.statusCode, b);       &lt;br /&gt;            }       &lt;br /&gt;            else {       &lt;br /&gt;                console.log('backup successfully queued.', b);       &lt;br /&gt;            }       &lt;br /&gt;        }       &lt;br /&gt;    );       &lt;br /&gt;    &lt;br /&gt;    console.log('End of NightlyDBBackup task.');       &lt;br /&gt;}       &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Save, then enable the job. Then click on the “Run Once” option to test it out. The console.log lines from the script will pump out onto the Job &amp;gt; Logs section, like so:      &lt;br /&gt;      &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_24.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb_11.png" width="553" height="320" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Finally, navigate to your Azure storage container and see if the SQL Azure .bacpac file was successfully created.      &lt;br /&gt;      &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_28.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb_13.png" width="546" height="304" /&gt;&lt;/a&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;As with any recovery process, the final step should be to verify the backup was successful by performing an actual restoration of the database from this .bacpac file. For this step, there are several additional substeps:      &lt;ol&gt;       &lt;li&gt;Navigate to your SQL Azure database. &lt;/li&gt;        &lt;li&gt;Select “Import” at the bottom of the screen to bring up the Bacpac import screen:          &lt;br /&gt;          &lt;br /&gt;&lt;a href="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_30.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/cd82f0cdb491_BD6D/image_thumb_14.png" width="330" height="329" /&gt;&lt;/a&gt;           &lt;br /&gt;          &lt;br /&gt;&lt;/li&gt;        &lt;li&gt;Next click the folder icon in the BACPAC URL field to navigate to the exact .bacpac file you wish to restore. Enter a name for your database (you can enter a completely new name here and a brand new database will be created) and select the server. &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;        &lt;li&gt;Voilà - You’re finished! Simply wait a few minutes for your database to be fully imported then test it with some queries to see that everything is there. &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;So there you have it – yet one more technique for scheduling a nightly backup of your SQL Azure database, this one entirely hosted from start to finish in Azure, with no 3rd party tools involved. Enjoy!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/BenBarreth/aggbug/152695.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Barreth</dc:creator>
            <guid>http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure.aspx</guid>
            <pubDate>Mon, 15 Apr 2013 21:00:40 GMT</pubDate>
            <comments>http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/BenBarreth/comments/commentRss/152695.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/BenBarreth/services/trackbacks/152695.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.Net Fails to Detect IE10 without .Net Hotfix</title>
            <category>asp.net</category>
            <category>ie 10</category>
            <link>http://geekswithblogs.net/BenBarreth/archive/2012/11/30/asp.net-fails-to-detect-ie10-without-.net-hotfix.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/BenBarreth/archive/2012/11/30/asp.net-fails-to-detect-ie10-without-.net-hotfix.aspx'&gt;http://geekswithblogs.net/BenBarreth/archive/2012/11/30/asp.net-fails-to-detect-ie10-without-.net-hotfix.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;--------- UPDATE 12/06/2012--------- &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Note: this issue should now be fully resolved on Geeks with Blogs as of this morning (12/06/2012).&lt;br /&gt;&lt;br /&gt;Some interesting background: After installing the hotfix, IE10 would suddenly no longer login to GWB at all (!!!). So the patch initially made things worse! &lt;br /&gt;&lt;br /&gt;An additional fix was required to ensure IE10 would parse the login page correctly: &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Remove the older doctype declaration of: &amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;/li&gt;&lt;li&gt;Replace it with the newer HTML5 declaration: &amp;lt;!DOCTYPE html&amp;gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;Then on the actual posting page itself, the "create" and "edit" posts link problems were resolved but the rich text editor became completely disabled! To resolve this I forced IE10 into IE9 mode by adding the standard IE9 meta tag header: &amp;lt;meta http-equiv="X-UA-Compatible" content="IE=9" /&amp;gt;&lt;br /&gt;&lt;br /&gt;If you're experiencing any issues creating posts on GWB using IE10, please contact me personally at support@geekswithblogs.net. &lt;/p&gt;&lt;p&gt;--------- END UPDATE--------- &lt;br /&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/benny/Default.aspx" target="_blank"&gt;Benny Mathew&lt;/a&gt; recently alerted us that he couldn’t create, edit or delete posts on &lt;a href="http://www.geekswithblogs.net" target="_blank"&gt;GeeksWithBlogs&lt;/a&gt; in IE10 (Windows 8). It turns out the problem is that &lt;a href="http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx" target="_blank"&gt;ASP.Net fails to detect IE10 causing a javascript error on postback&lt;/a&gt;. We’ll be applying a &lt;a href="http://support.microsoft.com/kb/2600088" target="_blank"&gt;hotfix&lt;/a&gt; to the .Net framework on GWB shortly to fix this issue. In the meantime you can use the simple workaround outlined below. (Note that if you create posts using Windows Live Writer you won’t have this issue creating posts).&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Log into your GWB Account and go to the “Posts” page.&lt;/li&gt;    &lt;li&gt;Hit F12 to bring up the developer window in IE10.&lt;/li&gt;    &lt;li&gt;Click on the ‘Browser Mode’ option and change it to IE9. &lt;/li&gt;    &lt;li&gt;You should now be able to create/edit/delete posts in GWB.      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/IE10-Bug-Submitting-Posts-on-GWB_72AC/changeToIE9_screenshot_2.jpg"&gt;&lt;img title="changeToIE9_screenshot" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="changeToIE9_screenshot" src="http://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/IE10-Bug-Submitting-Posts-on-GWB_72AC/changeToIE9_screenshot_thumb.jpg" width="642" height="651" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note this also fixes any other sites in IE10 that might not yet have the hotfix applied. You can tell if the hotfix is the likely culprit if you’re using IE10 and see the following error in the Web Developers Console area: &lt;/p&gt;  &lt;p&gt;SCRIPT5009: '__doPostBack' is undefined    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/IE10-Bug-Submitting-Posts-on-GWB_72AC/screenshot_ie10_javascript_error_2.gif"&gt;&lt;img title="screenshot_ie10_javascript_error" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="screenshot_ie10_javascript_error" src="http://gwb.blob.core.windows.net/benbarreth/Windows-Live-Writer/IE10-Bug-Submitting-Posts-on-GWB_72AC/screenshot_ie10_javascript_error_thumb.gif" width="600" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Let us know ASAP if there are other issues you are experiencing that aren’t fixed by this workaround! &lt;/p&gt; &lt;img src="http://geekswithblogs.net/BenBarreth/aggbug/151404.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Barreth</dc:creator>
            <guid>http://geekswithblogs.net/BenBarreth/archive/2012/11/30/asp.net-fails-to-detect-ie10-without-.net-hotfix.aspx</guid>
            <pubDate>Fri, 30 Nov 2012 14:22:45 GMT</pubDate>
            <comments>http://geekswithblogs.net/BenBarreth/archive/2012/11/30/asp.net-fails-to-detect-ie10-without-.net-hotfix.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/BenBarreth/comments/commentRss/151404.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/BenBarreth/services/trackbacks/151404.aspx</trackback:ping>
        </item>
        <item>
            <title>Life at the new digs: Geeks With Blogs</title>
            <category>Geeks With Blogs</category>
            <link>http://geekswithblogs.net/BenBarreth/archive/2012/11/27/life-at-the-new-digs-geeks-with-blogs.aspx</link>
            <description>&lt;p&gt;Originally posted on: &lt;a href='http://geekswithblogs.net/BenBarreth/archive/2012/11/27/life-at-the-new-digs-geeks-with-blogs.aspx'&gt;http://geekswithblogs.net/BenBarreth/archive/2012/11/27/life-at-the-new-digs-geeks-with-blogs.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Today is my 10th business day working at Geeks with Blogs. I'm phrasing it in "business days" because Thanksgiving completely screwed up my mental days-at-my-new-job clock. Plus it just sounds geekier.  &lt;br /&gt;    &lt;br /&gt;In fact, now that I'm working here, I need to make an extra effort to be super geeky. Maybe even Uber.     &lt;br /&gt;    &lt;br /&gt;Here's my plan so far: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Wear sandals to work. Check. &lt;/li&gt;    &lt;li&gt;Blog about code stuff more. WIP &lt;/li&gt;    &lt;li&gt;Try more crazy code stuff that ppl might find interesting enough to read a blog about. WIP &lt;/li&gt;    &lt;li&gt;Tweet more, about really geeky stuff.... that people might actually find interesting. WIP &lt;/li&gt;    &lt;li&gt;Make GWB a killer community. Not in the homicidal sense. WIP &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I know, I know. I need to limit my WIP more.    &lt;br /&gt;    &lt;br /&gt;I'm also wondering what personal blogging quality decay rate will be. i.e. Can I write a blog post every single day without it turning into boring drivel?     &lt;br /&gt;    &lt;br /&gt;Let’s hope so! &lt;/p&gt; &lt;img src="http://geekswithblogs.net/BenBarreth/aggbug/151360.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ben Barreth</dc:creator>
            <guid>http://geekswithblogs.net/BenBarreth/archive/2012/11/27/life-at-the-new-digs-geeks-with-blogs.aspx</guid>
            <pubDate>Tue, 27 Nov 2012 16:50:43 GMT</pubDate>
            <comments>http://geekswithblogs.net/BenBarreth/archive/2012/11/27/life-at-the-new-digs-geeks-with-blogs.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/BenBarreth/comments/commentRss/151360.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/BenBarreth/services/trackbacks/151360.aspx</trackback:ping>
        </item>
    </channel>
</rss>