A
- -a (all) flag, Initializing a Git repository
- Access tokens, Getting Your Twitter Credentials
- accessibility issues, Structuring the Main Content
- Active Record, Model-View-Controller
- Add Your Comment prompt, The Structure
- AJAX (Asynchronous JavaScript And XML)
- AJAX requests on page loading, AJAXifying Our Tabs
- basic example of, Accessing an External JSON File
- benefits of, AJAX
- overview of, Summary
- alt attribute, Structuring the Main Content
- Amazeriffic app example
- adding interactivity to
- creating tabbed interface, Adding Interactivity to Amazeriffic
- manipulating content, Manipulating content
- refactoring code, Refactoring the code using a function
- retrieving project, Getting Started
- structure/style for, The Structure and Style
- tab content set up, Setting up the tab content
- tab functionality, The Interactivity
- adding tags feature to
- adding a tags tab, Adding a Tags Tab
- adding tags to new elements, Tags as Part of Our Input
- building the UI, Building the UI
- intermediate tags data structure, Creating an Intermediate Tags Data Structure
- mapping functions to elements, The map Function
- retrieving project, Adding a Tags Feature to Amazeriffic
- adding user admin page, Adding a User Admin Page
- adding users to
- building user controller, Building the User Controller
- building user model, Adding Users to Amazeriffic
- improving controller actions, Improving Our ToDo Controller Actions
- setting up routes, Setting Up Routes
- creating a server for
- building the server, Building the Server
- directories set up, Creating a Server for Amazeriffic
- Git repository initialization, Initializing a Git Repository
- posting information to the server, Posting Information to the Server
- running the server, Running the Server
- creating splash page
- identifying structure, Identifying Structure
- implementing structure, Implementing the Structure with Our Workflow
- structuring footer, Structuring the Footer
- structuring main content, Structuring the Main Content
- visualizing structure tree diagram, Visualizing Structure with a Tree
- data storage for, Storing Amazeriffic ToDos
- Frequently Asked Questions (FAQ) page
- creating, Build the FAQ Page for Amazeriffic
- styling, Style the FAQ Page for Amazeriffic
- refactoring client code
- AJAX requests on page loading, AJAXifying Our Tabs
- generalizing meaningful concepts, Refactoring Our Client
- handling AJAX errors, Handling AJAX Errors
- removing compatibility hack, Ridding Ourselves of Hacks
- refactoring server code
- code organization, Refactoring Our Server
- HTTP response codes, HTTP Response Codes
- HTTP/CRUD/Controller mappings, HTTP Verbs, CRUD, and REST
- model-view-controller design, Model-View-Controller
- put/delete requests, Using jQuery for put and delete Requests
- setting up routes by ID, Setting Up Routes by ID
- removing ToDos from, Removing ToDos
- styling splash page
- adding/manipulating fonts, Adding and Manipulating Fonts
- adjusting spacing, A Few More Modifications
- creating columns, Creating the Columns
- grid over content, The Grid
- reset.css file creation, Styling Amazeriffic
- retrieving project, Styling Amazeriffic
- style.css file creation, Styling Amazeriffic
- anchor (<a>) tag, Headings and Anchors and Lists, Oh My!
- and (&&) operator, Selection
- annotations
- for CSS code, Comments
- for HTML code, Comments
- for JavaScript code, Comments
- anonymous functions, Functions
- app.js element, Hello, JavaScript!
- appending vs. prepending elements, Adding elements to the DOM
- application programming interfaces (APIs), Summary, Other APIs
- arguments, Functions
- arrays
- adding elements to, Arrays
- creating, Arrays
- creating one long, Representing Playing Cards
- dynamic sizing of, Arrays
- forEach loops, Arrays
- indexing into, Arrays
- JSON arrays, A JSON Array
- populating with objects, Representing Playing Cards
- practice exercises using, Array Practice
- setting individual elements, Arrays
- assignment (=) statement, Selection, Using JSLint to Identify Potential Problems
- asynchronous programming, Events and Asynchronicity
B
- binding, Summary
- block-style elements, Padding, Border, and Margin
- border-radius value, The Style
- borders, Padding, Border, and Margin
- bullets, Headings and Anchors and Lists, Oh My!
- button (<button>) tag, The Structure
C
- caching, Redis
- callbacks, Events and Asynchronicity, Generalizations
- camelCase, Making the Enter key work as expected
- cascading rules, Cascading Rules
- Cascading Style Sheets (CSS)
- basic example, Hello, CSS!
- benefits of, Hello, CSS!
- creating file for, Hello, CSS!
- detailed rules for, Cascading Rules
- fonts, Working with Fonts
- function of, Hello, CSS!
- further practice/reading, More Practice and Further Reading
- identifying potential problems, Using CSS Lint to Identify Potential Problems
- layouts with floats, Layouts with Floats–The clear Property
- overview of, Summary
- padding, border and margin properties, Padding, Border, and Margin
- resetting browser inconsistencies, Resetting Browser Inconsistencies
- responsive design, The Grid, Responsiveness and Responsive Libraries
- rulesets, Rulesets
- selectors, Selectors
- specifying colors in, Rulesets
- troubleshooting, Interacting and Troubleshooting with the Chrome Developer Tools
- cd (change directory) command, Changing directories
- cf tool, Getting Your App Ready for Deployment
- chaining, Dynamically manipulating the DOM
- child elements, The Document Object Model and Trees
- Chrome
- Chrome Developer Tools, Interacting and Troubleshooting with the Chrome Developer Tools, Handling click events, Dynamically manipulating the DOM
- Command/Ctrl-O (file open), Tags Versus Content
- Command/Ctrl-R (refresh page), <p> Is for Paragraph
- installation of, Installing Chrome
- interaction with JSON objects in, JSON
- JavaScript interpreter, Interacting with JavaScript in the Chrome JavaScript Console
- overcoming security restrictions in, Overcoming Browser Security Restrictions
- clear property, The clear Property
- click events, Handling click events, The Interactivity
- client-side technologies
- client vs. server programs, Clients and Servers
- CSS, Hello, CSS!–Interacting and Troubleshooting with the Chrome Developer Tools
- data from Twitter/Facebook/Flickr, Communication Between Computers–Getting Images from Flickr, Counting Tweets–Setting Up a Client
- HTML, Hello, HTML!–Using HTML Validation to Identify Problems
- JavaScript, The Interactivity–Refactoring for simplicity, JavaScript Generalizations–Using JSLint to Identify Potential Problems, Hello, JavaScript Objects!–Generalizations
- jQuery, jQuery Generalizations–Events and Asynchronicity
- Node.js, The Server–Setting Up a Client
- skeleton client set up, Setting Up a Client
- vs. server-side technologies, The Bridge
- cloud computing, The Platform, Other Platforms
- Cloud Foundry
- account creation, Creating an Account
- additional reading/practice, Cloud Foundry, Poker API
- app deletion, Deleting Apps from Cloud Foundry
- app deployment, Deploying Our App
- app updates, Updating Your App
- connecting to external dependencies, Dependencies and package.json
- overview of, Summary
- preparing for deployment, Getting Your App Ready for Deployment
- status logs, Getting Information About Your Apps
- using MongoDB with, Binding MongoDB to Your App
- using Redis with, Binding Redis to Your App
- code organization
- controllers, Separating concerns: controllers
- models, Code Organization
- collections, MongoDB, Interacting with the MongoDB Command-Line Client
- colorbox plug-in, jQuery Plug-ins
- colors, specifying with CSS, Rulesets, The Style
- columns, Layouts with Floats
- Command/Ctrl-O (file open), Tags Versus Content
- Command/Ctrl-R (refresh page), <p> Is for Paragraph
- Command/Ctrl-Tab (switch active window), Generalizations
- comment-input sections, The Structure, Clearing out the input box
- comments
- for CSS code, Comments
- for HTML code, Comments
- for JavaScript code, Comments
- comparison (===) statement, Selection, Using JSLint to Identify Potential Problems
- computer networking
- applications involved, Practicalities
- client vs. server programs, Clients and Servers
- hosts and guests, Hosts and Guests
- conditions, building complex, Selection
- console global variable, Using JSLint to Identify Potential Problems
- Consumer key/Consumer secret, Getting Your Twitter Credentials
- Contact information, Structuring the Footer
- Content Delivery Networks, Hello, JavaScript!
- continuation condition, Iteration
- core path module, Sending Your Client App
- credentials
- obtaining, Getting Your Twitter Credentials
- safe storage of, Getting Your Twitter Credentials
- cross-site scripting security, Overcoming Browser Security Restrictions
- CRUD/HTTP/Controller mappings, HTTP Verbs, CRUD, and REST
- CSS Lint, Using CSS Lint to Identify Potential Problems
- CSS resets, Resetting Browser Inconsistencies
D
- data modeling, Modeling Data with Mongoose
- databases
- additional reading/practice, Other Database References
- benefits of, The Data Store
- MongoDB, MongoDB–Storing Amazeriffic ToDos
- NoSQL vs. SQL, NoSQL Versus SQL
- overview of, Summary
- Redis, Redis–Using mget to Get Multiple Values
- descendants, The Document Object Model and Trees, Inheritance
- development environment, building with Vagrant, Setting Up Your Environment
- development workflow
- applications involved, Practicalities
- basic pattern for app building, Generalizations
- further practice/reading, Memorization–GitHub
- HTML documents, Generalizations
- jQuery project setup, Setting Up a Project
- overview of, Summary
- text editors, Text Editors–Sublime Text Basics
- version control systems, Version Control–Saving versus committing
- virtual machines and, Hosts and Guests
- web browsers, Browsers
- directories
- basics of, Unix Command-Line Basics
- changing, Changing directories
- creating, Creating directories
- cross-platform directory paths, Sending Your Client App
- current vs. parent, Initializing a Git repository
- determining working directory, Where am I?
- displaying hidden files in, Initializing a Git repository
- listing contents of current, Where am I?
- moving back one, Changing directories
- visualizing with tree diagrams, Filesystems and trees
- Document Object Model (DOM)
- adding elements to, DOM Manipulation
- basics of, The Document Object Model and Trees
- removing elements from, Removing elements from the DOM
- dot (.) operator, Generalizations
- double-click (dblclick) event, Events and Asynchronicity
- DRY (Don’t Repeat Yourself) principle, Refactoring for simplicity
- duplicated code, removing, Refactoring for simplicity, Generalizing Our Tweet Counter Code
E
- EJS (EmbeddedJS), Views Using EJS and Jade
- elements
- adding class attributes to, Classes
- adding to the DOM, DOM Manipulation
- block-style, Padding, Border, and Margin
- child elements, The Document Object Model and Trees
- definition of, The Document Object Model and Trees
- dynamic manipulation of, Dynamically manipulating the DOM
- first-child elements, More Complex Selectors
- inline display of, Padding, Border, and Margin
- parent elements, The Document Object Model and Trees
- prepending vs. appending, Adding elements to the DOM
- removing from the DOM, Removing elements from the DOM
- styling with pseudoclasses, Pseudoclasses
- stylistic elements, Identifying Structure
- void elements, Structuring the Main Content
- else statements, Selection
- Emacs text editor, Emacs and Vim
- Enter key action, Making the Enter key work as expected
- Enter vs. Shift-Enter keys, Interacting with JavaScript in the Chrome JavaScript Console
- environment variable, Getting Your App Ready for Deployment
- errors
- during Express module installation, Installing Express with NPM
- HTTP response codes, HTTP Response Codes
- identifying pre-install, Setting up a test bed
- identifying with Chrome Developer Tools, Interacting and Troubleshooting with the Chrome Developer Tools, Dynamically manipulating the DOM
- identifying with CSS Lint, Using CSS Lint to Identify Potential Problems
- identifying with HTML validation, Using HTML Validation to Identify Problems
- identifying with JSHint, JSHint and CSS Lint via NPM
- identifying with JSLint, Using JSLint to Identify Potential Problems
- invalid ID, Setting Up Routes by ID
- null value, Generalizations
- even value, The Style
- event listeners, Handling click events, Making the Enter key work as expected
- event-driven programming, Events and Asynchronicity
- exploratory coding, Version Control
- Express module
- API creation with, Poker API
- converting JSON into JavaScript object, Posting Information to the Server
- Express server creation, Our First Express Server
- importing into, Importing Our Module Into Express
- installation of, Installing Express with NPM
- overview of, Summary
- sending information, Sending Your Client App
- specifying in Cloud Foundry, Dependencies and package.json
F
- fadeIn method, Fading in our new comment
- fadeOut method, Removing elements from the DOM
- falsy values, Initializing the Counts from the Redis Store
- files
- accessing external JSON, Accessing an External JSON File
- app.js file, Hello, JavaScript!
- associating external, Hello, JavaScript!
- creating new, Determining the status of our repository, Implementing the Structure with Our Workflow
- defining JSON objects in external, JSON
- displaying hidden, Initializing a Git repository
- leaving out of GIT repository, Getting Your Twitter Credentials
- loading time required, Hello, JavaScript!
- overcoming access restriction, Overcoming Browser Security Restrictions
- saving vs. committing, Saving versus committing
- style.css file, Hello, CSS!
- transferring between computers, Clients and Servers
- filesystem
- filename requirements, Sublime Text Basics, Sending Your Client App, Deploying Our App
- tree diagram mental model, Filesystems and trees
- Unix commands for, Unix Command-Line Basics, Summary
- find function, Models
- first-child elements, More Complex Selectors
- first-class functions, Functions
- 500 response code, HTTP Response Codes
- fixed-width design, The Grid
- FizzBuzz problem, FizzBuzz
- Flickr
- getting images from, Getting Images from Flickr
- slideshow, Flickr Slideshow
- float property, Layouts with Floats–The clear Property
- fonts, Working with Fonts
- footer (<footer>) tag, Implementing the Structure with Our Workflow
- for loops, Iteration
- forEach loops, Arrays
- 404 error code, HTTP Response Codes
- Frequently Asked Questions (FAQ) page, Build the FAQ Page for Amazeriffic
- FTP (File Transfer Protocol), Clients and Servers
- function calls, chaining of, Dynamically manipulating the DOM
- functions
- attached to jQuery objects, Generalizations
- first class, Functions
- inputs/outputs, Functions
- scheduling of, Events and Asynchronicity, Using the setInterval function to schedule tasks
- testing pre-install, Setting up a test bed
G
- get command, Interacting with the Redis Command-Line Client, Initializing the Counts from the Redis Store
- getJSON function, The getJSON Function
- Git
- -m (message) flag, Our first commits!
- branching, More About Git
- commands, Summary
- configuring, Configuring Git for the first time
- git add command, Our first commits!
- Git Bash terminal simulator, Unix Command-Line Basics
- git commit command, Our first commits!
- git log command, Viewing the history of our repo
- git status command, Determining the status of our repository
- GitHub, GitHub
- in development process, Practicalities
- installation of, Installing Git
- leaving files out of respository, Getting Your Twitter Credentials
- parent vs. child commits, Saving versus committing
- repository history, Viewing the history of our repo
- repository initialization, Initializing a Git repository
- repository status, Determining the status of our repository
- saving vs. committing, Saving versus committing
- Unix command-line basics, Unix Command-Line Basics
- global functions
- console global function, Using JSLint to Identify Potential Problems
- main global function, Hello, JavaScript!
- parseInt global function, Initializing the Counts from the Redis Store
- Google Chrome (see Chrome)
- Google Fonts, Working with Fonts
- Google’s Gmail web app, AJAX
- Graphical User Interface (GUI) editors, Text Editors
- grid-type layout, Layouts with Floats, The Grid
- guest machines, Hosts and Guests
H
- header (<header>) tag, Implementing the Structure with Our Workflow
- heading (<h1>) tag, Headings and Anchors and Lists, Oh My!
- Heroku, Other Platforms
- hide method, Fading in our new comment
- hierarchical systems
- Document Object Model, The Document Object Model and Trees
- DOM tree diagram mental models, The Document Object Model and Trees
- HTML tags, Generalizations
- tree diagram mental models, Filesystems and trees
- host machines, Hosts and Guests
- hover pseudoclass, Pseudoclasses, A better clicking experience
- href attribute, Headings and Anchors and Lists, Oh My!
- HTML (HyperText Markup Language)
- anchor (<a>) tag, Headings and Anchors and Lists, Oh My!
- annotating code, Comments
- button (<button>) tag, The Structure
- DOM hierarchical structure, The Document Object Model and Trees
- footer (<footer>) tag, Implementing the Structure with Our Workflow
- further practice/reading, More Practice and Further Reading
- header (<header>) tag, Implementing the Structure with Our Workflow
- heading (<h1>) tag, Headings and Anchors and Lists, Oh My!
- href attribute, Headings and Anchors and Lists, Oh My!
- image (<img>) tag, Structuring the Main Content, Getting Images from Flickr
- indentation as a visual cue, Generalizations
- input (<input>) tag, The Structure
- link (<link>) tag, Hello, CSS!, Hello, JavaScript!
- list items (<li>) tag, Headings and Anchors and Lists, Oh My!
- list of tags, Summary
- main (<main>) tag, Implementing the Structure with Our Workflow
- navigation (<nav>) tag, Implementing the Structure with Our Workflow
- normal text in, Generalizations
- ordered lists (<ol>) tag, Headings and Anchors and Lists, Oh My!
- overview, Summary
- paragraph (<p>) tag, <p> Is for Paragraph
- script (<script>) tag, Hello, JavaScript!
- span (<span>) tag, The Document Object Model and Trees
- specifying visual element structure with, Hello, HTML!
- tags vs. content in, Tags Versus Content
- unordered lists (<ul>) tag, Headings and Anchors and Lists, Oh My!
- validation programs, Using HTML Validation to Identify Problems
- void elements, Structuring the Main Content
- HTML5 conformance checker, Using HTML Validation to Identify Problems
- HTTP (Hypertext Transfer Protocol)
- basics of, Clients and Servers, Hello, HTTP!
- HTTP/CRUD/Controller mappings, HTTP Verbs, CRUD, and REST
- posting data to the server, Posting Information to the Server
- response codes, HTTP Response Codes
- human-readable code (see comments)
- hypertext, Headings and Anchors and Lists, Oh My!
I
- if statements, Squashing a bug, Selection
- if-else-if pattern, Selection
- images
- image (<img>) tag, Structuring the Main Content, Getting Images from Flickr
- retrieving from Flickr, Getting Images from Flickr
- slideshows, Flickr Slideshow
- images subdirectory, Setting Up a Project, Poker API
- in-memory data stores, Redis
- incr command, Interacting with the Redis Command-Line Client, Interacting with Redis in Our Code
- indexOf function, My solution, Using the indexOf function to find words
- inheritance, Inheritance
- initialization statement, Iteration
- inline elements, Padding, Border, and Margin
- input (<input>) tag, The Structure
- Integrated Development Environments (IDEs), Text Editors
- interactive apps
- basic structure for, The Structure
- click events, Handling click events
- creating skeleton structure for, Our First Interactive App
- dynamic DOM manipulation, Dynamically manipulating the DOM
- Enter key action, Making the Enter key work as expected
- fade-in feature, Fading in our new comment
- hover display, A better clicking experience
- if statements, Squashing a bug
- input boxes, The Structure, Clearing out the input box
- refactoring, Fading in our new comment
- style for, The Style
- is function, Manipulating content
- iteration, Iteration
J
- Jade, Views Using EJS and Jade
- JavaScript
- arrays in, Arrays, Array Practice
- basic example, Hello, JavaScript!
- Chrome Javascript console, Interacting with JavaScript in the Chrome JavaScript Console
- converting strings into objects in, JSON
- disabling problematic aspects of, Hello, JavaScript!
- functions in, Functions
- identifying potential problems in, Using JSLint to Identify Potential Problems, JSHint and CSS Lint via NPM
- iteration in, Iteration
- main global function, Hello, JavaScript!
- objects, Hello, JavaScript Objects!–Generalizations, Posting Information to the Server
- overview of, Summary, Summary
- reference books for programmers, Other JavaScript References
- scoping rules in, A JSON Array
- script (<script>) tags, Hello, JavaScript!
- selection in, Selection
- variables and types in, Variables and Types
- javascripts subdirectory, Setting Up a Project
- jQuery
- asynchronous programming in, Events and Asynchronicity
- basic offerings in, jQuery Generalizations
- chaining feature in, Dynamically manipulating the DOM
- comment types, Comments
- creating interactive apps with, Our First Interactive App–Refactoring for simplicity
- DOM manipulation, DOM Manipulation
- empty function, Removing elements from the DOM
- external storage of, Hello, JavaScript!
- fade-in feature in, Fading in our new comment
- further practice/reading, jQuery Plug-ins
- getJSON function, The getJSON Function
- is function, Manipulating content
- overview of, Summary
- parent function, Manipulating content
- plug-ins for, jQuery Plug-ins
- project set up in, Setting Up a Project
- put/delete requests with, Using jQuery for put and delete Requests
- selectors, Selectors, jQuery Selectors
- JSHint, JSHint and CSS Lint via NPM
- JSLint, Using JSLint to Identify Potential Problems
- JSON (JavaScript Object Notation)
- accessing objects in external files, Accessing an External JSON File
- arrays in, A JSON Array
- benefits of, So What?
- converting to JavaScript objects, Posting Information to the Server
- creating objects in external files, JSON
- creating objects in internal files, JSON
- further practice/reading, Object Practice
- getJSON function, The getJSON Function
- overview of, Summary
- single vs. double quotes in, JSON
- JSONP (JSON-with-padding), Other APIs
L
- left alignment, Layouts with Floats
- light bulb image, Structuring the Main Content
- links
- changing color of, Pseudoclasses
- changing color of visited, Pseudoclasses
- hover display, Pseudoclasses, A better clicking experience
- link (<link>) tag, Hello, CSS!, Hello, JavaScript!
- navigation tag for, Implementing the Structure with Our Workflow
- temporary placeholder for, Implementing the Structure with Our Workflow
- Linux
- built-in SSH client, Connecting to Your Virtual Machine with SSH
- Git installation, Installing Git
- global package installation in, JSHint and CSS Lint via NPM
- Terminal program, Unix Command-Line Basics
- lists
- adding bullets to, Headings and Anchors and Lists, Oh My!
- list items (<li>) tag, Headings and Anchors and Lists, Oh My!
- logs, Getting Information About Your Apps
- loop body, Iteration
- looping structure, Iteration
- lorem ipsum text, <p> Is for Paragraph
- ls (list the contents of the current directory) command, Where am I?
- ls (List the Contents of the Current Directory) command, Initializing a Git repository
M
- -m (message) flag, Our first commits!
- Mac OS
- file access in Chrome, Overcoming Browser Security Restrictions
- MacOS
- built-in SSH client, Connecting to Your Virtual Machine with SSH
- Git installation, Installing Git
- global package installation in, JSHint and CSS Lint via NPM
- Terminal program, Unix Command-Line Basics
- main (<main>) tag, Implementing the Structure with Our Workflow
- main global function, Hello, JavaScript!
- maintainable web applications, Summary
- map data structures, Generalizing Our Tweet Counter Code, NoSQL Versus SQL
- map function, The map Function
- margins, Padding, Border, and Margin
- markup validation, Using HTML Validation to Identify Problems
- (see also errors)
- max-width property, The Grid
- media queries, Responsiveness and Responsive Libraries
- memorization
- tasks for development workflow, Memorization
- tasks for JavaScript/jQuery, Memorization
- tasks for splash page creation, Memorization
- tasks for splash page styling, Memorization
- mental models
- client-server model, Clients and Servers
- DOM tree diagrams, The Document Object Model and Trees
- filesystem tree diagrams, Filesystems and trees
- hosts and guests, Hosts and Guests
- HTML tree diagrams, Tree Diagrams
- metadata, Tags Versus Content
- mget function, Using mget to Get Multiple Values
- Microsoft’s Windows Azure, Other Platforms
- min-width (minimum-width) property, The Grid
- mkdir (make directory) command, Creating directories
- Model-View-Controller design pattern, Refactoring Our Server, Model-View-Controller, Summary
- modules, Modules and Express, Modularizing Our Tweet Counter
- MongoDB
- accessing databases in, Interacting with the MongoDB Command-Line Client
- additional reading/practice, Interacting with the MongoDB Command-Line Client
- benefits of, MongoDB
- command-line interaction, Interacting with the MongoDB Command-Line Client
- JSON storage format of, MongoDB
- modeling data with Mongoose, Modeling Data with Mongoose, Summary
- overview of, Summary
- removing elements from collections in, Interacting with the MongoDB Command-Line Client
- retrieving documents in, Interacting with the MongoDB Command-Line Client
- saving multiple documents, Interacting with the MongoDB Command-Line Client
- saving objects to collections in, Interacting with the MongoDB Command-Line Client
- storage organization in, Interacting with the MongoDB Command-Line Client
- switching databases in, Interacting with the MongoDB Command-Line Client
- using with Cloud Foundry, Binding MongoDB to Your App
N
- NaN (Not a Number) value, Initializing the Counts from the Redis Store
- navigation (<nav>) tag, Implementing the Structure with Our Workflow
- Node.js
- benefits of, Modules and Express
- communicating with Redis, Installing the Redis Module via a package.json File
- development environment for, Setting Up Your Environment–Hello, Node.js!
- Express module, Modules and Express–Generalizations
- further practice/reading, Installing Node.js Locally
- http module, Modules and Express
- NPM (Node Package Manager), Modules and Express, Summary, Installing the Redis Module via a package.json File
- overview of, Summary
- socket.io module, AJAXifying Our Tabs
- Nodejitsu, Other Platforms
- nonrelational database format, NoSQL Versus SQL
- NoSQL data stores, NoSQL Versus SQL
- not (!) operator, Selection
- nth-child pseudoclass, The Style
- null value, Generalizations
- numeric bullets, Headings and Anchors and Lists, Oh My!
O
- object-oriented programming, Hello, JavaScript Objects!, Summary
- objects
- adding variables to, Generalizations
- benefits of, Generalizations
- changing variables in, Representing Playing Cards
- creation of, Representing Playing Cards
- empty objects, Representing Playing Cards, Generalizations
- further practice/reading, Object Practice
- JSON arrays of, A JSON Array
- null value for, Generalizations
- object literals, Generalizations, JSON
- placeholders for, Generalizations
- representing documents as, Modeling Data with Mongoose
- with functions attached, Generalizations
- odd value, The Style
- on pattern processing, Events and Asynchronicity
- or (||) operator, Selection, Initializing the Counts from the Redis Store
- ordered lists (<ol>) tag, Headings and Anchors and Lists, Oh My!
- out-of-scope variables, A JSON Array
- overflow property, Layouts with Floats
P
- padding, Padding, Border, and Margin, Layouts with Floats
- page layout
- border property, Padding, Border, and Margin
- creating complicated, Layouts with Floats
- fonts, Working with Fonts
- margin property, Padding, Border, and Margin
- padding property, Padding, Border, and Margin
- responsive design, The Grid, Responsiveness and Responsive Libraries
- sidebars, Layouts with Floats
- two-column grids, Layouts with Floats
- paragraph (<p>) tag, <p> Is for Paragraph
- parameters, Functions
- parent elements, The Document Object Model and Trees
- parent function, Manipulating content
- parseInt global function, Initializing the Counts from the Redis Store
- path module, Sending Your Client App
- photo gallery, jQuery Plug-ins
- photo-sharing services (see Flickr)
- Platforms-as-a-Service (PaaS), The Platform, Summary
- plug-ins, jQuery Plug-ins
- plus character, The Structure
- Poker API
- creating, Representing Playing Cards, Poker API
- data storage for, Poker API
- deploying on Cloud Foundry, Poker API
- hands in, Object Practice
- posting, Posting Information to the Server
- prepending vs. appending elements, Adding elements to the DOM
- process.env variable, Binding Redis to Your App
- Project Euler, Project Euler
- properties, Rulesets, Inheritance
- pseudoclasses, Pseudoclasses, The Style
- push function, Arrays
- push subcommand, Deploying Our App
- PuTTY SSH client, Connecting to Your Virtual Machine with SSH
- pwd (print working directory) command, Where am I?
R
- radix parameter, Initializing the Counts from the Redis Store
- real-time updates, AJAXifying Our Tabs
- Redis
- additional reading/practice, Interacting with the Redis Command-Line Client
- clearing data store, Interacting with Redis in Our Code
- command-line client interaction, Interacting with the Redis Command-Line Client
- handling asynchronous get function, Initializing the Counts from the Redis Store
- installing, Installing the Redis Module via a package.json File
- interacting with via code, Interacting with Redis in Our Code
- key-value format of, Redis
- obtaining multiple values, Using mget to Get Multiple Values
- overview of, Summary
- using with Cloud Foundry, Binding Redis to Your App
- redundancy, in data storage, NoSQL Versus SQL
- refactoring, Dynamically manipulating the DOM, Fading in our new comment, Refactoring the code using a function
- refactoring client code
- AJAX requests on page loading, AJAXifying Our Tabs
- generalizing meaningful concepts, Refactoring Our Client
- handling AJAX errors, Handling AJAX Errors
- removing compatibility hack, Ridding Ourselves of Hacks
- refactoring server code
- code organization, Refactoring Our Server
- HTTP response codes, HTTP Response Codes
- HTTP/CRUD/Controller mappings, HTTP Verbs, CRUD, and REST
- model-view-controller design, Model-View-Controller
- put/delete requests, Using jQuery for put and delete Requests
- setting up routes by ID, Setting Up Routes by ID
- relational database format, NoSQL Versus SQL
- require statement, Modules and Express
- response codes, HTTP Response Codes
- responsive design, The Grid, Responsiveness and Responsive Libraries
- RESTful (Representational State Transfer) APIs, HTTP Verbs, CRUD, and REST, Summary
- return values, Functions
- right alignment, Layouts with Floats
- rounded corners, The Style
- routes/behaviors, Setting Up Routes
- Ruby on Rails, Ruby on Rails
- RubyGems package manager, Getting Your App Ready for Deployment
- rulesets, Rulesets
S
- schemas, Models
- scoping rules, A JSON Array
- script (<script>) tags, Hello, JavaScript!
- security issues
- credential storage, Getting Your Twitter Credentials
- file access, Overcoming Browser Security Restrictions
- selectors
- basics of, Rulesets
- cascading rules, Cascading Rules
- class attributes, Classes
- for complex DOMs, More Complex Selectors
- inheritance, Inheritance
- jQuery selectors, Selectors, Manipulating content
- practice file for, CSS Selectors Practice
- pseudoclasses, Pseudoclasses
- type selector, Selectors
- universal selector, The clear Property
- server-side technologies
- databases, The Data Store–Other Database References
- vs. client-side technologies, The Bridge
- servers
- bridging communication with clients, Generalizations
- communication with clients, The Bridge
- creating HTTP servers, Hello, HTTP!
- event-driven, The Server
- Express server creation, Our First Express Server
- server vs. client programs, Clients and Servers
- text editors for remote, Emacs and Vim
- set command, Interacting with the Redis Command-Line Client
- setInterval function, Using the setInterval function to schedule tasks
- setTimeout function, Events and Asynchronicity
- Shift-Enter vs. Enter keys, Interacting with JavaScript in the Chrome JavaScript Console
- shortcuts (see keyboard shortcuts)
- sidebars, Layouts with Floats
- sitemaps, Structuring the Footer
- slideDown function, Events and Asynchronicity
- slideUp method, Removing elements from the DOM
- socket.io module, AJAXifying Our Tabs
- SQL (Structured Query Language), NoSQL Versus SQL
- SSH (Secure Shell/Secure Socket Shell), Connecting to Your Virtual Machine with SSH, Practicalities
- status logs, Getting Information About Your Apps
- streaming, What’s Happening Here?
- strict mode, Hello, JavaScript!
- stringify function, JSON
- strings
- converting to objects, JSON
- splitting into arrays, Tags as Part of Our Input
- style.css file, Hello, CSS!
- stylesheets (see Cascading Style Sheets (CSS))
- stylesheets subdirectory, Setting Up a Project
- stylistic elements, Identifying Structure
- Sublime Text
- advanced features, Sublime Text
- basic operation of, Sublime Text Basics
- installation of, Installing Sublime Text
- Open dialog box, Determining the status of our repository
- subtrees, Adding elements to the DOM
T
- tags, Tags Versus Content
- templating engines, Views Using EJS and Jade
- terminal editors, Text Editors
- (see also Emacs; Vim)
- terminal simulators, Unix Command-Line Basics
- text editors
- efficiency of, Text Editors
- for remote servers, Emacs and Vim
- GUI vs. terminal, Text Editors
- in development process, Practicalities
- Sublime advanced features, Sublime Text
- Sublime basics, Sublime Text Basics
- Sublime installation, Installing Sublime Text
- to-do list, Adding Interactivity to Amazeriffic, Adding a Tags Feature to Amazeriffic
- tree diagrams
- DOM, The Document Object Model and Trees
- filestytem, Filesystems and trees
- HTML documents, Tree Diagrams
- truthy values, Using JSLint to Identify Potential Problems
- Twitter
- client set up, Setting Up a Client
- connecting to, Connecting to the Twitter API
- finding words with indexOf function, Using the indexOf function to find words
- generalizing tweet counter code, Generalizing Our Tweet Counter Code
- getting credentials, Getting Your Twitter Credentials
- modularizing tweet counter, Modularizing Our Tweet Counter
- scheduling tasks, Using the setInterval function to schedule tasks
- storing tweet counts, Storing Counts
- streaming information from, What’s Happening Here?
- 200 response code, HTTP Response Codes
- type selector, Selectors
U
- universal selector, The clear Property
- Unix
- command line, Unix Command Line
- command-line basics, Unix Command-Line Basics
- filesytem commands, Summary
- unordered lists (<ul>) tag, Headings and Anchors and Lists, Oh My!
- update statement, Iteration
- urlencoded plug-in, Posting Information to the Server
- use command, Interacting with the MongoDB Command-Line Client
- user interfaces, Hello, HTML!
V
- Vagrant
- benefits of, Setting Up Your Environment
- building virtual machines with, Building Your Virtual Machine
- in development process, Practicalities
- installation of, Installing VirtualBox and Vagrant
- overview of, Summary
- val method, Clearing out the input box
- validation programs, Using HTML Validation to Identify Problems, JSHint and CSS Lint via NPM
- (see also errors)
- variables
- $ character for jQuery objects, Dynamically manipulating the DOM
- adding to objects, Generalizations
- collections of, Hello, JavaScript Objects!
- declaring with var keyword, Using JSLint to Identify Potential Problems
- environment variable, Getting Your App Ready for Deployment
- function variables, Generalizations
- out-of-scope variables, A JSON Array
- possible data types in, Variables and Types
- process.env variable, Binding Redis to Your App
- vboxheadless warning, Building Your Virtual Machine
- version control systems
- definition of, Version Control
- exploratory coding, Version Control
- Git commits, Our first commits!
- Git configuration, Configuring Git for the first time
- Git installation, Installing Git
- Git repository history, Viewing the history of our repo
- Git repository initialization, Initializing a Git repository
- Git repository status, Determining the status of our repository
- in development process, Practicalities
- saving vs. committing changes, Saving versus committing
- Unix command-line basics, Unix Command-Line Basics
- Vim text editor, Our first commits!, Emacs and Vim
- virtual machines
- benefits of, Hosts and Guests
- building, Building Your Virtual Machine
- connecting to with SSH, Connecting to Your Virtual Machine with SSH
- definition of, Setting Up Your Environment
- exiting, Hello, Node.js!
- hosting of, Hosts and Guests
- removing, Hello, Node.js!
- VirtualBox
- installation of, Installing VirtualBox and Vagrant
- Node Package Manager and, Installing Express with NPM
- overview of, Summary
- visited pseudoclass, Pseudoclasses
- void elements, Structuring the Main Content
W
- web application development
- additional resources, Where to Go for Help
- code repository for, Learning with This Book
- code used in, General Comments on Code
- prerequisites to learning, Is This Book for You?
- teaching, Teaching with This Book
- technology choices, Technology Choices
- web browsers
- as developer tools, Browsers, Practicalities
- overcoming security restrictions in, Overcoming Browser Security Restrictions
- removing inconsistencies in, Resetting Browser Inconsistencies
- top-down page display in, Hello, JavaScript!
- web fonts, Working with Fonts
- Windows
- file access in Chrome, Overcoming Browser Security Restrictions
- Git Bash terminal simulator, Unix Command-Line Basics
- global package installation in, JSHint and CSS Lint via NPM
- manual SSH installation, Connecting to Your Virtual Machine with SSH
- Windows Azure, Other Platforms
- workflow (see development workflow)