As part of my quest to become a cloud developer extraordinaire, I've been trying a number of different learning resources for Google App Engine. I had a pretty positive experience with the Udacity offering. The CBTNuggets series on GAE, however, I found a bit disappointing. Whereas Udacity aims to cover GAE in about a week, the CBT course is about 8 hours. Though really it's more like 5 hours because the demos are all done twice, once in Python and once in Java.
Wednesday, June 10, 2015
Monday, June 8, 2015
Berkeley CS169 - Software Engineering (Lecture Notes)
Recently finished up all the lectures for the Berkeley Webcast of CS 169 - Software Engineering. This course focuses on building Software as a Service (SaaS) applications in Ruby on Rails. Although I don't anticipate the need to know a lot of RoR for work, the concepts discussed in the course were extremely valuable and I would definitely recommend them to anyone looking to learn about professional software development. Some key topics of interest:
- Agile project development
- Testing and refactoring
- Design patterns
- CI and deployment
These are my notes on the lectures, which are really more like a detailed table of contents so that I could easily reference the lectures if I wanted to revisit a topic. I figure the course website has all the slides and reference to the book, so recreating that content seemed a bit silly...
Friday, May 22, 2015
Berkeley CS61B - Data structures
I hadn't ventured into the open courseware realm for a while, and I've wanted to get a bit of formal education on data structures and algorithms for a while, so I finally took the plunge a couple weeks ago and started 61B. For quick reference, here are the relevant locations:
Course Website
Course Lectures
Big O Cheatsheet
Wikipeadia articles on data structures.
Course Website
Course Lectures
Big O Cheatsheet
Wikipeadia articles on data structures.
Wednesday, May 20, 2015
Experimenting with Jenkins, ReviewBoard, and Redmine on Azure
As the developers at work finished up the last loose ends on the Programming Standards we were tasked with creating at work, one of the last things we talked about was how to enforce the standards. This led to a discussion of code reviews, and I went down the rabbit hole, going so far as to read SmartBear's free 150 page ebook on the subject. I thought it was a great approach but it seemed that in order to really get the most out of it, you needed a tool. I wanted to play around with something, so I began looking into what was available for free, and ended up going down a bit of a different rabbit hole: continuous integration. I wanted to see how Jenkins, ReviewBoard, and Redmine could work together to act as a suite of tools for agile development. So I spun up some Ubuntu 14.04 instances on my Azure account, and away I went...
Udacity Course: Developing Scalable Apps in Java
My new position focuses on cloud development, with an emphasis on Google App Engine. I wanted to get up and running quickly, so I worked through this course from Udacity. Prior to this course, I'd only worked on one other App Engine project, which was basically an expansion on the Google Backend API Walkthrough. I'd previously used the Google Plugin for Eclipse, however this project uses the App Engine maven plugin, so that was different. Overall I thought it was a good course. Naturally, nothing involving Eclipse can go smoothly the first time, but after a couple hiccups, I was off and running.
Monday, April 27, 2015
Microsoft 70-486: Design and implement MVC controllers and actions
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 3.3
Programming ASP.NET MVC 4 (OReilly) - Chapter 1 (§ on Controllers)
Professional ASP.NET MVC 5 (WROX) - Chapter 2 (Controllers)
ASP.NET MVC 4 Custom Action Filters
New Filter Overrides feature in ASP.NET MVC 5 and ASP.NET Web API 2Programming ASP.NET MVC 4 (OReilly) - Chapter 1 (§ on Controllers)
Professional ASP.NET MVC 5 (WROX) - Chapter 2 (Controllers)
ASP.NET MVC 4 Custom Action Filters
MSDN Controllers and Action Methods in ASP.NET MVC Applications
MSDN Filtering in ASP.NET MVC
Wednesday, March 25, 2015
Microsoft 70-486: Plan for search engine optimization and accessibility
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 3.1
Programming ASP.NET MVC 4 (OReilly) - Page 297 (blurb about short URLs...)
MSDN - Search Engine Optimization
MSDN - Designing Accessibility with HTML5
Google - Review your page titles and snippets
WC3 - Web Content Accessibility Guidelines (WCAG) 2.0
WC3 - WAI-ARIA Overview
WC3 - WAI-ARIA 1.0 Primer
Programming ASP.NET MVC 4 (OReilly) - Page 297 (blurb about short URLs...)
MSDN - Search Engine Optimization
MSDN - Designing Accessibility with HTML5
Google - Review your page titles and snippets
WC3 - Web Content Accessibility Guidelines (WCAG) 2.0
WC3 - WAI-ARIA Overview
WC3 - WAI-ARIA 1.0 Primer
Saturday, March 7, 2015
Fun with ciphers and generated text with JavaScript
Many moons ago, on a day I had very little else to do, I had this silly notion to create a Google Spreadsheet that would generate a line of text "mad-lib" style. I'd already created a "team name" generator that basically just picked an adjective and a noun and put them together, which made for some rather amusing results, such as "The Pensive Tangerines", "The Drunk Stumpies", and "The Kindly Rippers".
Friday, March 6, 2015
AppEngine, Eclipse, Google API's ... and grey hairs
This is another straight forward "lessons learned" kind of post. The last week I've been working on a side project at work for the "Innovation" team. We're tasked with creating a paperless timecard system for the agency, and I've taken on the piece that interfaces with the Google APIs to save the timecards.
Monday, February 16, 2015
Microsoft 70-486: Compose the UI layout of an application
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 2.3
Programming ASP.NET MVC 4 (OReilly) - Chapter 1 (§ on Views), 6 (§ on partial rendering)
Professional ASP.NET MVC 5 (WROX) - Chapter 3 (Views)
Pluralsight Building Applications with ASP.NET MVC 4 (Module 3)
What is difference between @Html.Partial and @Html.RenderPartial ?
Text templating using Razor the easy wayProgramming ASP.NET MVC 4 (OReilly) - Chapter 1 (§ on Views), 6 (§ on partial rendering)
Professional ASP.NET MVC 5 (WROX) - Chapter 3 (Views)
Pluralsight Building Applications with ASP.NET MVC 4 (Module 3)
What is difference between @Html.Partial and @Html.RenderPartial ?
How to create custom HTML Helpers for ASP.NET MVC 3
Tuesday, February 3, 2015
Microsoft 70-486: Design HTTP modules and handlers
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 1.7
ASP.NET HTTP Modules and HTTP Handlers Overview
How To Create an ASP.NET HTTP Handler by Using Visual C# .NETASP.NET HTTP Modules and HTTP Handlers Overview
Wednesday, January 28, 2015
Microsoft 70-486: Plan an adaptive UI layout
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 2.5
Programming ASP.NET MVC 4 (OReilly) - Chapter 10 (Mobile Web Development)
Professional ASP.NET MVC 5 (WROX) - Chapter 16 (Advanced Topics - Mobile Support)
MSDN - Creating Mobile-Optimized Views in ASP.NET MVC 4
jQuery Mobile Official Site
YouTube: jQuery Mobile 101, Intro to jQuery Mobile
ASP.NET MVC 4 Mobile Features
Programming ASP.NET MVC 4 (OReilly) - Chapter 10 (Mobile Web Development)
Professional ASP.NET MVC 5 (WROX) - Chapter 16 (Advanced Topics - Mobile Support)
MSDN - Creating Mobile-Optimized Views in ASP.NET MVC 4
jQuery Mobile Official Site
YouTube: jQuery Mobile 101, Intro to jQuery Mobile
ASP.NET MVC 4 Mobile Features
Sunday, January 18, 2015
Microsoft 70-486: Enhance application based on browser feature detection
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 2.4
Programming ASP.NET MVC 4 (OReilly) - Chapter 10 (Mobile Web Development)
Professional ASP.NET MVC 5 (WROX) - Chapter 16 (Advanced Topics - Mobile Support)
MSDN - Detecting devices and their features
MozDN - Browser detection using the user agent
Browser detection versus feature detection
Programming ASP.NET MVC 4 (OReilly) - Chapter 10 (Mobile Web Development)
Professional ASP.NET MVC 5 (WROX) - Chapter 16 (Advanced Topics - Mobile Support)
MSDN - Detecting devices and their features
MozDN - Browser detection using the user agent
Browser detection versus feature detection
Thursday, January 15, 2015
Fun with Coordinates: A story about using JavaScript to do things the hard way.
Went to a training class this morning on using Google's MyMaps. Interesting enough, though I don't see myself ever really using it. For the uninitiated, this application lets you upload a spreadsheet of locations with a bunch of metadata, and you can manipulate the visualization. Well, the map pointers are placed based on either an address or a lat and long. The presenter noted that she wasn't sure if you could use UTM or State Planar Coordinate System coordinates. Because I had pretty much exhausted my interest in playing with the MyMaps interface in about 10 minutes, I took it as a challenge to obtain and test a UTM data set. I did a search for an available dataset but didn't find anything useful, however I had at my disposal a Google Sheets spreadsheet that had the Wyoming zip codes with latitudes and longitudes (basically a truncated version of this file). "So I'll just convert the ones I have, easy..." BWAHAHAHA ok, we'll get to what that was about.
Wednesday, January 14, 2015
Microsoft 70-486: Design and implement UI behavior
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 2.2
Programming ASP.NET MVC 4 (OReilly) - Chapters 3 (Data Annotation, 4 (Client Programming) and 6 (AJAX)
Professional ASP.NET MVC 5 (WROX) - Chapters 6 (Data Annotation) and 8 (AJAX)
Programming ASP.NET MVC 4 (OReilly) - Chapters 3 (Data Annotation, 4 (Client Programming) and 6 (AJAX)
Professional ASP.NET MVC 5 (WROX) - Chapters 6 (Data Annotation) and 8 (AJAX)
MSDN - Models and Validation in ASP.NET MVC
JQuery UI documentation
Model binding, Data Annotation, and Custom HTML Helpers
JQuery UI documentation
Model binding, Data Annotation, and Custom HTML Helpers
Previous blogs relevant to objective:
JavaScript: client side validation, handle events, interact with DOM, apply styling programmatically,
objects and methods, scope, AJAX and JQuery
objects and methods, scope, AJAX and JQuery
Thursday, January 8, 2015
Microsoft 70-486: Apply the user interface design for a web application
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 2.1
Static vs. Dynamic Content
MSDN - HtmlHelper, HtmlHelperExtensions
Previous blogs relevant to objective:
HTML: Basic HTML, HTML Forms
CSS: Style Layout, Style Text, Selectors, Animation, Cascading
Static vs. Dynamic Content
MSDN - HtmlHelper, HtmlHelperExtensions
Previous blogs relevant to objective:
HTML: Basic HTML, HTML Forms
CSS: Style Layout, Style Text, Selectors, Animation, Cascading
Friday, January 2, 2015
Microsoft 70-486: Implement a secure site with ASP.NET
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 5.5
Programming ASP.NET MVC 4 (OReilly) - Chapter 9
How does HTTPS actually work?
MSDN - TLS Handshake Protocol
DigiCert - SSL Certificate Installation in Microsoft IIS 8 and IIS 8.5
Microsoft - Enable HTTPS for an Azure website
Asp.net Identity password hashing - MSDN PasswordHasher Class
Hashing Passwords using ASP.NET's Crypto Class - MSDN Crypto Class Programming ASP.NET MVC 4 (OReilly) - Chapter 9
How does HTTPS actually work?
MSDN - TLS Handshake Protocol
DigiCert - SSL Certificate Installation in Microsoft IIS 8 and IIS 8.5
Microsoft - Enable HTTPS for an Azure website
Asp.net Identity password hashing - MSDN PasswordHasher Class
Password management made easy in ASP.NET with the Crypto API
XSS Cross Site Scripting Demonstration - Short Video
Introduction to XSS Cross Site Scripting Injection Vulnerabilities - Short Video
MSDN - Differences Between AntiXss.HtmlEncode and HttpUtility.HtmlEncodeIntroduction to XSS Cross Site Scripting Injection Vulnerabilities - Short Video
owasp.org - ASP.NET Request Validation
Prevent CSRF and Deferred Validation
owasp.org - Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet
Asp.net - XSRF/CSRF Prevention in ASP.NET MVC and Web Pages
owasp.org - Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet
Asp.net - XSRF/CSRF Prevention in ASP.NET MVC and Web Pages
Friday, December 5, 2014
BoxBlaster: Real time gaming demo with Signalr and Azure
I wanted to do something more interesting than a chat room using Signalr, so in the long standing tradition of going way over the top and biting off more than I can chew, I decided I would build a multiplayer shooter game using Signalr. Over the long Thanksgiving holiday, much to my wife's chagrin, I stole every free moment to build this demo. I gotta say I'm pretty happy with the results.
You can check out the latest version of the code on GitHub: github.com/sabotuer99/BoxBlaster.

Wednesday, November 26, 2014
Microsoft 70-486: Design and implement a WebSocket strategy
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 1.6
Programming ASP.NET MVC 4 (OReilly) - Chapter 11
OReilly - Websockets
Programming ASP.NET MVC 4 (OReilly) - Chapter 11
OReilly - Websockets
Channel 9 - Building real-time web apps with HTML5 WebSockets - 1 hour video, Client side
MSDN - WebSockets: Stable and Ready for Developers
Channel 9 - Building apps with WebSockets using IIS, ASP.NET and WCF - 1 hour video, Server side
Channel 9 - Web Dev Futures Day Session 5: Building real-time apps with WebSockets
Channel 9 - Building Real-Time Applications with ASP.NET SignalR
Channel 9 - Damian Edwards and David Fowler Demonstrate SignalR
Microsoft Virtual Academy - Lighting Up Real-Time Web Communications with SignalR
Simple server implemtation in C# EchoHandler.ashx.cs
MSDN - WebSockets: Stable and Ready for Developers
Channel 9 - Building apps with WebSockets using IIS, ASP.NET and WCF - 1 hour video, Server side
Channel 9 - Web Dev Futures Day Session 5: Building real-time apps with WebSockets
Channel 9 - Building Real-Time Applications with ASP.NET SignalR
Channel 9 - Damian Edwards and David Fowler Demonstrate SignalR
Microsoft Virtual Academy - Lighting Up Real-Time Web Communications with SignalR
Simple server implemtation in C# EchoHandler.ashx.cs
Tutorial: Getting Started with SignalR 2
Introduction to Scaleout in SignalR
My Post - Microsoft 70-480: Implement a callback (WebSockets)
Introduction to Scaleout in SignalR
My Post - Microsoft 70-480: Implement a callback (WebSockets)
Tuesday, October 21, 2014
Microsoft 70-486: Design a caching strategy
Exam Objectives
Quick Overview of Training Materials
Exam Ref 70-486: Developing ASP.NET MVC 4 Web Applications - Objective 1.5
Programming ASP.NET MVC 4 (OReilly) - Chapter 12
Understanding Caching in Asp.Net MVC with example
Using VaryByCustom With OutputCache in ASP.NET MVC
MSDN - Caching Multiple Versions of a Page (How tos)
Output Caching in MVC 4 Explained
MSDN - OutputCacheAttribute Class, OutputCacheParameter Class
Output Caching Actions Gotcha in ASP.NET MVC 3
Donut Output Caching in ASP.NET MVC 3
Asp.net MVC4 – Donut Caching & Donut Hole Caching
Donut Hole Caching In ASP.NET MVC
Cache Exploration in ASP.NET MVC 3
Programming ASP.NET MVC 4 (OReilly) - Chapter 12
Understanding Caching in Asp.Net MVC with example
Using VaryByCustom With OutputCache in ASP.NET MVC
MSDN - Caching Multiple Versions of a Page (How tos)
Output Caching in MVC 4 Explained
MSDN - OutputCacheAttribute Class, OutputCacheParameter Class
Output Caching Actions Gotcha in ASP.NET MVC 3
Donut Output Caching in ASP.NET MVC 3
Asp.net MVC4 – Donut Caching & Donut Hole Caching
Donut Hole Caching In ASP.NET MVC
Cache Exploration in ASP.NET MVC 3
MSDN - Walkthrough: Using ASP.NET Output Caching with SQL Server
A Beginner's Tutorial for Understanding and Implementing Caching in ASP.NET MVC
MSDN - Walkthrough: Caching Application Data in ASP.NET
Buffering Exploration in ASP.NET MVC 3 - Data Caching
A Beginner's Tutorial for Understanding and Implementing Caching in ASP.NET MVC
MSDN - Walkthrough: Caching Application Data in ASP.NET
Buffering Exploration in ASP.NET MVC 3 - Data Caching
Asp.net - Data caching in ASP.Net applications
Tutorial - ASP.NET Data Caching (Object Caching)
How to use the System.Web.Caching.Cache Object – ASP.NET Data Caching
How to use the System.Web.Caching.Cache Object – ASP.NET Data Caching
How do I add site-wide no-cache headers to an MVC 3 app
A Beginner's Guide to HTTP Cache Headers, W3 Header Spec
Google Developers - HTTP caching
A Beginner's Guide to HTTP Cache Headers, W3 Header Spec
Google Developers - HTTP caching
MSDN - Introducing the Microsoft Azure Caching Service
MSDN - Azure Managed Cache Service
Lap around Azure Redis Cache (video) (MSDN Azure Redis Cache)
MSDN - Which Azure Cache offering is right for me?
How to Use Azure Managed Cache ServiceAzure Documentation - Cache
MSDN - Azure Managed Cache Service
Lap around Azure Redis Cache (video) (MSDN Azure Redis Cache)
MSDN - Which Azure Cache offering is right for me?
How to Use Azure Managed Cache ServiceAzure Documentation - Cache
MVC and the HTML5 Application Cache
MSDN - Application Cache API ("AppCache")
Html5 Offline Cache Integration with ASP.NET MVC Bundle
Application Cache is a douchebag
MSDN - Application Cache API ("AppCache")
Html5 Offline Cache Integration with ASP.NET MVC Bundle
Application Cache is a douchebag
Subscribe to:
Comments (Atom)