Rory Deken

Rory Deken

Member Since December 29, 2014

43,149

Total Points

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

550 Achievements

  • Basic Android Programming
  • Creating the Screen Layout
  • Getting Started with Android
  • The Lambda Lambada
  • Functional Workhorses
  • Functional Rules
  • Covering Your Bases
  • Be Assertive!
  • Python Regular Expressions
  • Vulnerabilities: Configuration, Components, and Logging
  • Vulnerabilities: Authentication, Access, and Sensitive Data
  • Vulnerabilities:  Injection, XSS, CSRF
  • The OWASP Top 10 Explained
  • Security in Practice
  • Common Attacks and Defenses
  • Hello Internet!
  • Maintaining Secure Web Apps
  • Protecting Data and Keeping Attackers Out
  • Why Protect Your Web Apps
  • What Is Testing?
  • Clean Routes and Custom Validation
  • Accessing Data using Resources
  • Laravel CRUD operations
  • Seeding the Database
  • MVC (Model)
  • MVC (View)
  • MVC (Controller)
  • Application Navigation (Routing)
  • Getting Started With Laravel
  • Connecting to a Database with SQLAlchemy
  • Creating a Basic Website with Flask
  • Working with SQLAlchemy
  • Introduction to SQLAlchemy
  • Security: Solutions
  • Security: Concerns
  • API Protection
  • Resourceful Blueprints
  • Gettin' CRUD-y With It
  • Our Diary App
  • Meet Peewee
  • Character Builder
  • Flask Templates
  • Welcome to Flask
  • Dice Roller
  • Python: Advanced Objects
  • Python: Inheritance
  • Python: Instant Objects
  • Building a Flashcard App
  • Sweeping Vues: Loops, Methods, Directives
  • What a Beautiful Vue!
  • Introducing Vue
  • Getting the REST You Need 2
  • JavaScript Objects and Conditionals
  • JavaScript Arrays and Loops
  • JavaScript Functions
  • Data Types and Variables
  • Timezones
  • Math Quiz App
  • Dates and Times
  • Buggy Logs
  • Cleaner Code
  • Creating a Memory Game
  • Emulating Built-ins
  • Welcome to OOP
  • Iterating and Packing with Dictionaries
  • Introducing Dictionaries
  • Sequence Operations
  • Sequence Iterations
  • Packing and Unpacking
  • Getting Info In and Out of Functions
  • Introduction to Functions
  • Build an Application
  • Using Lists
  • Meet Lists
  • Getting to Know Tuples
  • All Together Now
  • Functions and Looping
  • Types and Branching
  • Meet Python
  • Improving Quality Assurance Practices
  • Bug Reporting
  • Executing Tests
  • Writing Manual Test Cases
  • Why We Test
  • JavaScript Frameworks, Libraries, and Developer Roles
  • JavaScript Outside of the Browser
  • Adding a Model Attribute
  • Using the Rails Console
  • Handling Rails Requests
  • Creating Rails Apps
  • Build a Grocery List Program
  • Ruby Hashes
  • Ruby Arrays
  • Ruby Conditionals
  • Ruby Numeric Types
  • Ruby Objects
  • Ruby Strings and Escape Sequences
  • Ruby Syntax
  • Inheritance
  • Methods
  • Object-Oriented Programming
  • If Statements
  • Numbers
  • Strings
  • Methods
  • C# Syntax
  • Performing CRUD Operations
  • Defining Models
  • Getting Started with Sequelize
  • Writing a Classifier
  • Machine Learning Vocabulary
  • Introduction to Machine Learning
  • Handling Errors When Manipulating Data
  • Deleting Data from a Database
  • Updating Data in a Database
  • Adding Data to a Database
  • Refactoring and Modularizing a REST API
  • Create, Read, Update, Delete
  • Managing Data and Asynchronous Code
  • Getting to Know REST APIs
  • Asynchronous Code in Express
  • Serving Static Files in Express
  • Applying Express Knowledge
  • Middleware
  • Deeper into Routing with Express
  • Using Templates with Express
  • Getting Started with Express
  • Adding the Game Logic
  • Making the Game Interactive
  • Rendering the Game
  •  Building Constructor Methods and Generating Objects
  • Introducing 'Four in a Row'
  • Getters and Setters
  • Working with Classes in JavaScript
  • Object Basics
  • Introduction to Object-Oriented JavaScript
  • Exploring Async/Await
  • Understanding Promises
  • Asynchronous JavaScript with Callbacks
  • What is Asynchronous Programming?
  • Using the MVC Architecture with Spring
  • Modeling, Storing, and Presenting Data with Spring
  • AJAX Concepts
  • Programming AJAX
  • Introducing jQuery (2017)
  • Understanding jQuery Events and DOM Traversal (2017)
  • Working with jQuery Collections (2017)
  • Using Template Literals
  • Create Function Using Arrow Syntax
  • Defining Variables With let and const
  • JavaScript is Everywhere
  • JavaScript Tools and Workflows
  • Creating Spring Controllers and Thymeleaf Views
  • Spring Components and Configuring Our App
  • Setting Up Your Local Environment for Spring Development
  • Creating a Command Line Weather Application
  • Handling Errors in Node
  • Getting Data From an API With Node
  • Intro to Objective-C
  • Angular Form Validation
  • Angular Basic Forms
  • Services in Angular
  • Angular Components
  • Setting Up an Angular Application
  • Introduction to Node.js
  • Classes
  • Objects and New Collection Types
  • The Cooler Parts of ES2015
  • ES2015 Basics
  • Adding a New Web Page
  • Make It Beautiful with CSS
  • HTML: The Structural Foundation of Web Pages and Applications
  • Getting Familiar with HTML and CSS
  • Going Further with HTML
  • Images, Text and Links
  • Structuring Your Content
  • Getting Started With HTML
  • Captioning Video
  • Media Basics
  • DOM Traversal
  • DOM Manipulation
  • Events
  • Hello, jQuery!
  • Improving the Application Code
  • Editing and Filtering Names
  • Adding and Removing Names
  • Traversing the DOM
  • Responding to User Interaction
  • Making Changes to the DOM
  • Getting a Handle on the DOM
  • The Browser Environment
  • Event Planning
  • Build a Pomodoro App
  • Design a Better App
  • Finishing the Game
  • Introducing JavaScript
  • Graphical User Interfaces
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • Meet Objects
  • Advanced Tooling
  • IDE Exploration
  • Testing for Accessibility
  • Mobile Accessibility
  • Accessible UI Patterns
  • Semantic HTML and WAI-ARIA
  • WCAG 2.0 (and Other Standards)
  • Access for Everybody
  • How it Works
  • Building Forms with Bootstrap
  • Using Bootstrap Components
  • Responsive Layouts with the Bootstrap Grid
  • Getting to Know Bootstrap 4
  • Building a Collection
  • Building the Recipe
  • Understanding Classes
  • Why Object-Oriented Programming?
  • PHP Loops
  • PHP Arrays
  • PHP Conditionals
  • PHP on the Web
  • Daily Exercise Program
  • Unit Converter
  • Getting to Know PHP
  • Efficiency!
  • Exploring the Java Collections Framework
  • Organizing Data
  • Getting There
  • Delivering the MVP
  • Creating the MVP
  • Harnessing the Power of Objects
  • PHPDB Stage 5: Search
  • PHPDB Stage 4: Pagination with LIMITs
  • PHPDB Stage 3: Using Relational Data
  • PHPDB Stage 2: Querying the Database with PHP
  • PHPDB Stage 1: Databases and PHP
  • Finding the Data You Want
  • Getting Data from a Database
  • Data, Databases and SQL
  • Adding 3D Effects with CSS
  • Getting Started with CSS Transforms
  • Transition Timing Functions and Delays
  • Getting Started with CSS Transitions
  • Improving Our Todo App
  • Services in Angular
  • Using Angular's Built-in Directives
  • Controllers and Scope
  • DNS Basics
  • Graphic Basics
  • Website Basics
  • GET and POST Requests in a Browser
  • Introduction to HTTP
  • Getting the REST You Need
  • Getting Started with Angular
  • Test Doubles
  • Acceptance Tests
  • Organizing your Tests
  • Creating Your Tests
  • Tools for Testers
  • How To Test Our Code
  • Error Handling
  • Creating Distributable OOP Packages
  • Autoloading and Composer
  • Databases and International Concerns
  • Starting Right with PHP Best Practices
  • Limiting Results in Queries
  • Using Relationship Tables
  • Filtering Input for Queries
  • Querying the Database
  • Connecting to MySQL
  • Paginating a List: Model and View
  • Paginating a List: Controller
  • Adding Search: Model
  • Adding Search: Controller & View
  • Refactoring the Codebase
  • Cleaning URLs with Rewrite Rules
  • Cleaning URLs with Subfolders
  • Integrating Validation Errors
  • Database Security
  • Queries & Results
  • Meet Objects
  • Getting Started with PDO
  • Perfecting the Prototype
  • Using your New Tools
  • Getting Started with Java
  • Simple PHP Application: Wrapping Up The Project
  • Working with PHP Functions
  • Integrating With Paypal
  • Listing Inventory Items
  • Adding a Contact Form
  • Creating the Menu and Footer
  • Getting Started with PHP
  • PHP Email Form Errors
  • PHP Email Forms
  • PHP Inventory
  • PHP Includes
  • Securing and Maintaining a MySQL Database
  • SQL Calculating, Aggregating and Other Functions
  • Joining Relational Data Between Tables in SQL
  • Manipulating Schema with SQL
  • Creating Tables and Manipulating Data with SQL
  • Reading Data from Databases with SQL
  • Installing MySQL Server and MySQL Workbench
  • Introduction to Data, Databases and SQL
  • Contact Forms & Mailers
  • Slim and Templates
  • Dependency Management
  • PHP Inheritance & Interfaces
  • PHP Properties & Methods
  • PHP Objects and Classes
  • PHP Internal Functions
  • PHP Returns & Closures
  • PHP Functions Basics
  • PHP Loops
  • PHP Conditionals
  • PHP Datatypes
  • PHP Data & Structure
  • PHP Getting Started
  • Improving your Gulp Workflow
  • Compile Sass with Gulp
  • Gulp your JavaScript workflow!
  • Welcome to Gulp.js
  • Doing More with Express
  • Serving Static Files in Express
  • Using Templates with Express
  • The Request and Response Objects in Express
  • Developing Express Apps Like a Boss
  • Getting Started with Express
  • Updating and Uninstalling Packages with npm
  • Installing Packages with npm
  • What is npm?
  • HTTP Methods and Headers
  • Creating a Basic Template Engine in Node.js
  • Handling Routes in Node.js
  • Creating a Simple Server in Node.js
  • Building a Command Line Application
  • Introduction to Node.js
  • Using a jQuery Carousel
  • Add a Sticky Navigation Bar
  • Introducing jQuery Plugins
  • Save for the Web
  • Adding Images and a Mockup
  • Logo Design
  • Creating a Wireframe
  • Introducing Adobe Illustrator
  • Advanced Sass Concepts
  • Speeding up Workflow With Sass
  • Variables, Mixins, and Extending Selectors
  • Getting Started with Sass
  • Flexbox Properties
  • Building a Layout with Flexbox
  • Understanding Flexbox
  • Positioning Page Content
  • CSS Layout Project
  • Page Layout with the Float Property
  • Controlling Layout with CSS Display Modes
  • Getting Started with CSS Layout
  • Combine and Minify Assets
  • Optimize Assets
  • Creating an SVG
  • Introduction to SVG
  • Measuring Performance
  • Planning for Performance
  • Workflows
  • Working With Remote Repositories
  • Merging
  • Branches
  • Things That Count
  • Ins & Outs
  • Getting Started With Git
  • Say Hello to Python
  • Why Version Control Matters
  • Installing Programs
  • Environment and Redirection
  • Console Processes
  • Console Users and Permission
  • Moving Around in the Console
  • Chrome DevTools Basics
  • Web Apps
  • Websites
  • Introduction
  • Quiz Practice Project
  • Prototypal Inheritance
  • Constructor Functions & Prototypes
  • Introduction to Methods
  • AJAX and APIs
  • jQuery and AJAX
  • Programming AJAX
  • AJAX Concepts
  • Moving Forward with UX
  • Tools UXers Use
  • How UXers Think
  • What Do User Experience Designers Do?
  • What is User Experience (UX)?
  • Finalizing the Project
  • Case Studies and Examples
  • The Brand Identity Design Process
  • Introduction to Brand Identity
  • The Logo Sprint
  • Logo Design 101
  • Creating Home Page Assets
  • Applying Effects
  • How to Draw in Illustrator
  •  Adding Color and Type
  • Creating an Icon
  • Introduction to Illustrator
  • Workflow Basics
  • Slices & Save for Web
  • Vector Shapes
  • Type Tools
  • Masks Basics
  • Layer Basics
  • Workspace Basics
  • Design Foundations Final
  • Becoming a Problem Solver
  • Understanding Aesthetics
  • Introduction to Design
  • Grid Layout
  • Flexbox Layout
  • Positioning Schemes
  • Float Layout
  • Display Modes
  • Advanced Selectors
  • Going Further with Attribute Selectors and Pseudo-Classes
  • Selectors - Beyond the Basics
  • Responsive Patterns
  • Media Queries
  • Responsive Theory
  • Custom Media Players
  • Captioning Video
  • Media Basics
  • Traversing and Manipulating the DOM with JavaScript
  • Selecting Elements and Adding Events with JavaScript
  • JavaScript and the DOM
  • Structuring Tables
  • Table Basics
  • Creating a Simple Drawing Application
  • Creating a Password Confirmation Form
  • Creating a Mobile Drop Down Menu
  • Creating a Simple Lightbox
  • Creating a Spoiler Revealer
  • Introduction to jQuery
  • JavaScript Objects
  • JavaScript Arrays
  • JavaScript Loops
  • Choosing Options
  • Organizing Forms
  • Form Basics
  • JavaScript Functions
  • JavaScript Conditional Statements
  • JavaScript Numbers
  • JavaScript Variables
  • Introducing JavaScript
  • The Production Server
  • The Staging Server
  • The Local Development Environment
  • Launching and Supporting a WordPress Plugin
  • Building WordPress Template Tags, Widgets, and Shortcodes
  • Connecting WordPress Plugins with 3rd Party APIs
  • Building a WordPress Plugin Settings Page
  • How WordPress Plugins Work
  • Hooking Into WordPress Plugins
  • Action Functions in WordPress
  • Filter Functions in WordPress
  • An Overview of Hooks in WordPress
  • Custom WordPress Customizer Settings
  • Native WordPress Customizer Options
  • Overview of the WordPress Customizer
  • Custom Dashboard Widgets
  • Controlling Admin Navigation
  • Customizing the Login Screen
  • Admin Color Schemes
  • More Advanced PHP for WordPress
  • PHP Basics for WordPress
  • Introduction to PHP for WordPress
  • Add Bootstrap Components to WordPress Theme
  • Create Bootstrap Styled Theme Templates
  • Better SEO Through Tools
  • Better SEO Through Code
  • Better SEO Through Content
  • Introduction to SEO
  • Setup a Bootstrap Theme
  • A Template Hierarchy Review
  • Media Templates in WordPress
  • Custom Post Type Templates
  • Archive Templates in WordPress
  • Page and Post Templates in WordPress
  • Homepage Templates in WordPress
  • Core WordPress Theme Files
  • How WordPress Templates Work
  • JavaScript Objects
  • JavaScript Functions
  • JavaScript Arrays
  • JavaScript Numbers
  • JavaScript Strings
  • Introduction Variables
  • Functions
  • Objects and Arrays
  • Control Structures
  • Basics
  • Finishing Your WordPress Theme
  • Custom Homepage Templates in WordPress
  • Adding a Blog to a WordPress Theme
  • Custom Post Type Templates
  • Building Out WordPress Navigation
  • Building Page Templates in WordPress
  • The WordPress Loop
  • WordPress Header and Footer Templates
  • Working with CSS and JS in WordPress Themes
  • Starting a WordPress Theme
  • Finding Good WordPress Plugins and Themes
  • Managing Comments on a WordPress Blog
  • Working with Media in WordPress Blogs
  • Posts and Pages in WordPress
  • Local WordPress Development
  • WordPress Plugin Best Practices
  • Widgets and Custom Menus
  • Custom Post Types and Fields
  • Customizing WordPress Themes
  • WordPress Themes
  • Installing Wordpress
  • Blogging with WordPress Overview
  • WordPress Admin Settings
  • WordPress User Roles
  • Owning a WordPress Site Long Term
  • WordPress Community Management
  • Working with Media in WordPress
  • Adding and Editing Content
  • Getting a WordPress Site
  • The WordPress Codex
  • Getting Started with WordPress
  • Fundamental Concepts
  • Designing with the Latest Features
  • Basic Layout
  • The Box Model
  • Understanding Values and Units
  • Basic Selectors
  • Getting Started with CSS
  • Debugging HTML and CSS Problems
  • Sharing a Website
  • Responsive Web Design and Testing
  • Adding Pages to a Website
  • Styling Web Pages and Navigation
  • Customizing Colors and Fonts
  • CSS: Cascading Style Sheets
  • Creating HTML Content
  • HTML First
  • Beginning HTML and CSS
  • Newbie