﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>clausn.dk</title>
    <description>in my mind</description>
    <link>http://clausn.dk/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.5.0.6</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://clausn.dk/opml.axd</blogChannel:blogRoll>
    <dc:creator>Claus Nielsen</dc:creator>
    <dc:title>clausn.dk</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>Automatically scheduling DB backups in Windows Azure using Mobile services</title>
      <description>&lt;p&gt;I’ve been looking for a way to easily do scheduled backups of our databases in Windows Azure, and I’ve finally come across a viable solution.&lt;/p&gt;  &lt;p&gt;Scott Guthrie &lt;a href="http://weblogs.asp.net/scottgu/archive/2012/12/21/great-updates-to-windows-azure-mobile-services-web-sites-sql-data-sync-acs-media-more.aspx" target="_blank"&gt;blogged&lt;/a&gt; about Windows Azures mobile services now supporting scheduled jobs, that can run at a certain interval. Today I also stumbled upon an article about automating SQL databases in Windows Azure, providing a &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj900675.aspx" target="_blank"&gt;list of options&lt;/a&gt; for download and manual integration into your system. One of them allowed a URL to be called, to initiate the backup of a database. So I thought that putting these two together might be a good idea :)&lt;/p&gt;  &lt;p&gt;I created a Mobile Services application called DbBackups and created a scheduled script to run every 1 day at 1 pm. The script looks like this:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;var req = require(&lt;span class="str"&gt;'request'&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;var serviceUrl = &lt;span class="str"&gt;&amp;quot;https://db3prod-dacsvc.azure.com/DACWebService.svc//Export&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;function ISODateString(d) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    function pad(n) { &lt;span class="kwrd"&gt;return&lt;/span&gt; n &amp;lt; 10 ? &lt;span class="str"&gt;'0'&lt;/span&gt; + n : n }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; d.getUTCFullYear() + &lt;span class="str"&gt;'-'&lt;/span&gt; + pad(d.getUTCMonth() + 1) + &lt;span class="str"&gt;'-'&lt;/span&gt; + pad(d.getUTCDate()) + &lt;span class="str"&gt;'-'&lt;/span&gt; + pad(d.getUTCHours()) + &lt;span class="str"&gt;'-'&lt;/span&gt; + pad(d.getUTCMinutes()) + &lt;span class="str"&gt;'-'&lt;/span&gt; + pad(d.getUTCSeconds())&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;}&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;function DoBackup(blobDir, blobKey, dbServer, dbName, dbUsername, dbPassword) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    var d = &lt;span class="kwrd"&gt;new&lt;/span&gt; Date();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    var stamp = ISODateString(d);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    var url = blobDir + &lt;span class="str"&gt;&amp;quot;/&amp;quot;&lt;/span&gt; + dbName + &lt;span class="str"&gt;&amp;quot;-&amp;quot;&lt;/span&gt; + stamp + &lt;span class="str"&gt;&amp;quot;.bacpac&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    var content = &lt;span class="str"&gt;&amp;quot;&amp;lt;?xml version='1.0'?&amp;gt;&amp;lt;ExportInput xmlns='http://schemas.datacontract.org/2004/07/Microsoft.SqlServer.Management.Dac.ServiceTypes'&amp;gt;&amp;lt;BlobCredentials i:type='BlobStorageAccessKeyCredentials' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'&amp;gt;&amp;lt;Uri&amp;gt;&amp;quot;&lt;/span&gt; + url + &lt;span class="str"&gt;&amp;quot;&amp;lt;/Uri&amp;gt;&amp;lt;StorageAccessKey&amp;gt;&amp;quot;&lt;/span&gt; + blobKey + &lt;span class="str"&gt;&amp;quot;&amp;lt;/StorageAccessKey&amp;gt;&amp;lt;/BlobCredentials&amp;gt;&amp;lt;ConnectionInfo&amp;gt;&amp;lt;DatabaseName&amp;gt;&amp;quot;&lt;/span&gt; + dbName + &lt;span class="str"&gt;&amp;quot;&amp;lt;/DatabaseName&amp;gt;&amp;lt;Password&amp;gt;&amp;quot;&lt;/span&gt; + dbPassword + &lt;span class="str"&gt;&amp;quot;&amp;lt;/Password&amp;gt;&amp;lt;ServerName&amp;gt;&amp;quot;&lt;/span&gt; + dbServer + &lt;span class="str"&gt;&amp;quot;&amp;lt;/ServerName&amp;gt;&amp;lt;UserName&amp;gt;&amp;quot;&lt;/span&gt; + dbUsername + &lt;span class="str"&gt;&amp;quot;&amp;lt;/UserName&amp;gt;&amp;lt;/ConnectionInfo&amp;gt;&amp;lt;/ExportInput&amp;gt;&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    req.post({&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        headers: { &lt;span class="str"&gt;'Content-Type'&lt;/span&gt;: &lt;span class="str"&gt;'application/xml'&lt;/span&gt; },&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;        url: serviceUrl,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        body: content&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    },&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    function (error, result, body) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!error) {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            console.info(&lt;span class="str"&gt;&amp;quot;Backup started for database '&amp;quot;&lt;/span&gt; + dbName + &lt;span class="str"&gt;&amp;quot;' to: &amp;quot;&lt;/span&gt; + url);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            &lt;span class="rem"&gt;//console.info(&amp;quot;Body: &amp;quot; + body)&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            console.info(&lt;span class="str"&gt;&amp;quot;Error backing up: '&amp;quot;&lt;/span&gt; + dbName + &lt;span class="str"&gt;&amp;quot;': &amp;quot;&lt;/span&gt; + error)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    });&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;}&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;function BackupDbs() {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;    DoBackup(&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;https://youstorageaccount.blob.core.windows.net/sqlbackup&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;yourverylongkeytostorage&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;servername.database.windows.net&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;databaseName&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;password&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    );&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    DoBackup(&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;https://youstorageaccount.blob.core.windows.net/sqlbackup/subfolder&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;yourverylongkeytostorage&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;servername.database.windows.net&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;databaseName&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;        &lt;span class="str"&gt;&amp;quot;password&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;    );&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;
  &lt;br /&gt;The above code posts an XML request to the service defined in the top “serviceUrl” variable. The variable could be unique pr. database you have, but for me, all databases are located in the same datacenter. The “serviceUrl” is defined from the list in the section “List of Regions and Endpoints” at &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj900675.aspx" target="_blank"&gt;Automating Windows Azure SQL Database Backup&lt;/a&gt;. 

  &lt;br /&gt;Each requests starts a backup of that particular database into blob storage. The parameters to DoBackup are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;blobDir: Full URL to the container/subfolder that you want to store the backup in. Resulting URL will be concatenated by the URL provided, the database name and a date with .bacpac as postfix. I.e. you submit “https://youstorageaccount.blob.core.windows.net/sqlbackup” and the resulting URL would be “https://youstorageaccount.blob.core.windows.net/sqlbackup/databasename-2013-02-15-12-32.pacpac”. 
    &lt;br /&gt;You can provide a subfolder as well in the URL, see line 39 of the code above. &lt;/li&gt;

  &lt;li&gt;blobKey: Your blob storage access key &lt;/li&gt;

  &lt;li&gt;dbServer: Full DNS name for your DNS server. I.e. xkjfsedoij.database.windows.net &lt;/li&gt;

  &lt;li&gt;dbName: Database name to perform backup of &lt;/li&gt;

  &lt;li&gt;dbUsername: Username that has access to creating the actual backup, but does not need write permissions. &lt;/li&gt;

  &lt;li&gt;dbPassword: Password for the username provided &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get help on the service at the URL: &lt;a title="https://db3prod-dacsvc.azure.com/DACWebService.svc/help" href="https://db3prod-dacsvc.azure.com/DACWebService.svc/help"&gt;https://db3prod-dacsvc.azure.com/DACWebService.svc/help&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Several errors can occur and the service does not provide very good feedback, if something is wrong. I recommend using &lt;a href="http://www.fiddler2.com/fiddler2/" target="_blank"&gt;fiddler&lt;/a&gt; to compose a request, to the service, and see if it works with your parameters. For convenience I’ve provided the information you need to enter, like so: 

  &lt;br /&gt;&lt;a href="http://www.clausn.dk/image.axd?picture=image.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="image" src="http://www.clausn.dk/image.axd?picture=image_thumb.png" width="244" height="209" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Post to URL: https://db3prod-dacsvc.azure.com/DACWebService.svc//Export 
  &lt;br /&gt;Body: 

  &lt;br /&gt;&amp;lt;?xml version='1.0'?&amp;gt; 

  &lt;br /&gt;&amp;lt;ExportInput xmlns='http://schemas.datacontract.org/2004/07/Microsoft.SqlServer.Management.Dac.ServiceTypes'&amp;gt; 

  &lt;br /&gt;&amp;#160; &amp;lt;BlobCredentials i:type='BlobStorageAccessKeyCredentials' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'&amp;gt; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Uri&amp;gt;https://yourstorageaccount.blob.core.windows.net/sqlbackup/userspreprod/dbname-2013-02-15-11-42-35.bacpac&amp;lt;/Uri&amp;gt; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;StorageAccessKey&amp;gt;YouVeryLongKey&amp;lt;/StorageAccessKey&amp;gt; 

  &lt;br /&gt;&amp;#160; &amp;lt;/BlobCredentials&amp;gt; 

  &lt;br /&gt;&amp;#160; &amp;lt;ConnectionInfo&amp;gt; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;DatabaseName&amp;gt;DatabaseName&amp;lt;/DatabaseName&amp;gt; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Password&amp;gt;DatabasePassword&amp;lt;/Password&amp;gt; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ServerName&amp;gt;servername.database.windows.net&amp;lt;/ServerName&amp;gt; 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;UserName&amp;gt;Username&amp;lt;/UserName&amp;gt; 

  &lt;br /&gt;&amp;#160; &amp;lt;/ConnectionInfo&amp;gt; 

  &lt;br /&gt;&amp;lt;/ExportInput&amp;gt;&lt;/p&gt;

&lt;p&gt;Have fun!&lt;/p&gt;</description>
      <link>http://clausn.dk/post/2013/02/15/Automatically-scheduling-DB-backups-in-Windows-Azure-using-Mobile-services.aspx</link>
      <comments>http://clausn.dk/post/2013/02/15/Automatically-scheduling-DB-backups-in-Windows-Azure-using-Mobile-services.aspx#comment</comments>
      <guid>http://clausn.dk/post.aspx?id=1d5ccfec-64e1-4d57-8f1c-7590e04901e6</guid>
      <pubDate>Fri, 15 Feb 2013 10:47:25 -0100</pubDate>
      <category>SQL</category>
      <category>Windows Azure</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://clausn.dk/pingback.axd</pingback:server>
      <pingback:target>http://clausn.dk/post.aspx?id=1d5ccfec-64e1-4d57-8f1c-7590e04901e6</pingback:target>
      <slash:comments>91</slash:comments>
      <trackback:ping>http://clausn.dk/trackback.axd?id=1d5ccfec-64e1-4d57-8f1c-7590e04901e6</trackback:ping>
      <wfw:comment>http://clausn.dk/post/2013/02/15/Automatically-scheduling-DB-backups-in-Windows-Azure-using-Mobile-services.aspx#comment</wfw:comment>
      <wfw:commentRss>http://clausn.dk/syndication.axd?post=1d5ccfec-64e1-4d57-8f1c-7590e04901e6</wfw:commentRss>
    </item>
    <item>
      <title>Social integration annoyance</title>
      <description>&lt;p&gt;ItWhen you browse websites today, they usually have some sort of social integration. But the following example is maybe going a bit overboard…&lt;/p&gt;  &lt;p&gt;Visiting the site: tapiture.com:    &lt;br /&gt;&lt;a href="http://www.clausn.dk/image.axd?picture=Tapiture1.png"&gt;&lt;img title="Tapiture1" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="Tapiture1" src="http://www.clausn.dk/image.axd?picture=Tapiture1_thumb.png" width="244" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It seems almost 3 quarters of the page is used by the top bar and an annoying “connect with your friends” notification. Granted, I resized the window to better illustrate the issue :)&lt;/p&gt;  &lt;p&gt;But lets click the cross in the upper right corner, and lets see what happens:    &lt;br /&gt;&lt;a href="http://www.clausn.dk/image.axd?picture=Tapiture3.png"&gt;&lt;img title="Tapiture3" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="Tapiture3" src="http://www.clausn.dk/image.axd?picture=Tapiture3_thumb.png" width="244" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Yes, the notification is gone!    &lt;br /&gt;But wait - a new one appeared? This time with no cross to close it?&lt;/p&gt;  &lt;p&gt;Lets have a look at the HTML:    &lt;br /&gt;&lt;a href="http://www.clausn.dk/image.axd?picture=Tapiture4.png"&gt;&lt;img title="Tapiture4" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="Tapiture4" src="http://www.clausn.dk/image.axd?picture=Tapiture4_thumb.png" width="244" height="139" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What you’ll notice in the Chrome developer tools, is the ID of the layer annoying me: “annoy-non-users”. Yes, thats right, annoy annoumous user!!&lt;/p&gt;  &lt;p&gt;But there is a solution for that:    &lt;br /&gt;&lt;a href="http://www.clausn.dk/image.axd?picture=Tapiture5.png"&gt;&lt;img title="Tapiture5" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="Tapiture5" src="http://www.clausn.dk/image.axd?picture=Tapiture5_thumb.png" width="244" height="163" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We use the delete button, and voila:    &lt;br /&gt;&lt;a href="http://www.clausn.dk/image.axd?picture=Tapiture6.png"&gt;&lt;img title="Tapiture6" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="Tapiture6" src="http://www.clausn.dk/image.axd?picture=Tapiture6_thumb.png" width="244" height="139" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We can look at images without being disturbed :)&lt;/p&gt;  &lt;p&gt;Chrome is actually smart enough to remember our deletion throughout the site! Very cool!&lt;/p&gt;</description>
      <link>http://clausn.dk/post/2013/01/29/Social-integration-annoyance.aspx</link>
      <comments>http://clausn.dk/post/2013/01/29/Social-integration-annoyance.aspx#comment</comments>
      <guid>http://clausn.dk/post.aspx?id=f6d03897-a37d-430c-a449-13a461967df4</guid>
      <pubDate>Tue, 29 Jan 2013 13:38:38 -0100</pubDate>
      <category>HTML</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://clausn.dk/pingback.axd</pingback:server>
      <pingback:target>http://clausn.dk/post.aspx?id=f6d03897-a37d-430c-a449-13a461967df4</pingback:target>
      <slash:comments>41</slash:comments>
      <trackback:ping>http://clausn.dk/trackback.axd?id=f6d03897-a37d-430c-a449-13a461967df4</trackback:ping>
      <wfw:comment>http://clausn.dk/post/2013/01/29/Social-integration-annoyance.aspx#comment</wfw:comment>
      <wfw:commentRss>http://clausn.dk/syndication.axd?post=f6d03897-a37d-430c-a449-13a461967df4</wfw:commentRss>
    </item>
    <item>
      <title>Google apps Calendar support v2</title>
      <description>&lt;p&gt;Just got a call from Google apps support, that they were sad to hear of my feedback given to the support issue.&lt;/p&gt;
