Sunday, May 15, 2016

Microsoft 70-486: Configure authentication

Exam Objectives


Authenticate users; enforce authentication settings; choose between Windows, Forms, and custom authentication; manage user session by using cookies; configure membership providers; create custom membership providers; configure ASP.NET Identity

Quick Overview of Training Materials


How to configure IIS client certificate mapping authentication for IIS7

Saturday, April 23, 2016

Microsoft 70-486: Design and implement claims-based authentication across federated identity stores

Exam Objectives


Implement federated authentication by using Azure Access Control Service; create a custom security token by using Windows Identity Foundation; handle token formats (for example, oAuth, OpenID, Microsoft Account, Google, Twitter, and Facebook) for SAML and SWT tokens

Quick Overview of Training Materials


Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 5.3
MSDN - A Guide to Claims-Based Identity and Access Control (2e)
MSDN - Windows Identity Foundation
MSDN - How to Authenticate with Azure Active Directory Access Control
MSDN - ACS How To's
MSDN - WIF Code Sample Index
Google Identity Platform - OpenID Connect
Federate with Windows Live using OAuth and SAML
Facebook Developer Console
Google Developer Console
Using Windows Azure ACS in MVC 5 Application Using VS 2013
Write a custom security token and handler in WIF
PluralSight - Windows Azure Access Control Service (a bit dated, but not bad)
PluralSight - Claims-based Identity for Windows: The Big Picture (Paid)
PluralSight - Identity and Access Control in ASP.NET 4.5 (Paid)
PluralSight - Introduction to Identity and Access Control in .NET 4.5 (Paid)
Dominik Baier - Claims and Tokens become the standard Model (Video)

Consolidated Code Samples on GitHub

Thursday, April 21, 2016

Where to learn Ruby on Rails

For our developer book club, we chose "Engineering Software as a Service", and are working through the associated MOOC through EdX.  The book focuses on using Agile and TDD to build apps using Ruby on Rails.  Because I'm the book clubs facilitator, I thought it would be a good idea if I knew what the hell I was doing when we met every week, so I set out to learn Ruby and Rails.  These are some of the resources I found and my thoughts on them...

Wednesday, March 30, 2016

Microsoft 70-486: Prevent and troubleshoot runtime issues

Exam Objectives


Troubleshoot performance, security, and errors; implement tracing, logging (including using attributes for logging), and debugging (including IntelliTrace); enforce conditions by using code contracts; enable and configure health monitoring (including Performance Monitor)

Quick Overview of Training Materials


Monday, March 7, 2016

Microsoft 70-486: Design an exception handling strategy

Exam Objectives


Handle exceptions across multiple layers, display custom error pages using global.asax or creating your own HTTPHandler or set web.config attributes, handle first chance exceptions

Quick Overview of Training Materials


Friday, March 4, 2016

How to dismantle a poorly designed registration wall

Mr. SiteOwner... tear down this wall!


Sorry, couldn't resist.  Let's ignore the fact that I was five years old when Ronald Reagan spoke those words.  I hate forced registration.  If your content is free, make it free.  If I want to get your shitty emails, then I'll sign up, but this whole passive-aggressive "you can look if you give me your email address" bullshit just gets on my nerves.

Microsoft 70-486: Reduce network bandwidth

Exam Objectives


Bundle and minify scripts (CSS and JavaScript), compress and decompress data (using gzip/deflate; storage), plan a content delivery network (CDN) strategy (for example, Azure CDN)

Quick Overview of Training Materials



Monday, February 29, 2016

Microsoft 70-486: Debug an Azure application

Exam Objectives


Collect diagnostic information by using Azure Diagnostics API and appropriately implement on demand versus scheduled; choose log types (for example, event logs, performance counters, and crash dumps); debug an Azure application by using IntelliTrace, Remote Desktop Protocol (RDP), and remote debugging; interact directly with remote Azure websites using Server Explorer.

Quick Overview of Training Materials


Cloud Diagnostics - Take Control of Logging and Tracing in Windows Azure

This post has about 4 billion screenshots, so I apologize in advance...

Thursday, February 25, 2016

