Posts

Get Line Numbers In Exception Stack Trace

Image
If you want to ensure you get line numbers in your Exception Stack Trace, you need to make sure your project is set up to provide "full" debug info on build. By default, for "Release" configuration, this is set to "pdb-only". Steps to enable: In Visual Studio... 1. Ensure your project is set to "Release" Solution Configuration (or whichever config you use for deployments) 2. Go to Project > Properties > Build 3. Click the Advanced Button in the bottom right. 4. Under Output > "Debug Info", choose "full" from the dropdown. 5. Save all settings and build your project. You will now see line numbers in Exception Stack Traces. Hope this helps, Aaron

Write Azure WebJob Logs to SQL

We've been working with Azure WebJobs recently (more info: here and here ) and even though the built in logging to Azure Storage is great, it is difficult to query at times. In more recent version of the WebJobs SDK, the team exposed a TraceWriter collection via the JobHost configuration that allows consumers to write logs to a custom repository. The snippet linked below is a naive implementation of using that collection to write the logs to SQL Server. Feel free to adapt it to fit your needs (i.e. performance concerns, async, batching, etc.) Write Azure WebJob Logs to SQL: https://gist.github.com/aaronhoffman/3e319cf519eb8bf76c8f3e4fa6f1b4ae Hope this helps, Aaron

Convert WGS84 to Web Mercator Pixel

Image
My google-fu wasn't the best when searching for a way to convert WGS84 to Web Mercator EPSG:3857, which is the common Google Maps and Bing Maps projection. If you have arrived here in search of an answer, the links to explain everything are below. Essential Background https://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/ Take the EPSG WKT from article 1, and use it in the proj.net library http://blogs.u2u.be/diederik/post/2010/01/01/Converting-Spatial-Coordinates-with-ProjNET.aspx The definitive MSDN article https://msdn.microsoft.com/en-us/library/bb259689.aspx Code from MSDN article that doesn't use the proj.net Library https://gist.github.com/aaronhoffman/f53e1852ca289e4a806c062f97a18f05 Live Demo (in JavaScript): https://jsfiddle.net/aaronhoffman/L1kpdmgz/ And this next section is just to help others search and get here: Convert WGS84 to Web Mercator Convert WGS84 to Google Maps Convert WGS84 to Bing M

Pixel Grid Images 8x8 pixel grid on 256 pixel image

Image
Working with some images of maps, I had a need for some pixel grid overlays. I couldn't find any with a quick google search so I made these in paint.net using the Grid Maker  plugin. Images below 8x8 pixel grid on 256 pixel image 8x8 pixel grid on 1024 pixel image 16x16 pixel grid on 256 pixel image 16x16 pixel grid on 1024 pixel image Hope this helps, Aaron

UTM Zone WGS84 Latitude Longitude Bounding Box

We are using proj.net  to calculate the UTM Easting/Northing values for a given pair of WGS84 Latitude/Longitude coordinates. But I couldn't find an easy way to determine the correct UTM Zone for a WGS84 coordinate pair. The Zone had to be provided for the library to calculate the Easting/Northing values. I wanted the library to decide the best UTM zone based on the lat/lng coordinates. To assist with this, I created the following table containing the "bounding box" lat/lng values for each UTM Zone in North America. Test Code and CSV file: https://gist.github.com/aaronhoffman/699d3659e1f68991e85d05e5637e1c5a The easiest way I found to determine these values was to use the centroid point for each UTM Zone, then add +/- 4 degrees Latitude (North/South) and +/- 3 degrees Longitude (East/West). I have also provided some C# code to convert these into arrays, and then an example using a " point in polygon " function to determine the appropriate UTM Zone.

Azure HTTP Web Server Logs to SQL

Image
If you enable File System Web Server logs for your Azure App Service... Settings > Diagnostics logs > Web server logging > File System You'll start to see logs on the file system for your app service here: (you can find your FTP host and credentials in the publish profile file) /LogFiles/http/RawLogs Alternatively, you can see these logs through the Kudu UI: https://{yourappservicename}.scm.azurewebsites.net/DebugConsole/?shell=powershell Instead of downloading these one and a time and parsing through them, you can use the following library to assist in loading them into a relational database. You could even run this as a webjob within your app service. Get the code here: https://github.com/Stonefinch/AzureWebServerLogsToSql **Update: This repo now includes a web project that references the console app as a WebJob. You may also want to check out the LogParser tool by Microsoft https://blogs.msdn.microsoft.com/friis/2014/02/06/how-to-

Store Amazon SES Delivery Notifications in DynamoDB using SNS and Lambdas

Image
I spent way too much time configuring my Amazon AWS account to store Simple Email Service SES Delivery Notifications to a DynamoDB Table . I thought I'd put this guide together to hopefully help future developers. This guide does not currently cover these topics, but I may include them in the future: 1. Setting up your Amazon AWS Account. 2. Setting up Amazon SES. (dkim, domain/email identities, etc.) 3. Integration with Amazon SES from your app. 4. SNS Topic creation/configuration. Prerequisites: 1. Amazon AWS account has been created/configured. 2. Amazon SES has been created/configured. 3. Amazon SNS Topic has been created/configured. 4. Delivery Notifications for the Amazon SES Domain Identity have been configured to be sent to the SNS Topic. 5. Your app is integrated with Amazon SES and successfully sending email. Step by Step Guide to Storing SES Delivery Notification messages into a DynamoDB Table: So at this point, you're successfully integrated w