Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://feeds.feedburner.com/psh

  1. <?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5858737462756557726</atom:id><lastBuildDate>Tue, 05 Mar 2024 19:57:38 +0000</lastBuildDate><category>Microsoft</category><category>.NET</category><category>Intergen</category><category>Visual Studio</category><category>ASP.NET</category><category>DevExpress</category><category>SQL</category><category>ActionThis</category><category>Android</category><category>C#</category><category>Other Stuff</category><category>TFS</category><category>TSQL</category><category>TDD</category><category>Xamarin</category><category>Jobs</category><category>SQL Server</category><category>WTF</category><category>Agile</category><category>Java</category><category>Rx</category><category>Scrum</category><category>Silverlight</category><category>XPO</category><category>ALM</category><category>Anti-patterns</category><category>Azure</category><category>Code Contracts</category><category>Compression</category><category>Crystal Reports</category><category>Eclipse</category><category>Function App</category><category>FxCop</category><category>IIS Express</category><category>IoC</category><category>LESS</category><category>MVC</category><category>NUnit</category><category>NodeJS</category><category>NuGet</category><category>OctoPack</category><category>Office</category><category>Performance</category><category>Pex</category><category>Plug-In</category><category>PostSharp</category><category>PowerShell</category><category>RPO</category><category>Reactive Extensions</category><category>ReactiveUI</category><category>Recruitment</category><category>Security</category><category>Tools</category><category>TypeScript</category><category>WLW</category><category>WPF</category><category>jQuery</category><category>javascript</category><category>maven</category><category>npm</category><title>@KiwiPiet</title><description>The musings of a Rocket Scientist. NOT!</description><link>http://www.kiwipiet.com/</link><managingEditor>noreply@blogger.com (KiwiPiet)</managingEditor><generator>Blogger</generator><openSearch:totalResults>150</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-8491764320822847056</guid><pubDate>Thu, 12 May 2022 04:32:00 +0000</pubDate><atom:updated>2022-05-12T16:32:21.179+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OctoPack</category><category domain="http://www.blogger.com/atom/ns#">SQL Server</category><title>The type initializer for &#39;Microsoft.Data.SqlClient.SNINativeMethodWrapper&#39; threw an exception</title><description>&lt;p&gt;You have just deployed a new application that you have written and it all works on your machine, but as soon as you run it you get:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;The type initializer for &#39;Microsoft.Data.SqlClient.SNINativeMethodWrapper&#39; threw an exception&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Check if you have an x64 and x32 folder in your bin or the same folder as your executable (.exe).&amp;nbsp; These folders each has a SNI.dll and SNI.pdb and the folders and at least the SNI.dll should be included in your deployments.&lt;/p&gt;&lt;p&gt;In my case, I use Octopus Deploy and more specifically OctoPack to package the applications for deployment.&amp;nbsp; To make OctoPack pick this up I had to make the following change:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Add a nuspec file to the project, and&amp;nbsp;&lt;/li&gt;&lt;li&gt;Add a file element under the files element:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;For a web api:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&amp;lt;file src=&quot;bin\x64\*.*&quot; target=&quot;bin\x64\&quot; /&amp;gt;&lt;/li&gt;&lt;li&gt;&amp;lt;file src=&quot;bin\x32\*.*&quot; target=&quot;bin\x32\&quot; /&amp;gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;For a console app/windows service:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&amp;lt;file src=&quot;bin\x64\*.*&quot; target=&quot;x64\&quot; /&amp;gt;&lt;/li&gt;&lt;li&gt;&amp;lt;file src=&quot;bin\x32\*.*&quot; target=&quot;x32\&quot; /&amp;gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Add /p:&lt;a href=&quot;https://octopus.com/docs/packaging-applications/create-packages/octopack/octopack-to-include-buildevent-files&quot; target=&quot;_blank&quot;&gt;OctopackEnforceAddingFiles&lt;/a&gt;=true to my msbuild task that builds the projects&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://www.kiwipiet.com/2022/05/the-type-initializer-for.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-2367727728626885773</guid><pubDate>Thu, 05 May 2022 02:23:00 +0000</pubDate><atom:updated>2022-05-12T16:32:51.156+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">Function App</category><title>How to trigger an Azure Function with a TimerTrigger during development</title><description>&lt;p&gt;So you have just created an Azure Function App with a TimerTrigger and you want to debug it, but you do not want have to change the schedule every time.&lt;/p&gt;&lt;p&gt;You have two options:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;You can trigger the function using a HTTP POST&lt;br /&gt;Make sure you supply an empty body&lt;br /&gt;URL to use:&amp;nbsp;http://localhost:7071/admin/functions/&amp;lt;your function name&amp;gt;&lt;/li&gt;&lt;li&gt;Add &quot;RunOnStartup= true&quot; to your function method signature&lt;br /&gt;See:&amp;nbsp;&lt;a href=&quot;https://blog.magnetismsolutions.com/blog/adammurchison/2020/08/14/how-to-easily-debug-a-timer-trigger-azure-function-locally#:~:text=When%20trying%20to%20run%20a%20timer%20triggered%20Azure,trigger%20the%20function%20so%20that%20it%20runs%20instantaneously.&quot;&gt;How to Easily Debug a Timer Trigger Azure Function Locally | Magnetism Solutions | NZ (Auckland, Wellington, Christchurch and Dunedin)&lt;/a&gt;&amp;nbsp;for an example.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://www.kiwipiet.com/2022/05/how-to-trigger-azure-function-with.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-6519842056509859125</guid><pubDate>Mon, 02 May 2022 22:42:00 +0000</pubDate><atom:updated>2022-05-03T10:42:19.665+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Office</category><title>How to resolve: We can&#39;t install the 64-bit version of Office because we found the following 32-bit programs on your PC</title><description>&lt;p&gt;&amp;nbsp;If you get the following error when trying to install a 64-bit version of Office:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;We can&#39;t install the 64-bit version of Office because we found the following 32-bit programs on your PC:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Office 16 Click-to-Run Extensibility Components&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Please uninstall all 32-bit Office programs, then retry installing 64-bit Office.&amp;nbsp; If you want to install 32-bit Office instead, please run the 32-bit setup.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Solution:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Press Win+R and type &#39;installer&#39; and press enter&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjjmTOYe0AnxYOtADlIkZhchE__iXAlB2l-qs5wiSImni9kn6a6Ep1THllZCmldISRi7lfbCMR0TVwP-CKrXNP07yjgHvgWzjE4JZjVSqdaq5CCeTuR7ylM7xS_URUApC7R8ZDhRP0yO1oC7bDFx3ZmjkXKfm_Yan3INjrJw61hrNA0abSvdo4hIlcGA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;206&quot; data-original-width=&quot;399&quot; height=&quot;165&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjjmTOYe0AnxYOtADlIkZhchE__iXAlB2l-qs5wiSImni9kn6a6Ep1THllZCmldISRi7lfbCMR0TVwP-CKrXNP07yjgHvgWzjE4JZjVSqdaq5CCeTuR7ylM7xS_URUApC7R8ZDhRP0yO1oC7bDFx3ZmjkXKfm_Yan3INjrJw61hrNA0abSvdo4hIlcGA&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This will open File Explorer and take you to the installer folder (most likely:&amp;nbsp;C:\Windows\Installer)&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjin4uWicRe06kEjWMi5VEn3X1qAStD4I3_EdMaEHdVrdlHrbscLGUc42awOCi7B34xI3v2dqdIvRyuAZyOAMyon64gINIq9Nl-si146nI98-htiE-dJRhk_c6hjfPYczOK8jHbm8ZdChW05sekZZWzGLQS27LsJomBuGFJ0NaCpoDqP7-eQtqkyLpvnw&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;184&quot; data-original-width=&quot;678&quot; height=&quot;87&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjin4uWicRe06kEjWMi5VEn3X1qAStD4I3_EdMaEHdVrdlHrbscLGUc42awOCi7B34xI3v2dqdIvRyuAZyOAMyon64gINIq9Nl-si146nI98-htiE-dJRhk_c6hjfPYczOK8jHbm8ZdChW05sekZZWzGLQS27LsJomBuGFJ0NaCpoDqP7-eQtqkyLpvnw&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add the &#39;Subject&#39; column&lt;/li&gt;&lt;li&gt;Sort by the &#39;Subject&#39; folder and scroll down to find the &#39;Office 16 Click-to-Run Extensibility Component 64-bit Registration&#39;&lt;/li&gt;&lt;li&gt;Right click the MSI file and choose uninstall&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://www.kiwipiet.com/2022/05/how-to-resolve-we-cant-install-64-bit.html</link><author>noreply@blogger.com (KiwiPiet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjjjmTOYe0AnxYOtADlIkZhchE__iXAlB2l-qs5wiSImni9kn6a6Ep1THllZCmldISRi7lfbCMR0TVwP-CKrXNP07yjgHvgWzjE4JZjVSqdaq5CCeTuR7ylM7xS_URUApC7R8ZDhRP0yO1oC7bDFx3ZmjkXKfm_Yan3INjrJw61hrNA0abSvdo4hIlcGA=s72-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-6523789920376584327</guid><pubDate>Fri, 04 Feb 2022 23:56:00 +0000</pubDate><atom:updated>2022-05-05T14:24:43.822+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL</category><title>Where is SQLPackage?</title><description>&lt;p&gt;What is SqlPackage?&lt;/p&gt;&lt;p&gt;From:&amp;nbsp;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage?view=sql-server-ver15&quot;&gt;SqlPackage.exe - SQL Server | Microsoft Docs&lt;/a&gt;&lt;/p&gt;&lt;b&gt;&lt;/b&gt;&lt;blockquote&gt;&lt;i&gt;&lt;b&gt;SqlPackage.exe&lt;/b&gt; is a command-line utility that automates the following database development tasks:&lt;br /&gt;&lt;/i&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage?view=sql-server-ver15#version&quot;&gt;Version&lt;/a&gt;: Returns the build number of the SqlPackage application. Added in version 18.6.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-extract?view=sql-server-ver15&quot;&gt;Extract&lt;/a&gt;: Creates a data-tier application (.dacpac) file containing the schema or schema and user data from a connected SQL database.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-publish?view=sql-server-ver15&quot;&gt;Publish&lt;/a&gt;: Incrementally updates a database schema to match the schema of a source .dacpac file. If the database does not exist on the server, the publish operation creates it. Otherwise, an existing database is updated.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-export?view=sql-server-ver15&quot;&gt;Export&lt;/a&gt;: Exports a connected SQL database - including database schema and user data - to a BACPAC file (.bacpac).&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-import?view=sql-server-ver15&quot;&gt;Import&lt;/a&gt;: Imports the schema and table data from a BACPAC file into a new user database.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-deploy-drift-report?view=sql-server-ver15&quot;&gt;DeployReport&lt;/a&gt;: Creates an XML report of the changes that would be made by a publish action.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-deploy-drift-report?view=sql-server-ver15&quot;&gt;DriftReport&lt;/a&gt;: Creates an XML report of the changes that have been made to a registered database since it was last registered.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-script?view=sql-server-ver15&quot;&gt;Script&lt;/a&gt;: Creates a Transact-SQL incremental update script that updates the schema of a target to match the schema of a source.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;i&gt;The &lt;b&gt;SqlPackage.exe&lt;/b&gt; command line tool allows you to specify these actions along with action-specific parameters and properties.&lt;br /&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download?view=sql-server-ver15&quot;&gt;Download the latest version&lt;/a&gt;. For details about the latest release, see the &lt;a href=&quot;https://docs.microsoft.com/en-us/sql/tools/sqlpackage/release-notes-sqlpackage?view=sql-server-ver15&quot;&gt;release notes&lt;/a&gt;.&lt;/i&gt;&lt;/blockquote&gt;&lt;p style=&quot;background-color: white; box-sizing: inherit; color: #171717; font-family: &amp;quot;Segoe UI&amp;quot;, SegoeUI, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;br /&gt;If you have Visual Studio, SQL Server of SQL Server Management Studio installed - you may already have SqlPackage installed on your machine.&lt;br /&gt;&lt;br /&gt;Common locations to find SqlPackage.exe:&lt;br /&gt;&lt;br /&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Visual Studio&lt;/li&gt;&lt;ul&gt;&lt;li&gt;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC&lt;/li&gt;&lt;li&gt;C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\150&lt;/li&gt;&lt;li&gt;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\150&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;SQL Server:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;C:\Program Files\Microsoft SQL Server\150\DAC\bin\&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Note that drive letters will depend on where you installed a product and also which version of product you have installed.  I&#39;ve also only listed the locations I know about for DAC version 150.  You will notice that you will most likely have older version of SqlPackage in the DAC folder, such as 140 and 130 etc...  We use version 150 to deploy to SQL Server versions as low as 2012 (DAC 110).&lt;br /&gt;&lt;br /&gt;At work we use SqlPackage extensively to deploy all our databases.  We have recently added a DeploymentPlanModifier extension to document what is being changed for each release in a more human friendly manner (we chose markdown which is then also rendered as html) for consumption by other teams that need to know what changes are being made.  I will post about that in a future post.&lt;br /&gt;&lt;br /&gt;</description><link>http://www.kiwipiet.com/2022/02/where-is-sqlpackage.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-9128207912111319481</guid><pubDate>Thu, 25 Nov 2021 22:13:00 +0000</pubDate><atom:updated>2021-11-26T11:14:19.166+13:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET</category><category domain="http://www.blogger.com/atom/ns#">ASP.NET</category><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">Rx</category><title>ASP.NET Log requests and responses</title><description>At work we have setup a mock api using ASP.NET (.NET 4.7.1) that mocks the interface of a third party service that is not yet available.&amp;nbsp; To allow our testers to see what the requests and responses look like when the service is called we used Serilog and the File sink to instrument the mock api.&amp;nbsp; I love Serilog, but the testers are under a bit of time pressure and asked if we could write a separate log that only showed the response and request data and nothing else - as the Serilog files were a bit busy on Verbose.&amp;nbsp; They also asked if we could format the json requests and responses to make it easier to validate.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I cobbled together the following.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I created a DelegatingHandler that I registered as a MessageHandler to intercept all requests.&amp;nbsp; For the logging (RequestResponseLogger) I used a&amp;nbsp;BlockingCollection which I used as a queue.&amp;nbsp; Using&amp;nbsp;GetConsumingEnumerable converting it to an observable and subscribing to changes using Rx.NET (v3.1.1).&amp;nbsp; In the subscribe I simply appended a collection of strings to a file using&amp;nbsp;File.AppendAllLines.&amp;nbsp; This makes it nice and threadsafe without any locking.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the&amp;nbsp;HttpLoggingHandler.SendAsync I start by creating a list of strings and then append the &#39;lines&#39; I want to log to this list. After logging what I needed from the request and response to the contents list I enqueue this to the&amp;nbsp;RequestResponseLogger.&amp;nbsp; This keeps all the logged lines for a request together in the log file making it even easier for the testers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note: there is no error handling here - exceptions are logged elsewhere, the current implementation is purely there to log happy path situations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One last thing to note, is the &#39;pretty printing&#39; of json in the log.&amp;nbsp; This was done with:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;result = JToken.Parse(result).ToString(Formatting.Indented);&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
  2. HttpLoggingHandler
  3. &lt;div&gt;&lt;script src=&quot;https://gist.github.com/kiwipiet/80f56c80e75c4402779b1d2f404ab631.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;
  4. List AddContent
  5. &lt;div&gt;&lt;script src=&quot;https://gist.github.com/kiwipiet/aaf0ff8d30ea8ad0c5f6434fb6d7ee92.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;Remember to register the handler:
  6. &lt;blockquote&gt;
  7. config.MessageHandlers.Add(new HttpLoggingHandler());
  8. &lt;/blockquote&gt;</description><link>http://www.kiwipiet.com/2021/11/aspnet-log-requests-and-responses.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-4146617983523554908</guid><pubDate>Mon, 03 Sep 2018 00:28:00 +0000</pubDate><atom:updated>2018-09-03T12:28:12.993+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>Error 2203:  Database: C:\Windows\Installer\inprogressinstallinfo.ipi. Cannot open database file.</title><description>I was trying to update my Visual Studio 2017 to 15.8.2, when I got an error installing&amp;nbsp;Microsoft.VisualStudio.MinShell.Msi.&amp;nbsp; The installer gave a link to a log file that had the follwoing error:&lt;br /&gt;
  9. &lt;br /&gt;
  10. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  11. DEBUG: Error 2203:&amp;nbsp; Database: C:\Windows\Installer\inprogressinstallinfo.ipi. Cannot open database file. System error -2147287037&lt;/blockquote&gt;
  12. After much head scratching and plenty of googling I saw a reply to a post on a forum where someone had changed their System Environment Variables for &#39;TEMP&#39; and &#39;TMP&#39; to a non existing folder. :D&lt;br /&gt;
  13. Turns out that is exactly what I had done.&amp;nbsp; I have been running our of space on my C: drive and had changed my environment variables to a folder on another drive.&amp;nbsp; Problem was I never created the folder.&amp;nbsp; So a quick folder create and my problem was solved and Visual Studio installed without a problem.&lt;br /&gt;
  14. &lt;br /&gt;
  15. :D</description><link>http://www.kiwipiet.com/2018/09/error-2203-database-cwindowsinstallerin.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-37570250049367686</guid><pubDate>Mon, 08 May 2017 21:18:00 +0000</pubDate><atom:updated>2017-05-09T09:18:56.112+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ASP.NET</category><category domain="http://www.blogger.com/atom/ns#">TFS</category><title>How to resolve: &#39;ASPNETCOMPILER: Object reference not set to an instance of an object&#39;</title><description>At my current engagement I have setup a build process. &amp;nbsp;As per my normal, I always make sure that a build script can be run from anywhere. &amp;nbsp;In principle I strife to have the build script do everything needed to get a developer working a.s.a.p.&lt;br /&gt;
  16. &lt;br /&gt;
  17. The end result should be that you download the code, run the build script, start developing. &amp;nbsp;And on the build server, download the code, run the build script, provide the deployment artifacts.&lt;br /&gt;
  18. &lt;br /&gt;
  19. The current build script has been running on the build server (TFS 2013 Controller) for about 6 months now without any major issues. &amp;nbsp;Until yesterday that is, when it suddenly started failing with &#39;ASPNETCOMPILER: Object reference not set to an instance of an object&#39;.&lt;br /&gt;
  20. &lt;br /&gt;
  21. There seems to be multiple issues that can cause this problem, anti-virus applications, left over build files in bin folders, compressed working folder...&lt;br /&gt;
  22. &lt;br /&gt;
  23. In my case it was the temp folder of the local user account we use for the build service, which was in C:\Users\&amp;lt;username&amp;gt;\AppData\Local\Temp\&lt;br /&gt;
  24. This folder was compressed, after decompressing it, the builds started working again.&lt;br /&gt;
  25. &lt;br /&gt;
  26. &lt;br /&gt;</description><link>http://www.kiwipiet.com/2017/05/how-to-resolve-aspnetcompiler-object.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-5065193045960610120</guid><pubDate>Sat, 31 Dec 2016 19:50:00 +0000</pubDate><atom:updated>2017-01-01T08:50:05.563+13:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TypeScript</category><title>Resolving TS5023:Build:Unknown compiler option</title><description>Make sure that you have the latest &lt;a href=&quot;https://www.microsoft.com/en-us/download/details.aspx?id=48593&quot;&gt;Visual Studio 2015 TypeScript Tools&lt;/a&gt; installed.</description><link>http://www.kiwipiet.com/2017/01/resolving-ts5023buildunknown-compiler.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-728681959891811880</guid><pubDate>Mon, 14 Nov 2016 18:37:00 +0000</pubDate><atom:updated>2016-11-15T07:42:57.497+13:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET</category><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">ReactiveUI</category><category domain="http://www.blogger.com/atom/ns#">Xamarin</category><title>RestrictedCaptionAreaChangedEventArgs could not be resolved</title><description>I&#39;ve just upgraded a Xamarin application to use the latest ReactiveUI 7.0.0 and got the following error when building in release mode:&lt;br /&gt;
  27. &lt;div&gt;
  28. &lt;br /&gt;&lt;/div&gt;
  29. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  30. error MSB4018: Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA2006: Reference to metadata item &#39;Android.Views.Window/RestrictedCaptionAreaChangedEventArgs&#39; (defined in &#39;ReactiveUI.Events, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null&#39;) from &#39;ReactiveUI.Events, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null&#39; could not be resolved. ---&amp;gt; Mono.Cecil.ResolutionException: Failed toresolve Android.Views.Window/RestrictedCaptionAreaChangedEventArgs&lt;/blockquote&gt;
  31. &lt;br /&gt;
  32. &amp;nbsp;&lt;a href=&quot;https://developer.xamarin.com/releases/android/xamarin.android_7/xamarin.android_7.0/level_24_diff/mono.android.dll/&quot;&gt;RestrictedCaptionAreaChangedEventArgs&lt;/a&gt;&amp;nbsp;was added in Xamarin Android 7.0 and is part of the API level 24 changes.&lt;br /&gt;
  33. &lt;br /&gt;
  34. I needed to first install the Android SDK tools for API Level 24. &amp;nbsp;Open the Android SDK Manager and select &#39;Android SDK Build-tools&#39; v24.0.3, &#39;SDK Platform Android 7.0&#39; and &#39;ARM EABI v7a System Image&#39;.&lt;br /&gt;
  35. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  36. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiteAPFm5shAO79nBM5Gko7LLLvyXzR53NYr6DhKLLagqZ-swVnS5oyqU92_sA0lnUaD0oPsPKnkQHRmAl3YQQst22PWjzbkJoulqK3aU0P7HUOoEVDVq8nsAXVkMK_KzeuYj_6l2c4SlK/s1600/Android+SDK+Manager+-+Install+API+Level+24.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiteAPFm5shAO79nBM5Gko7LLLvyXzR53NYr6DhKLLagqZ-swVnS5oyqU92_sA0lnUaD0oPsPKnkQHRmAl3YQQst22PWjzbkJoulqK3aU0P7HUOoEVDVq8nsAXVkMK_KzeuYj_6l2c4SlK/s320/Android+SDK+Manager+-+Install+API+Level+24.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  37. &lt;br /&gt;
  38. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  39. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz8KnclxZN5G7OVCQPBTXofbSxuxoHllay6maHzQI0YcCP0ZZLfNUdXqaHSXCfB1SwckqAiqLulOKHyRxE4aU4NVNEP-Kf2bViLfhqGfbUiPDBeSyNkLKDMfB0v5gTmVWi-iPKvhX2gXu7/s1600/Android+SDK+Manager+-+Install+API+Level+24+-+Accept+License.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz8KnclxZN5G7OVCQPBTXofbSxuxoHllay6maHzQI0YcCP0ZZLfNUdXqaHSXCfB1SwckqAiqLulOKHyRxE4aU4NVNEP-Kf2bViLfhqGfbUiPDBeSyNkLKDMfB0v5gTmVWi-iPKvhX2gXu7/s320/Android+SDK+Manager+-+Install+API+Level+24+-+Accept+License.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  40. &lt;span id=&quot;goog_501937870&quot;&gt;&lt;/span&gt;&lt;br /&gt;
  41. Then in my project properties I updated the &#39;Compile using Android version&#39; and &#39;Target Android version&#39; properties on the Application tab.&lt;br /&gt;
  42. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  43. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLRKhDVronaj5KGCNr6gNhCPDWtaki2EX8Y-PfQ7ur3sCUz-x1gKOdHQOB1E9AhcQD_bFasWoPW9si4HZ4Zr4AH6nrsOOdT4YMCIcqMNcRwzduxIdNwu52x121AJny_Wdqt-E-Yl2f6Usj/s1600/Application+Tab.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;141&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLRKhDVronaj5KGCNr6gNhCPDWtaki2EX8Y-PfQ7ur3sCUz-x1gKOdHQOB1E9AhcQD_bFasWoPW9si4HZ4Zr4AH6nrsOOdT4YMCIcqMNcRwzduxIdNwu52x121AJny_Wdqt-E-Yl2f6Usj/s320/Application+Tab.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  44. &lt;br /&gt;
  45. If you then get &#39;java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0&#39;, all you need to do is install the &lt;a href=&quot;http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html&quot;&gt;JDK 1.8&lt;/a&gt;&amp;nbsp;and update your JDK location in &#39;Tools\Options\Xamarin\Android settings&#39;&lt;br /&gt;
  46. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  47. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG_Wt6MxAcXIhLtbiiVG03lWCp0f_O2a5OWhwehK-cD2BFIlTkRxF2u52W3TWvGubTUMDu02hUIpQrFarqVfBFbZbGVD0kdO6E-wc9k1kS5qrR2uSmLsGlFFxJ-jqsr37REDby2EXHck6l/s1600/Xamarin+JDK+1.8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG_Wt6MxAcXIhLtbiiVG03lWCp0f_O2a5OWhwehK-cD2BFIlTkRxF2u52W3TWvGubTUMDu02hUIpQrFarqVfBFbZbGVD0kdO6E-wc9k1kS5qrR2uSmLsGlFFxJ-jqsr37REDby2EXHck6l/s320/Xamarin+JDK+1.8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  48. &lt;br /&gt;</description><link>http://www.kiwipiet.com/2016/11/restrictedcaptionareachangedeventargs.html</link><author>noreply@blogger.com (KiwiPiet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiteAPFm5shAO79nBM5Gko7LLLvyXzR53NYr6DhKLLagqZ-swVnS5oyqU92_sA0lnUaD0oPsPKnkQHRmAl3YQQst22PWjzbkJoulqK3aU0P7HUOoEVDVq8nsAXVkMK_KzeuYj_6l2c4SlK/s72-c/Android+SDK+Manager+-+Install+API+Level+24.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-8672234425252810788</guid><pubDate>Wed, 27 Jul 2016 00:40:00 +0000</pubDate><atom:updated>2016-07-27T12:40:35.533+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Reactive Extensions</category><category domain="http://www.blogger.com/atom/ns#">Rx</category><title>Where to find Reactive Extensions 2.2.5</title><description>The latest and greatest &lt;a href=&quot;https://github.com/Reactive-Extensions/Rx.NET&quot;&gt;Reactive Extensions&lt;/a&gt; v3 has been released.&lt;br /&gt;
  49. With it came a name change to the NuGet packages:&lt;br /&gt;
  50. &lt;ul&gt;
  51. &lt;li&gt;&lt;del&gt;&lt;code&gt;Rx-Main&lt;/code&gt;&lt;/del&gt; is now &lt;code&gt;System.Reactive&lt;/code&gt;&lt;/li&gt;
  52. &lt;li&gt;&lt;del&gt;&lt;code&gt;Rx-Core&lt;/code&gt;&lt;/del&gt; is now &lt;code&gt;System.Reactive.Core&lt;/code&gt;&lt;/li&gt;
  53. &lt;li&gt;&lt;del&gt;&lt;code&gt;Rx-Interfaces&lt;/code&gt;&lt;/del&gt;  is now &lt;code&gt;System.Reactive.Interfaces&lt;/code&gt;&lt;/li&gt;
  54. &lt;li&gt;&lt;del&gt;&lt;code&gt;Rx-Linq&lt;/code&gt;&lt;/del&gt;  is now &lt;code&gt;System.Reactive.Linq&lt;/code&gt;&lt;/li&gt;
  55. &lt;li&gt;&lt;del&gt;&lt;code&gt;Rx-PlatformServices&lt;/code&gt;&lt;/del&gt;  is now &lt;code&gt;System.Reactive.PlatformServices&lt;/code&gt;&lt;/li&gt;
  56. &lt;li&gt;&lt;del&gt;&lt;code&gt;Rx-Testing&lt;/code&gt;&lt;/del&gt;  is now &lt;code&gt;Microsoft.Reactive.Testing&lt;/code&gt;&lt;/li&gt;
  57. &lt;/ul&gt;
  58. &lt;div&gt;
  59. And the old packages have been &lt;a href=&quot;https://www.nuget.org/packages/rx-main/2.2.5&quot;&gt;unlisted&lt;/a&gt;.&lt;br /&gt;
  60. &lt;br /&gt;
  61. If you have a need to install the older packages, as I have, then all you need to do is specify the &lt;a href=&quot;https://docs.nuget.org/consume/command-line-reference&quot;&gt;version command line parameter&lt;/a&gt; when using Install-Package, which seems to be your only option.&lt;br /&gt;
  62. &lt;br /&gt;
  63. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  64. &lt;span style=&quot;background-color: #202020; color: #e2e2e2; font-family: &#39;andale mono&#39;, &#39;lucida console&#39;, monospace; font-size: 20.4px; line-height: 30.6px;&quot;&gt;Install-Package Rx-Main -Version 2.2.5&lt;/span&gt;&lt;/blockquote&gt;
  65. &lt;/div&gt;
  66. </description><link>http://www.kiwipiet.com/2016/07/where-to-find-reactive-extensions-225.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-1500756951123937986</guid><pubDate>Tue, 26 Jul 2016 21:36:00 +0000</pubDate><atom:updated>2016-07-27T09:36:00.085+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Xamarin</category><title>Check if Google Play Services are availble in Xamarin</title><description>This is actually pretty easy.  Make sure you have&amp;nbsp;&lt;a href=&quot;https://www.nuget.org/packages/Xamarin.GooglePlayServices.Gcm&quot;&gt;Xamarin.GooglePlayServices.Gcm&lt;/a&gt; installed in your project. &amp;nbsp;Then use the following code:&lt;br /&gt;
  67. &lt;br /&gt;
  68. &lt;br /&gt;
  69. &lt;script src=&quot;https://gist.github.com/kiwipiet/1155660ae89de5c07df7f0ff89979e93.js&quot;&gt;&lt;/script&gt;
  70.  
  71. &lt;br /&gt;
  72. Remember to call&amp;nbsp;GoogleServices.Init(this) in your MainActivity after Forms.Init(this, bundle).</description><link>http://www.kiwipiet.com/2016/07/check-if-google-play-services-are.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-5957022376783130448</guid><pubDate>Tue, 26 Jul 2016 03:50:00 +0000</pubDate><atom:updated>2016-07-26T15:50:14.316+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Xamarin</category><title>Android.Content.ActivityNotFoundException: No Activity found to handle Intent</title><description>I you get the following error message when trying to email using an Android emulator:
  73. &lt;br /&gt;
  74. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  75. &lt;i&gt;Android.Content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND_MULTIPLE typ=text/plain flg=0x10000000 (has extras) }&lt;/i&gt;&lt;/blockquote&gt;
  76. Then you most likely do not have email setup in the emulator. &amp;nbsp;&lt;a href=&quot;https://university.xamarin.com/resources/how-to-install-google-play-on-android-emulator&quot; target=&quot;_blank&quot;&gt;Install Google Play&lt;/a&gt; on the emulator and setup an email account.&lt;br /&gt;
  77. &lt;blockquote&gt;
  78. &lt;/blockquote&gt;
  79. </description><link>http://www.kiwipiet.com/2016/07/androidcontentactivitynotfoundexception.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-3377911719696532802</guid><pubDate>Tue, 19 Jul 2016 20:51:00 +0000</pubDate><atom:updated>2016-07-20T08:52:19.484+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ASP.NET</category><category domain="http://www.blogger.com/atom/ns#">C#</category><category domain="http://www.blogger.com/atom/ns#">MVC</category><title>DefaultFilterProvider</title><description>If you need to apply a &lt;a href=&quot;https://msdn.microsoft.com/en-us/library/system.web.mvc.filterattribute(v=vs.118).aspx&quot; target=&quot;_blank&quot;&gt;FilterAttribute &lt;/a&gt;to all your MVC controllers and actions, but still be able to override the default behaviour, then you can use the following:&lt;br /&gt;
  80. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  81. &lt;i&gt;FilterProviders.Providers.Add(new DefaultFilterProvider&amp;lt;NoAuthorizeAttribute, AuthorizeUserAttribute&amp;gt;());&lt;/i&gt;&lt;/blockquote&gt;
  82. &lt;br /&gt;
  83. &lt;script src=&quot;https://gist.github.com/kiwipiet/b8fd36b5da49194d405a7e54fb290130.js&quot;&gt;&lt;/script&gt;</description><link>http://www.kiwipiet.com/2016/07/defaultfilterprovider.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-2792942100123875395</guid><pubDate>Sat, 09 Jul 2016 04:42:00 +0000</pubDate><atom:updated>2016-07-09T16:42:35.269+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><title>Debug Android applications over Wi-Fi</title><description>&lt;br /&gt;
  84. &lt;div&gt;
  85. Note to self:&lt;/div&gt;
  86. &lt;ul&gt;
  87. &lt;li&gt;Connect your Android device via USB, and make sure that USB debugging is working.&lt;/li&gt;
  88. &lt;li&gt;Open the Android Adb Command Prompt&lt;/li&gt;
  89. &lt;li&gt;Enter the following:&lt;/li&gt;
  90. &lt;/ul&gt;
  91. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  92. adb tcpip 5555&lt;/blockquote&gt;
  93. &lt;br /&gt;
  94. &lt;ul&gt;
  95. &lt;li&gt;Find the IP Address of the device:&lt;/li&gt;
  96. &lt;/ul&gt;
  97. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  98. adb shell netcfg&lt;/blockquote&gt;
  99. &lt;br /&gt;
  100. &lt;ul&gt;
  101. &lt;li&gt;Now connect to the device&amp;nbsp;&lt;/li&gt;
  102. &lt;/ul&gt;
  103. &lt;br /&gt;
  104. &lt;br /&gt;
  105. &lt;div&gt;
  106. &lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
  107. &lt;/div&gt;
  108. &lt;ul&gt;&lt;/ul&gt;
  109. &lt;/div&gt;
  110. &lt;br /&gt;
  111. &lt;blockquote class=&quot;tr_bq&quot; style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
  112. adb connect &amp;lt;device.ip.address&amp;gt;:5555&lt;/blockquote&gt;
  113. &lt;br /&gt;
  114. &lt;ul&gt;
  115. &lt;li&gt;You should now be able to disconnect the device from USB and be able to debug over Wi-Fi&amp;nbsp;&lt;/li&gt;
  116. &lt;/ul&gt;
  117. &lt;div&gt;
  118. &lt;br /&gt;&lt;/div&gt;
  119. &lt;div&gt;
  120. See:&amp;nbsp;&lt;a href=&quot;http://stackoverflow.com/questions/4893953/run-install-debug-android-applications-over-wi-fi&quot; target=&quot;_blank&quot;&gt;Run/install/debug Android applications over Wi-Fi?&lt;/a&gt;&lt;/div&gt;
  121. </description><link>http://www.kiwipiet.com/2016/07/debug-android-applications-over-wi-fi.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-5060666288953872898</guid><pubDate>Sun, 29 May 2016 01:40:00 +0000</pubDate><atom:updated>2016-05-29T13:40:06.039+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Java</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><category domain="http://www.blogger.com/atom/ns#">Xamarin</category><title>java.lang.OutOfMemoryError. Consider increasing the value of $(JavaMaximumHeapSize). Java ran out of memory while executing &#39;java.exe&#39;</title><description>I was getting a&amp;nbsp;java.lang.OutOfMemoryError while trying to compile a Xamarin Android application after adding HockeyApp. &lt;br /&gt;
  122. &lt;br /&gt;
  123. I found to ways to resolve this. &lt;br /&gt;
  124. &lt;br /&gt;
  125. The first option is to add a Environment Variable called _JAVA_OPTIONS and set it to -Xmx1g. &amp;nbsp;This sets the JVM heap size to 1GB. &amp;nbsp;You can either do this from the commandline by calling&lt;br /&gt;
  126. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  127. SET _JAVA_OPTIONS = -Xmx1g&lt;/blockquote&gt;
  128. Or you can edit your system environment variables:&lt;br /&gt;
  129. &lt;br /&gt;
  130. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  131. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfGQvEi-3Ba3oWSNKYgE3GWYeGDbMZ79_8ke5qR4QhqNYARbHph4iluP5qb1BQCI4qqwf-NZaRk2O0_GaqWyy4EnyacEEwQsxfjjjhx2PN_8ew4-S0QXHkegzBc9pY48MNiM5u5pear9JQ/s1600/SystemEnvironmentVariables-JavaOptions.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfGQvEi-3Ba3oWSNKYgE3GWYeGDbMZ79_8ke5qR4QhqNYARbHph4iluP5qb1BQCI4qqwf-NZaRk2O0_GaqWyy4EnyacEEwQsxfjjjhx2PN_8ew4-S0QXHkegzBc9pY48MNiM5u5pear9JQ/s1600/SystemEnvironmentVariables-JavaOptions.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  132. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  133. &lt;br /&gt;&lt;/div&gt;
  134. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
  135. &lt;br /&gt;&lt;/div&gt;
  136. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
  137. The second and my preferred option was to to update the Java Max Heap Size in the Advanced Android Options tab in the Xamarin Android Visual Studio project:&lt;/div&gt;
  138. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
  139. &lt;br /&gt;&lt;/div&gt;
  140. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  141. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Yvh1kweUurXv8fS3ChVIXh9BJx8gtcNQ_y_0T0vtzDLAEgjAGaVL9ZhZhdXHshdQMdHb1mrsuHHCZ8v4YbBfPeK72KsagvdmaWOAlZMI3tLJX4RCar0nz2-Pv5JGcaB6l0kThounMmNw/s1600/VSAndroidOptions.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1Yvh1kweUurXv8fS3ChVIXh9BJx8gtcNQ_y_0T0vtzDLAEgjAGaVL9ZhZhdXHshdQMdHb1mrsuHHCZ8v4YbBfPeK72KsagvdmaWOAlZMI3tLJX4RCar0nz2-Pv5JGcaB6l0kThounMmNw/s1600/VSAndroidOptions.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  142. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  143. &lt;br /&gt;&lt;/div&gt;
  144. </description><link>http://www.kiwipiet.com/2016/05/javalangoutofmemoryerror-consider.html</link><author>noreply@blogger.com (KiwiPiet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfGQvEi-3Ba3oWSNKYgE3GWYeGDbMZ79_8ke5qR4QhqNYARbHph4iluP5qb1BQCI4qqwf-NZaRk2O0_GaqWyy4EnyacEEwQsxfjjjhx2PN_8ew4-S0QXHkegzBc9pY48MNiM5u5pear9JQ/s72-c/SystemEnvironmentVariables-JavaOptions.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-4091050279493220600</guid><pubDate>Tue, 17 May 2016 21:39:00 +0000</pubDate><atom:updated>2016-05-18T09:41:52.337+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ALM</category><category domain="http://www.blogger.com/atom/ns#">TFS</category><title>The specified solution configuration “Debug|X64” is invalid</title><description>I have a build script that finds all the solutions in a version control repository and builds them. &amp;nbsp;I do not specify the platform as many of the solutions and projects have different platform settings.&lt;br /&gt;
  145. &lt;br /&gt;
  146. Today in one of the branches my script started giving me the following error:&lt;br /&gt;
  147. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  148. &lt;pre style=&quot;background-color: #eff0f1; border: 0px; color: #242729; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;The specified solution configuration “Debug|X64” is invalid&lt;/code&gt;&lt;/pre&gt;
  149. &lt;/blockquote&gt;
  150. Adding the following to the start of my build script solved this issue:&lt;br /&gt;
  151. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  152. &lt;pre style=&quot;background-color: #eff0f1; border: 0px; color: #242729; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;SET PLATFORM=&lt;/code&gt;&lt;/pre&gt;
  153. &lt;/blockquote&gt;
  154. </description><link>http://www.kiwipiet.com/2016/05/the-specified-solution-configuration.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-3519842600873123392</guid><pubDate>Tue, 17 May 2016 01:52:00 +0000</pubDate><atom:updated>2016-05-17T13:52:56.098+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TFS</category><title>TFS: Undo checkout of unmodified files</title><description>Here is another one of those shortcuts I have not been aware of. :D&lt;br /&gt;
  155. &lt;br /&gt;
  156. I hate TFS version control. &amp;nbsp;There are many reasons, but one irritating thing is that it is incapable of detecting if a file has actually changed or not.&lt;br /&gt;
  157. &lt;br /&gt;
  158. Here is a little commandline script you can run in your project to undo all unchanged files:&lt;br /&gt;
  159. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  160. &lt;pre style=&quot;background-color: #eff0f1; border: 0px; color: #242729; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;tfpt uu . /noget /recursive&lt;/code&gt;&lt;/pre&gt;
  161. &lt;/blockquote&gt;
  162. Note: You need to install &lt;a href=&quot;https://www.google.co.nz/webhp?sourceid=chrome-instant&amp;amp;ion=1&amp;amp;espv=2&amp;amp;ie=UTF-8#q=Team+Foundation+Server+Power+Tools&quot; target=&quot;_blank&quot;&gt;Team Foundation Server Power Tools&lt;/a&gt;.</description><link>http://www.kiwipiet.com/2016/05/tfs-undo-checkout-of-unmodified-files.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-1608136949338742925</guid><pubDate>Wed, 30 Mar 2016 18:23:00 +0000</pubDate><atom:updated>2016-03-31T07:23:04.458+13:00</atom:updated><title>Prefix.io</title><description>I&#39;ve been using &lt;a href=&quot;http://www.prefix.io/&quot; target=&quot;_blank&quot;&gt;Prefix.io&lt;/a&gt; on my development machine at work for about 3 weeks now. &amp;nbsp;It has been pretty amazing the insights it gave me to what the code base I am working on is doing.&lt;br /&gt;
  163. &lt;br /&gt;
  164. After an early hiccup, which was quickly resolved by the awesome &lt;a href=&quot;https://twitter.com/mattwatson81&quot; target=&quot;_blank&quot;&gt;Matt Watson&lt;/a&gt;, the installation is a breeze, and it just works, with no perceived impact on CPU or memory usage.&lt;br /&gt;
  165. &lt;br /&gt;
  166. I have not had the opportunity to use Stackify APM yet, but if it is half as good as Prefix then everyone should be using it.&lt;br /&gt;
  167. &lt;br /&gt;
  168. Great job Matt and thank you for a fantastic tool!</description><link>http://www.kiwipiet.com/2016/03/prefixio.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-6365271373754444899</guid><pubDate>Sun, 10 Jan 2016 20:36:00 +0000</pubDate><atom:updated>2016-01-11T09:36:54.393+13:00</atom:updated><title>How to setup Node.js and npm behind a corporate web proxy</title><description>&lt;br /&gt;
  169. Proxy with no authentication:&lt;br /&gt;
  170. &lt;br /&gt;
  171. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  172. npm config set proxy http://proxy.com:8080&lt;br /&gt;npm config set https-proxy http://proxy.com:8080&lt;/blockquote&gt;
  173. &lt;br /&gt;
  174. Proxy with authentication:&lt;br /&gt;
  175. &lt;br /&gt;
  176. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  177. npm config set proxy http://username:password@proxy.com:8080&lt;br /&gt;npm config set https-proxy http://username:password@proxy.com:8080&lt;/blockquote&gt;
  178. &lt;br /&gt;
  179. These examples use proxy.com as the proxy server url and 8080 for the port number.</description><link>http://www.kiwipiet.com/2016/01/how-to-setup-nodejs-and-npm-behind.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-7071849464931681054</guid><pubDate>Sun, 03 Jan 2016 23:32:00 +0000</pubDate><atom:updated>2016-01-04T12:32:43.941+13:00</atom:updated><title>How to install Android Studio in Ubuntu</title><description>&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eeeeee; border: 0px; color: #393318; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;sudo apt&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;repository ppa&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;paolorotolo&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;android&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;studio
  180. sudo apt&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; color: darkblue; margin: 0px; padding: 0px;&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt; update
  181. sudo apt&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; color: darkblue; margin: 0px; padding: 0px;&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt; install android&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; color: black; margin: 0px; padding: 0px;&quot;&gt;studio&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
  182. &lt;a href=&quot;https://paolorotolo.github.io/android-studio/&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Reference&lt;/span&gt;&lt;/a&gt;</description><link>http://www.kiwipiet.com/2016/01/how-to-install-android-studio-in-ubuntu.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-2880271081825194598</guid><pubDate>Wed, 23 Dec 2015 18:57:00 +0000</pubDate><atom:updated>2015-12-24T07:57:45.108+13:00</atom:updated><title>Using multiple commands and conditional processing symbols</title><description>Holy cow, I&#39;ve been using windows since, well forever and I did not know you could do this:&lt;br /&gt;
  183. &lt;br /&gt;
  184. &lt;h2 style=&quot;background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 15.1999998092651px; margin: 0px; padding: 8px 0px 4px;&quot;&gt;
  185. Using multiple commands and conditional processing symbols&lt;/h2&gt;
  186. &lt;div style=&quot;background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px 0px 1em;&quot;&gt;
  187. You can run multiple commands from a single command line or script using conditional processing symbols. When you run multiple commands with conditional processing symbols, the commands to the right of the conditional processing symbol act based upon the results of the command to the left of the conditional processing symbol. For example, you might want to run a command only if the previous command fails. Or, you might want to run a command only if the previous command is successful.&lt;/div&gt;
  188. &lt;div style=&quot;background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px 0px 1em;&quot;&gt;
  189. You can use the special characters listed in the following table to pass multiple commands.&lt;/div&gt;
  190. &lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;dataTable&quot; id=&quot;EFG&quot; style=&quot;background-color: white; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px;&quot;&gt;&lt;thead&gt;
  191. &lt;tr class=&quot;stdHeader&quot; style=&quot;background: rgb(153, 204, 255);&quot; valign=&quot;top&quot;&gt;&lt;td id=&quot;colEHG&quot; style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; font-weight: bold; padding: 5px;&quot;&gt;Character&lt;/td&gt;&lt;td id=&quot;colEKG&quot; style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; font-weight: bold; padding: 5px;&quot;&gt;Syntax&lt;/td&gt;&lt;td id=&quot;colENG&quot; style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; font-weight: bold; padding: 5px;&quot;&gt;Definition&lt;/td&gt;&lt;/tr&gt;
  192. &lt;/thead&gt;&lt;tbody&gt;
  193. &lt;tr class=&quot;record&quot; valign=&quot;top&quot;&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  194. &lt;b&gt;&amp;amp;&lt;/b&gt;&amp;nbsp;[...]&lt;/div&gt;
  195. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  196. &lt;i&gt;command1&lt;/i&gt;&amp;nbsp;&lt;b&gt;&amp;amp;&lt;/b&gt;&amp;nbsp;&lt;i&gt;command2&lt;/i&gt;&lt;/div&gt;
  197. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  198. Use to separate multiple commands on one command line. Cmd.exe runs the first command, and then the second command.&lt;/div&gt;
  199. &lt;/td&gt;&lt;/tr&gt;
  200. &lt;tr class=&quot;evenRecord&quot; style=&quot;background: rgb(233, 233, 230);&quot; valign=&quot;top&quot;&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  201. &lt;b&gt;&amp;amp;&amp;amp;&lt;/b&gt;&amp;nbsp;[...]&lt;/div&gt;
  202. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  203. &lt;i&gt;command1&lt;/i&gt;&amp;nbsp;&lt;b&gt;&amp;amp;&amp;amp;&lt;/b&gt;&amp;nbsp;&lt;i&gt;command2&lt;/i&gt;&lt;/div&gt;
  204. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  205. Use to run the command following&amp;nbsp;&lt;b&gt;&amp;amp;&amp;amp;&lt;/b&gt;&amp;nbsp;only if the command preceding the symbol is successful. Cmd.exe runs the first command, and then runs the second command only if the first command completed successfully.&lt;/div&gt;
  206. &lt;/td&gt;&lt;/tr&gt;
  207. &lt;tr class=&quot;record&quot; valign=&quot;top&quot;&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  208. &lt;b&gt;||&lt;/b&gt;&amp;nbsp;[...]&lt;/div&gt;
  209. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  210. &lt;i&gt;command1&lt;/i&gt;&amp;nbsp;&lt;b&gt;||&lt;/b&gt;&amp;nbsp;&lt;i&gt;command2&lt;/i&gt;&lt;/div&gt;
  211. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  212. Use to run the command following&amp;nbsp;&lt;b&gt;||&lt;/b&gt;&amp;nbsp;only if the command preceding&amp;nbsp;&lt;b&gt;||&lt;/b&gt;&amp;nbsp;fails. Cmd.exe runs the first command, and then runs the second command only if the first command did not complete successfully (receives an error code greater than zero).&lt;/div&gt;
  213. &lt;/td&gt;&lt;/tr&gt;
  214. &lt;tr class=&quot;evenRecord&quot; style=&quot;background: rgb(233, 233, 230);&quot; valign=&quot;top&quot;&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  215. &lt;b&gt;( )&lt;/b&gt;&amp;nbsp;[...]&lt;/div&gt;
  216. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  217. &lt;b&gt;(&lt;/b&gt;&lt;i&gt;command1&lt;/i&gt;&amp;nbsp;&lt;b&gt;&amp;amp;&lt;/b&gt;&amp;nbsp;&lt;i&gt;command2&lt;/i&gt;&lt;b&gt;)&lt;/b&gt;&amp;nbsp;&lt;/div&gt;
  218. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  219. Use to group or nest multiple commands.&lt;/div&gt;
  220. &lt;/td&gt;&lt;/tr&gt;
  221. &lt;tr class=&quot;record&quot; valign=&quot;top&quot;&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  222. &lt;b&gt;;&lt;/b&gt;&amp;nbsp;or&amp;nbsp;&lt;b&gt;,&lt;/b&gt;&lt;/div&gt;
  223. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  224. &lt;i&gt;command1&lt;/i&gt;&amp;nbsp;&lt;i&gt;parameter1&lt;/i&gt;&lt;b&gt;;&lt;/b&gt;&lt;i&gt;parameter2&lt;/i&gt;&lt;/div&gt;
  225. &lt;/td&gt;&lt;td style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding: 5px;&quot;&gt;&lt;div class=&quot;lastInCell&quot; style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.1999998092651px; line-height: 15.6800003051758px; padding: 0px;&quot;&gt;
  226. Use to separate command parameters.&lt;/div&gt;
  227. &lt;/td&gt;&lt;/tr&gt;
  228. &lt;/tbody&gt;&lt;/table&gt;
  229. &lt;div class=&quot;dataTableBottomMargin&quot; style=&quot;background-color: white; height: 1px; margin-bottom: 18px; overflow: hidden;&quot;&gt;
  230. &lt;/div&gt;
  231. &lt;h3 style=&quot;background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; margin: 8px 0px 0px; padding-bottom: 4px;&quot;&gt;
  232. &amp;nbsp;&lt;/h3&gt;
  233. </description><link>http://www.kiwipiet.com/2015/12/using-multiple-commands-and-conditional.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-952415908462448536</guid><pubDate>Tue, 18 Aug 2015 00:14:00 +0000</pubDate><atom:updated>2015-08-18T12:14:21.289+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TFS</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>Creating a Team Project in TFS in Visual Studio 2015</title><description>To get to the New Team Project menu in Visual Studio 2015 you need to go to Team Explorer and click on the dropdown bar at the top. &amp;nbsp;Select &#39;Projects and My Teams&#39; and you will see the &#39;New Team Project&#39; menu item.&lt;br /&gt;
  234. &lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
  235. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjopMjGvZj6MKGfGWq5g6aTLAMBoiF9yJYqFr-fHcnENh8aPJ4Ev11qJK-vxqp-1C0z2YF9WfKT88N6jmUX0486ncuk0Ex3pdWJ-LyRRFa2QQe9ufXPz2nchN0npBXcgGwPV1ltUPeY2Y8G/s1600/New+Team+Project.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjopMjGvZj6MKGfGWq5g6aTLAMBoiF9yJYqFr-fHcnENh8aPJ4Ev11qJK-vxqp-1C0z2YF9WfKT88N6jmUX0486ncuk0Ex3pdWJ-LyRRFa2QQe9ufXPz2nchN0npBXcgGwPV1ltUPeY2Y8G/s1600/New+Team+Project.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  236. &lt;br /&gt;
  237. &lt;br /&gt;
  238. Note: You do need to have the &#39;Create new projects&#39; permission on the TFS Application tier to do this.</description><link>http://www.kiwipiet.com/2015/08/creating-team-project-in-tfs-in-visual.html</link><author>noreply@blogger.com (KiwiPiet)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjopMjGvZj6MKGfGWq5g6aTLAMBoiF9yJYqFr-fHcnENh8aPJ4Ev11qJK-vxqp-1C0z2YF9WfKT88N6jmUX0486ncuk0Ex3pdWJ-LyRRFa2QQe9ufXPz2nchN0npBXcgGwPV1ltUPeY2Y8G/s72-c/New+Team+Project.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-5939347747016353756</guid><pubDate>Sun, 16 Aug 2015 22:09:00 +0000</pubDate><atom:updated>2015-08-17T10:09:05.511+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TFS</category><category domain="http://www.blogger.com/atom/ns#">Visual Studio</category><title>The OutputPath property is not set for project &#39;.csproj&#39;.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration=&#39;Release&#39;  Platform=&#39;Any CPU&#39;</title><description>I am busy upgrading a large project originally built with Visual Studio 2008 and TSF2008. &amp;nbsp;We are upgrading to Visual Studio 2015 and TFS2013. &amp;nbsp;During this process I was getting the following error on TFS:&lt;blockquote class=&quot;tr_bq&quot;&gt;
  239. &lt;i&gt;The OutputPath property is not set for project &#39;&amp;lt;project&amp;gt;.csproj&#39;. &amp;nbsp;Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. &amp;nbsp;Configuration=&#39;Release&#39; &amp;nbsp;Platform=&#39;Any CPU&#39;&lt;/i&gt;&lt;/blockquote&gt;
  240. &lt;div&gt;
  241. Notice the space between &#39;Any&#39; and &#39;CPU&#39; in the platform property. &amp;nbsp;In 2008 it seems like there was no space. &amp;nbsp;To fix this you have two options, change your project files to use &#39;Any CPU&#39; or change your TFS build scripts to pass in &#39;AnyCPU&#39;.&lt;/div&gt;
  242. &lt;div&gt;
  243. &lt;br /&gt;&lt;/div&gt;
  244. </description><link>http://www.kiwipiet.com/2015/08/the-outputpath-property-is-not-set-for.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-1074125797524332966</guid><pubDate>Wed, 05 Aug 2015 20:00:00 +0000</pubDate><atom:updated>2015-08-06T08:00:03.002+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Server</category><title>Bug in SQL Server?</title><description>Found a little bug in SQL Server 2008. Maybe just a Management Studio bug, but still...&lt;br /&gt;
  245. &lt;br /&gt;
  246. Restored a database from a server in another domain to my local instance of SQL Server. &lt;br /&gt;
  247. Start running integration tests against the local copy and getting the following error:&lt;br /&gt;
  248. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  249. &lt;i&gt;Could not obtain information about Windows NT group/user&amp;nbsp;&amp;nbsp;&#39;domain2\Administrator&#39; error code 0x5.&lt;/i&gt;&lt;/blockquote&gt;
  250. Some tests are passing, some not. &amp;nbsp;So I debug one that does not. &amp;nbsp;Turns out it is inserting records into a table with a trigger that inserts a record into an Audit table.&lt;br /&gt;
  251. &lt;br /&gt;
  252. Nothing peculiar about that, have seen this pattern used in the wild, but never seen this error before. &amp;nbsp;I start looking at my local copy of the DB and first check the owner. &amp;nbsp;That is set to my login in the local domain &#39;domain3\MyUsername&#39;. &amp;nbsp;Leave it alone for a while, have a look at the logins for the Database, No &#39;domain2\Administrator&#39; to be found. &amp;nbsp;Try adding &#39;domain2\Administrator&#39; as a user and get an error, user already exists. &amp;nbsp;WTF! I can&#39;t see this user anywhere. &amp;nbsp;Some serious head scratching going on...&lt;br /&gt;
  253. &lt;br /&gt;
  254. Finally I decide to change the owner to &#39;sa&#39;, run the tests and they all work. &amp;nbsp;Then go and check the database in the &#39;domain2&#39; domain and there it is the database owner is &#39;domain2\Administrator&#39;.&lt;br /&gt;
  255. &lt;br /&gt;
  256. So if anyone else runs into this issue, check your database owner first.&lt;br /&gt;
  257. &lt;br /&gt;
  258. Don&#39;t ask about the domains, there are many (they are there to replicate our clients environment). And I did not have user access to domain2, but I did have access to the database server.</description><link>http://www.kiwipiet.com/2015/08/bug-in-sql-server.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5858737462756557726.post-4766772004821240545</guid><pubDate>Tue, 04 Aug 2015 20:00:00 +0000</pubDate><atom:updated>2015-08-05T08:00:01.059+12:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET</category><title>Anonymous types are internal</title><description>When testing against anonymous types you need to know that they are internal to the assembly they are declared in.&lt;br /&gt;
  259. &lt;br /&gt;
  260. Add an &lt;a href=&quot;https://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(v=vs.110).aspx&quot; target=&quot;_blank&quot;&gt;InternalsVisibleTo&lt;/a&gt; assembly attribute to the declaring assembly to resolve this or you will get&amp;nbsp;RuntimeBinderException exceptions like the following:&lt;br /&gt;
  261. &lt;blockquote class=&quot;tr_bq&quot;&gt;
  262. Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: &#39;object&#39; does not contain a definition for &#39;Success&#39;&lt;/blockquote&gt;
  263. For more detailed explanations and samples have a look at:&lt;br /&gt;
  264. &lt;br /&gt;
  265. &lt;ul&gt;
  266. &lt;li&gt;&lt;a href=&quot;http://juristr.com/blog/2013/01/aspnet-mvc-action-methods-testing-against-anonymous-return-types/&quot; target=&quot;_blank&quot;&gt;ASP.net MVC Action Methods: Testing Against Anonymous Return Types&lt;/a&gt;&lt;/li&gt;
  267. &lt;li&gt;&lt;a href=&quot;http://www.rantdriven.com/post/2010/10/18/Dynamic-Types-Make-Unit-Testing-JSON-in-ASPNET-MVC-a-Breeze!.aspx&quot; target=&quot;_blank&quot;&gt;Dynamic Types Make Unit Testing JSON in ASP.NET MVC a Breeze!&lt;/a&gt;&lt;/li&gt;
  268. &lt;/ul&gt;
  269. </description><link>http://www.kiwipiet.com/2015/08/anonymous-types-are-internal.html</link><author>noreply@blogger.com (KiwiPiet)</author><thr:total>0</thr:total></item></channel></rss>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//feeds.feedburner.com/psh

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda