Christopher Canisius

Christopher Canisius

Member Since December 7, 2018

10,647

Total Points

Points are earned whenever you take an important action on Treehouse.
Learn more about when and how points are earned.

151 Achievements

  • Filtering Inputs and Escaping Outputs in PHP
  • $_GET and $_POST
  • PHP Inventory
  • PHP Includes
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • PHP Arrays
  • PHP Conditionals
  • Optimization Best Practices
  • Asset Optimization
  • Why Web Performance Matters
  • Reformatting User Input
  • Validating a Form with Regular Expressions
  • Regular Expressions
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Testing for Accessibility
  • Mobile Accessibility
  • Accessible UI Patterns
  • Semantic HTML and WAI-ARIA
  • WCAG 2.0 (and Other Standards)
  • Access for Everybody
  • WebDriver Input Actions
  • WebDriver Waits
  • Use Selenium with Testing Frameworks
  • Exploring Best Practices
  • Test Drive
  • Meet Selenium
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Next Steps
  • Improving Quality Assurance Practices
  • Bug Reporting
  • Executing Tests
  • Writing Manual Test Cases
  • Why We Test
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Getting the REST You Need 2
  • Practicing Getters and Setters
  • Adding the Game Logic
  • Making the Game Interactive
  • Rendering the Game
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • Branches on Git Hosting Services
  • Remote Branches
  • Merging
  • Branches
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Keyframe and Line Drawing Animations
  • Transitions and Transforms
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Introduction to Node.js
  • Improving Our Tests
  • Behavior Driven Development with Mocha & Chai
  • Introducing Unit Testing
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • Programming AJAX
  • AJAX Concepts
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • Modular Media Queries
  • Sass Grid System
  • SMACSS and Sass
  • Sass and BEM
  • Getting Modular with Mixins and Functions
  • Add Reusable Logic to Your Sass
  • Write Smart and Efficient CSS with Sass
  • Improve Your Workflow with Sass
  • Getting Started with Sass
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • Introducing jQuery (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Working with jQuery Collections (2017)
  • JavaScript Loops
  • JavaScript Arrays
  • JavaScript Objects
  • Responsive Theory
  • Media Queries
  • Responsive Patterns
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Advanced Selectors
  • Selectors - Beyond the Basics
  • Understanding Flexbox
  • Flexbox Properties
  • Building a Layout with Flexbox
  • Controlling Layout with CSS Display Modes
  • Page Layout with the Float Property
  • CSS Layout Project
  • Positioning Page Content
  • Getting Started with CSS Layout
  • Introduction to SVG
  • Creating an SVG
  • Choosing Options
  • Form Basics
  • Organizing Forms
  • Media Basics
  • Captioning Video
  • Planning for Performance
  • Measuring Performance
  • Optimize Assets
  • Combine and Minify Assets
  • Practicing Classes
  • Art Direction with the Picture Element
  • Image Delivery with Srcset and Sizes
  • Going Further with Grid Layout
  • Flexible Sized Grids
  • Introducing Grid Layout
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Create Function Using Arrow Syntax
  • Using Template Literals
  • Defining Variables With let and const
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Newbie