Using Maven and Google Plugin for Eclipse together in harmony

So, this post is mostly about documenting, for myself, how to get Eclipse and Maven set up correctly for my current project, but I think there might also be some bits of useful wisdom for other devs who might be working with similar circumstances.  The basic, 30k foot look at my problem is something like this:


   I have a Google Web Toolkit (GWT) project that is to run on Google App Engine (GAE).  How do I use Maven to manage dependencies, while still maintaining the functionality that the Google Plugin for Eclipse (GPE) gives me?

Saturday, January 16, 2016

Microsoft 70-486: Test a web application

Exam Objectives


Create and run unit tests (for example, use the Assert class), create mocks; create and run web tests, including using Browser Link; debug a web application in multiple browsers and mobile emulators

Quick Overview of Training Materials


Isolating Code Under Test with Microsoft Fakes
MSDN - Understanding Web Tests
YouTube - Creating Web Test and Load Test using Microsoft Visual Studio

Saturday, December 26, 2015

Microsoft 70-486: Design and implement routes

Exam Objectives


Define a route to handle a URL pattern, apply route constraints, ignore URL patterns, add custom route parameters, define areas

Quick Overview of Training Materials


Friday, December 18, 2015

MIT 6.006 Intro to Algorithms

Resources:

Tuesday, December 15, 2015

Migrating AppEngine Datastore Entities to a SQL Database: Jenkins Automation

In two previous posts I laid out the process for extracting the entities from the Google AppEngine datastore and then loading them into Azure SQL.  While this process was successful, it was also a bit labor intensive.  I felt pretty certain that the process could be automated, so I set out to script it out and run it from Jenkins.

My initial goal was to complete the entire process, from initiating the datastore backup to pushing to Azure, without modifying the existing app in any way.  So, while the most straight forward way to backup the enties periodically is with a (shocker) cron job, I wanted to try to trigger the backup from outside the app.

Sunday, December 6, 2015

Berkeley CS61B - Data structures (Projects)

Back in May I worked through the Data Structures class through UC Berkeley.  I got the homeworks finished, but I put off working on the projects right away.  In August I got projects 0 and 1 finished.
In late October I finally got around to finishing Project 2.  Finally, in early December I finished Project 3 (I got sidetracked working through MIT's Intro to Algorithms class... and doing like, a billion HackerRank challenges lol)

Wednesday, November 25, 2015

Migrating AppEngine Datastore Entities to a SQL Database: Azure Load

In my last post, I went over the process of getting our datastore entities from into a .csv file via BigQuery.  This seemed like a good split point, since getting a .csv or Excel file into an Azure SQL database might be of interest regardless of where the .csv came from.  I'll also quickly go over some Azure gotcha's to look out for.

As a bit of background, initially I was just going to do all the querying from within BigQuery.  But it was a bit clunky, and kind of intimately tied me in to the process of getting the data the supervisors wanted.  My manager pointed out that a more general solution was probably preferable, so I looked into getting the .csv data into a SQL database.  This is the rest of the story...

Migrating AppEngine Datastore Entities to a SQL Database: Extraction

Handwavy, tl;dr version: 
  • Back up entities to Cloud Storage
  • Import into BigQuery
  • Export .csv
  • Migrate with SQL Server Import - Export Data tool

Our help ticket system at work (creatively named "HTS") is hosted on Google AppEngine, with data persisted to the HR datastore.  My manager approached me (since I'm the "appengine developer") and asked me if it would be possible to do a "data dump".  Nothing pretty, just get it all out and into a spreadsheet or something so that supervisors could run some rudimentary reporting (the build-in capabilities in HTS weren't cutting it). So I rolled up my sleeves and got to work.  Here's how it all went down...

Sunday, October 4, 2015

Coursera Machine Learning by Stanford

Just finished up my first full blown course from Coursera, a course from Stanford University on Machine Learning.  I'd watched through the lecture series for the Stanford Natural Language Processing class, but I didn't do the programming exercises (yet...) so I don't really count that one. Finished up way ahead of schedule, though to be fair, they set a pretty leisurely pace.