&lt;p&gt;In my last post I was dissatisfied with support saying Windows Phone calendar support was "by design", and that they could not fix it. So I gave them lowest score on the feedback form.. Turns out they take it seriously, since I just got a call from them, that they have now turned it into a feature request :)&lt;/p&gt;
&lt;p&gt;All we can do now is wait, since they couldn't give me an ETA for completion :)&lt;/p&gt;</description>
      <link>http://clausn.dk/post/2013/01/10/Google-apps-Calendar-support-v2.aspx</link>
      <comments>http://clausn.dk/post/2013/01/10/Google-apps-Calendar-support-v2.aspx#comment</comments>
      <guid>http://clausn.dk/post.aspx?id=16eaa61f-1f62-4372-b202-d52c771dcd8f</guid>
      <pubDate>Thu, 10 Jan 2013 11:35:00 -0100</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://clausn.dk/pingback.axd</pingback:server>
      <pingback:target>http://clausn.dk/post.aspx?id=16eaa61f-1f62-4372-b202-d52c771dcd8f</pingback:target>
      <slash:comments>78</slash:comments>
      <trackback:ping>http://clausn.dk/trackback.axd?id=16eaa61f-1f62-4372-b202-d52c771dcd8f</trackback:ping>
      <wfw:comment>http://clausn.dk/post/2013/01/10/Google-apps-Calendar-support-v2.aspx#comment</wfw:comment>
      <wfw:commentRss>http://clausn.dk/syndication.axd?post=16eaa61f-1f62-4372-b202-d52c771dcd8f</wfw:commentRss>
    </item>
    <item>
      <title>Support experience about calendar invites in Windows Phone 7 using Google apps</title>
      <description>&lt;p&gt;I use a Windows Phone 7 on a Nokia Lumia 800 and I'm very happy about it. We also use Windows Phones at our work, both Lumia 800 and 920, and all seem happy about their phones.&lt;/p&gt;
