Today I learned in class about learning new skills and talking about technology. In almost all tech companies, teams meet in the morning to have a daily stand-up meeting. This is where all team members come together around a whiteboard and literally stand-up in-front of the team and present what they are working on for the day, what they’ve accomplished, and what’s in their way, known as blockers. This skill is developed with time and practice, and it’s critical to build. It’s very important to learn to communicate with other team members about what is going on in your code environment. This is not the only place this happens, of course. In code planning teams are asked to research, plan and present proposals of how a system should be structured, and then delegate the tasks of building it! It’s quite incredible how we humans can conjure an image, cultivate the idea, formulate the words to convey and execute it with intention. This skill isn’t necessarily hard to learn, but it does take dedication. It takes practice and commitment.

The link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute. Styles defined by the link pseudo-class will be overridden by any subsequent link-related pseudo-class (active, hover, or visited) that has at least equal specificity. To style links appropriately, put the link rule before all other link-related rules, as defined by the LVHA-order: link, visited, hover, active. Use any-link to select an element independent of whether it has been visited or not. By default, most browsers apply a special color value to visited links. Thus, the links in this example will probably have special font colors only before you visit them. (After that, you'll need to clear your browser history to see them again.) However, the background-color values are likely to remain, as most browsers do not set that property on visited links by default.

HTML5 is the latest evolution of the standard that defines HTML. The term represents two different concepts. It is a new version of the language HTML, with new elements, attributes, and behaviors, and a larger set of technologies that allows the building of more diverse and powerful Web sites and applications. This set is sometimes called HTML5 & friends and often shortened to just HTML5. Designed to be usable by all Open Web developers, this reference page links to numerous resources about HTML5 technologies, classified into several groups based on their function. Semantics: allowing you to describe more precisely what your content is. Connectivity: allowing you to communicate with the server in new and innovative ways. Offline and storage: allowing webpages to store data on the client-side locally and operate offline more efficiently. Multimedia: making video and audio first-class citizens in the Open Web. 2D/3D graphics and effects: allowing a much more diverse range of presentation options. Performance and integration: providing greater speed optimization and better usage of computer hardware. Device access: allowing for the usage of various input and output devices. Styling: letting authors write more sophisticated themes.

There are two primary ways to create animations on the web: with CSS and with JavaScript. Which one you choose really depends on the other dependencies of your project, and what kinds of effects you’re trying to achieve. Use CSS animations for simpler “one-shot” transitions, like toggling UI element states. Use JavaScript animations when you want to have advanced effects like bouncing, stop, pause, rewind, or slow down. If you choose to animate with JavaScript, use the Web Animations API or a modern framework that you’re comfortable with. Most basic animations can be created with either CSS or JavaScript, but the amount of effort and time differs (see also CSS vs JavaScript Performance). Each has its pros and cons, but these are good guidelines: Use CSS when you have smaller, self-contained states for UI elements. CSS transitions and animations are ideal for bringing a navigation menu in from the side, or showing a tooltip. You may end up using JavaScript to control the states, but the animations themselves will be in your CSS. Use JavaScript when you need significant control over your animations. The Web Animations API is the standards-based approach, available today in Chrome and Opera. This provides real objects, ideal for complex object-oriented applications. JavaScript is also useful when you need to stop, pause, slow down, or reverse.

Progressive enhancement is a strategy for web design that emphasizes core webpage content first. This strategy then progressively adds more nuanced and technically rigorous layers of presentation and features on top of the content as the end-user’s browser/internet connection allow. Graceful degradation is the ability of a computer, machine, electronic system or network to maintain limited functionality even when a large portion of it has been destroyed or rendered inoperative. The purpose of graceful degradation is to prevent catastrophic failure. graceful degradation becomes viable in a few situations: You retrofit an old product and you don’t have the time, access or insight to change or replace it. You just don’t have time to finish a product with full progressive enhancement (often a sign of bad planning or running out of budget). The product you have is an edge case, for example very high traffic sites where every millisecond of performance means a difference of millions of dollars. Your product by definition is so dependent on scripting that it makes more sense to maintain a “basic” version rather than enhancing one (Maps, email clients, feed readers). In all other cases, progressive enhancement will make both the end users and you happier. Regardless of environment and ability you deliver a product that works.