Todd Wieland operates Canis Learning Systems in Tampa, FL where he creates learning products and systems that help people leverage knowledge and technology to create great careers and businesses.
His projects focus on topics as diverse as marketing, analytics, manufacturing math, game and app development, filmmaking and media, automation and transportation technology.
The theme that ties all of Canis Learning Systems' and Todd's projects together is opportunity: We live in an age of unbounded possiblity, empowered and ennobled by the acquisition and application of knowledge.
The promise of the future for generations to come is built on specialization. Helping others gain and apply specialized knowledge, sharing specialized applications and leveraging unique niches is an economic and social trend with almost unlimited potential.
Coming from a long line of entrepreneurs and small business operators (he started working in his dad's neighborhood store at age 11), he has an eclectic background in education, technology, media and even runs a snow cone machine on the weekends.
Take your courses with you and learn anytime, anywhere.
Learn and practice real-world skills and achieve your goals.
It includes high level coding concepts and practices, as well as leading technologies like jQuery and Node.js.
As a "curated" course - made up of content and lesson sifted from public sources - it naturally invites a pretty good question: "Why should we pay for something we can get for free?"
This brief video introduces the nature of curation, why it provides value (or doesn't, depending on your view) and how it helps you structure your learning.
Perhaps only a geek can appreciate a 12 minute interview on the origins of a programming language.
Eich is a highly engaging, very smart guy who's got a terrific story to tell. And he tells it brilliantly. Enjoy.
Context: 3rd in a series of 3 talks (the others linked)
Focus: Code patterns for:
Inheritance - Patterns of code reuse
Open: Inheritance purpose and properties
Classical vs Prototypal "schools" of programming thought
4:30 - Using object functions for augmentation
8:25 - Constructor function for creating new operators
9.55 - Prototype object in constructor functions
11:00 - The "method method" to manage constructor object
17:00 - Object function for instance of objects; writing and synthesizing object prototype operators
18:45 - Public methods using 'this' for binding and reuse
20:00 - Singletons (single object instances)
21:00 - Robust nature of functions, including modules; using functions to create module containers
24:50 - Privileged methods and power constructors
27:30 - Parasitic inheritance - self-contained objects based on other objects
32:00 - Private variables (secret methods) based on parasitic construction; achieving the effect of package scope at run time
35:00 - Super methods
38:15 - Coding example showing closure featuring Ajax in the 'later' method
44:00 - Multiples and the role of closure for multiple instances
46:00 - Debugging tools - dated info
(NEEDS: Updated debugging tool info)
48:00 - Web debugging w/MS Script Debugger
52:00 - Debugging in Venkman
59:30 - String concatenation with + and array.join
1:03:10 - JSON for data interchange across programming platforms; syntax for: objects, arrays, values, strings, numbers
Context: A Google Tech Talk
Audience: Google programmers and team members
6:55 Critique of the DOM at 6:55 - connect to John Resig's video
11:40 "The Bad Parts" - sources of common errors
- Global variables
- Use of + to add and concatenates
- Semicolon insertion
- with and eval
- phony arrays
- == and !=
- false, null, undefined, NaN
15:00 Transivity & Good Features that Interact Badly
17:10 the for in statement
18:30 Problems with Heritage
22:00 The Good Parts
Loose Typing (http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html)
23:05 Inheritance & Prototypal Inheritance
25:40 Begin code samples
30:45 Purpose and concepts of programming style (actual coding style)
37:00 "Beautiful Code"
40:00 History and purpose of JSON
46:30 ECMAScript http://en.wikipedia.org/wiki/ECMAScript#Versions
48:50 "strict mode"
50:45 Review of "The Good Parts"
51:30 Pitch: Crockford's BOok
- Strict mode
- DOM problem
- Lambda function
- Global variables problem
- Standards for Web app development and HTML5
Context: Talk at "Future of Web Apps," Carsonified's Miami 2010
Audience: Web app developers and entrepreneurs
Intro portion (first [1.0] minute) - Very brief intro, overview of the key topics and then it's right to work!
1:00 Improving Performance
CDN's and Gzipping
2:30 JQuery handling event delegation
4:35 Caching with Fragments
Automated minifiying and Gzipping
8:35 Improving accessibility and speed
Document Ready event
Click and Load
Extra Header in Ajax request
.load() page fragment
Loading "chunks" of a remote HTML document
12:40 Reducing Complexity
Data storage away from DOM element
Internal data storage
Removing data (garbage collection) to manage memory leaks
15:20 Custom Events
17:00 Events and Plugins
vs. Custom events
Example: Focusin/Focusout Events
Example: Hotkeys plugin
19:50 Customizable Themes with JQuery
Routing around cross-browser CSS issues
23:05 Future directions of of the jQuery project
Focus on mobile
Testing against mobile browsers
From Paul Boag (Web Slides from above) http://boagworld.com/talks/running-a-successful-web-design-business/
Developer Paul Boag on Twitter:https://twitter.com/#!/boagworld
The DOM is a Mess!
Context: Resig addresses the Yahoo User Interface team about
issues related to the Document Object Model
Audience: Yahoo Programmers
Theme: The DOM is a mess!
Intro portion (first 2 minutes) - Resig introduction, background and overview of presentation content.
Topic Notes: A Messy DOM
2:00 Fundamental brokenness of every DOM method - for SOME browser.
2:45 Problematic methods: getElementByID
4:30 Problmatic methods: getElementsByTagName
6:15 Problematic methods: getElementsByClassName
10:00 Cost/Benefit of supporting browsers, by type (somewhat dated, but valid in principle )
12:00 jQuery browser support grid by type
13:30 Origins of scripting bugs by browser type
14:30 Browser bugs (unspecified, undocumented behavior)
16:10 Testing code
18:30 jQuery Test Suite - Environment Testing
20:20 Issues related to Object.prototype
21:40 Greedy IDs (document.get by tag name)
22:30 Order of stylesheets
23:00 Pollution (guarding code against outside changes and creating issue with outside code)
26:00 Missing featurs - esp. for older browsers
27:00 Object detection for APIs
27:40 Event Binding
28:20 Fallback detection
30:30 Bug Fixes
33:00 Feature simulation (examples)
36:00 Regressions introduced by browswers (introducing "bugs" due to browser configuration or code)
38:00 Safe cross browser fixes
40:20 Untestable problems
42:45 Improving code by removing (coder) assumptions
47:30 DOM Traversal vs Traditional DOM
49:30 Top-down CSS selector engine - with code implementation
51:20: Bottom-up CSS selector issues
53:45 CSS to XPath transition
58:00 DOM modification (with code examples)
1:03:00 Inline script processing
1:05:00 Events and event handling
1:08:20 Libraries & data stores (esp in jQuery)
Node.js, Overview and Applications
Context: A Google Tech Talk
Audience: Google programmers and team members
Theme: Intro Node.js to an informed and skeptical audience
Note:This lecture is very server-focused with special emphasis on high speed network servers. The concepts and technology are fascinating and it's a great introduction to Node.js. But it's server- and not application-focused.
Intro portion (first 1 minutes) - Intro by Googler
1:30 Focus on scripting network servers as a roadmap to wider
2:00 Challenges of abstractions
3:10 Challenges of high performance servers: Outlines current
state of programming for high performance data servers
9:30 Uses of C and related languages for server programming
17:00 Introduction of Node for use at network (HTTP) level
25:20 Architecture of Node
27:00 Code examples using Node
42:00 Node and HTTP parsing
43:30 Node and buffering
46:40 Modules for Node Programming
46:45 Step library for Asynch control-flow
48:00 PCAP module (packet)
48:15 MDNS module (service discover)
- Scalability of Node
An Interactive Intro to Node.js with Ryan Dahl
Context: San Francisco PHP Meetup Group
Audience: PHP Programmers
Focus: A free-flowing, quite technical introduction of server-side Node to a group of high level PHP coders.
Theme: Code-intensive programmer-to-programmer intro of a new operating concept
Intro portion (first 1 minute) - Very brief introduction from Dahl of Node and his approach to the presentation - very code-centric.
2:00 Install and compile Node
3:00 Intro V8 (virtual machine written for Google Chrome) on which Node runs
4:30 Process object in Node
5:40 Hello world in Node
12:00 Libraries bundled with Node
12:00 Example http server in Node
22:00 Concurrency and connections in Node
24:30 Example TCP server in Node (for chat server)
48:00 Nonblocking code and database functionality in Node
51:00 Anonymous functions and abstractions w/database calls
- Challenges of a new platform
- Event loops
- Process security
- ExpressJS for Web
Context: Irish presenting at San Francisco HTML5 User Group
Audience: Web (HTML5) Developers
Focus: Introduction of HTML5 Boilerplate
Theme: Free flowing intro and application of HTML5 Boilerplate
Intro portion (first 2.5 minutes) - Irish introducing himself and his various projects
2:40 Introducing HTML5 Boilerplate as a collection of "best practices" for front end development and performance
4:00 Cross browser functionality
5:00 Demo sites for HTML5 Boilerplate
7:30 HTML5 Boilerplate Walkthrough - contents
9:30 10 things about the Boilerplate you should know (first 5)
- IE Conditional comments
- X-UA-Compatible (and validation)
- meta charset (and validation)
- jQuery include
- overflow-y: scroll
- ie6 background cache
11:50 Writing JS styles
13:00 Chrome Edge for IE (IE=edge)
17:00 Meta charset
21:00 jQuery include (protocol-relative URL)
24:40 overflow-y: scroll (to limit scroll shifting)
25:30 ie6 background cache
28:30 5 more things you should know
- helvetica, arial, sans-serif
- @print styles
- helper classes
- test page.. (pre, buttons,)
- viewport http://goo.gl/ykKad
29:00 Font types and sizes - accessiblity and visual issues
32:00 Media print query
36:00 Viewport for mobile
43:30 Build script
46:00 hsl() color demo
50:00 Build and test demo
58:30 Shout out for mobile development
Description: Game developer Paul Bakaus, Dextrose AG
Audience: Google developers
Note: The subject of this presentation, the Aves Game Engine, has been acquired by Zynga - of Farmville and Facebook game fame - so the content may seem a tiny bit dated, but the concepts are market-validated.
Note 2: He finishes with a fairly thorough and rather prescient review of then-brand new Node.js and its importance for high volume game play.
Intro portion (first 3 or so minutes) - Bakaus introduces his perspective on the game industry as a developer of browser based games.
Topic Notes & Timeline
3:45 Browser games, lifespan and legacy code
6:00 Technological base for browser-based games is just now emerging
7:30 Challenge of merging coding and game development skills
8:15 The open Web stack and game development and the importance of mobile
10:30 HTML5 as a game development tool/environment
13:45 Pros and cons of cross browser coding
14:10 Pick your technologies from the future!
14:45 Selecting jQuery (and jQuery UI) and why
15:40 Architecture and API design for a game engine
16:50 2 and 2.5D games
17:45 Game world screen shot overview and requirements
19:00 Advanced Techniques for Game Engine Development (with code)
19:30 Rendering at extreme speed
- with Canvas (and efficiency problems)
- Block rendering using HTML
22:00 Lazy node linking
23:00 Smart rendering
Pls help me....
nice lectures on the subject!