&lt;p&gt;We cannot however accept, reject or tentatively accept calendar invites from Google calendar, using the native calendar app on our phones. This goes for both Lumia 800 and 920 phones, and therefore both Windows Phone 7 and 8.&lt;br /&gt;Docs at&amp;nbsp;http://www.windowsphone.com/en-us/how-to/wp8/people/use-calendars.&lt;/p&gt;
&lt;p&gt;Admittedly, I can accept, reject or "maybe" an invitation in the email sent from Google, but I wanted my calendar to support my provider.&lt;/p&gt;
&lt;p&gt;I recently contacted Google apps enterprise support, to confirm I had a known problem and asked for help to solve it. This was my response:&lt;br /&gt;--&lt;/p&gt;
&lt;p&gt;Hello Claus,&lt;br /&gt;&lt;br /&gt;I have received a reply from a specialist in this field. &amp;nbsp;They have confirmed that the issue you are experiencing is expected behavior. &amp;nbsp;All the online documentation in relation to Windows phone will be updated to make the functions of the Windows Phone calendar app clearer.&lt;br /&gt;&lt;br /&gt;The only workaround is to reply using the email buttons inside the invitation which will send you to the web UI version of Google Calendar, which also records the response to the event there. This will also then be reflected in the Calendar app on Windows Phone.&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;Bryan&lt;br /&gt;Enterprise Support&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Love it when they are able to contact specialists in the field :) But expected behavior?&lt;/p&gt;
&lt;p&gt;I then contacted Windows Phone support via Twitter (See conversation here: &lt;a href="https://twitter.com/WinPhoneSupport/status/284723826191904768" target="_blank"&gt;https://twitter.com/WinPhoneSupport/status/284723826191904768&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;&amp;rlm;@WinPhoneSupport Honestly this is something that would have to be changed on Google's side &amp;amp; you would need to contact them regarding any update/change to how the invite is sent to a Windows Phone. ^EB&lt;/p&gt;
&lt;p&gt;--&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One of my questions was: "Did you try calling Google to fix this?" and the reply was that it was something Google had to change.&lt;br /&gt;Google support on the other hand explained that they implemented an open ICS standard, which means it would be something they would have to change.&lt;/p&gt;
&lt;p&gt;Sounds familiar?&lt;/p&gt;
&lt;p&gt;I had the opportunity to grade both Google Apps support and Windows Phone twitter support, and neither got very good grades. The thank you -message from Google Apps feedback survey was execelent:&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Thank you for taking the time to provide feedback on this case. Your feedback will be shared with the support representative and their manager. Product feedback is routed directly to our product management team. We take customer feedback seriously and are dedicated to making changes to our products and services based on your input.&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Because neither Microsoft or Google wants to help, us Windows Phone users are stuck with no native calendar app for Google apps?&amp;nbsp;&lt;/p&gt;</description>
      <link>http://clausn.dk/post/2013/01/07/Support-experience-about-calendar-invites-in-Windows-Phone-7-using-Google-apps.aspx</link>
      <comments>http://clausn.dk/post/2013/01/07/Support-experience-about-calendar-invites-in-Windows-Phone-7-using-Google-apps.aspx#comment</comments>
      <guid>http://clausn.dk/post.aspx?id=777c1df8-fac6-484d-90c6-557c69cec809</guid>
      <pubDate>Mon, 07 Jan 2013 19:14:00 -0100</pubDate>
      <category>Windows Phone</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://clausn.dk/pingback.axd</pingback:server>
      <pingback:target>http://clausn.dk/post.aspx?id=777c1df8-fac6-484d-90c6-557c69cec809</pingback:target>
      <slash:comments>61</slash:comments>
      <trackback:ping>http://clausn.dk/trackback.axd?id=777c1df8-fac6-484d-90c6-557c69cec809</trackback:ping>
      <wfw:comment>http://clausn.dk/post/2013/01/07/Support-experience-about-calendar-invites-in-Windows-Phone-7-using-Google-apps.aspx#comment</wfw:comment>
      <wfw:commentRss>http://clausn.dk/syndication.axd?post=777c1df8-fac6-484d-90c6-557c69cec809</wfw:commentRss>
    </item>
  </channel>
</rss>