Code lab
- Google Tag Manager
 
- Google Analytics
 - Kissmetrics
 - Mixpanel
 - Keen IO
 
- https://www.getlocalization.com
 - https://www.oneskyapp.com
 - https://phraseapp.com/en
 - https://www.transifex.com/
 
- Project Week
 - Meetups: KopiJS
 
- https://css-tricks.com/almanac/properties/a/animation/
 - https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode
 
- Semantic HTML
 - CSS Selectors
 - Styling text and 
input/textarea/buttonelements 
@ongmin
- Javascript inheritance
 
Data science introduction
Qiyu & Min
Shadow DOM & Custom Elements
- Overview
 - History API: 
pushState,popState - Client side routing
 
Project
@shawnlimws
- Aspect Oriented Programming (AOP)
 
@lanbau
- Node.js Debugging with Visual Studio Code
 - HTML Templates with EJS/Jade
 
ABC: Always Be Coding
Jesstern talks about JS call stack, heap, event loop, and queue
- Git
 - Hour of Code
 - Talk.js
 
https://github.com/node-inspector/node-inspector
Always be coding.
- Projects: feasibility assessment, design iterations
 
Git
SingaporeJS Talk.js 15 Dec 2015 all-lightning talks
- Team formation
 - Hack away!
 
Sails & Meteor
Hackathon demos!
Client side API calls
Databases et al
Socialising with the people below
- Big Data
 - PFNP Live & Gopher it!
 - Tonight: Fancy Pants DataSci meetup
 
- MongoDB DIY vs SaaS
 - Call stack vs Recursion
 
Let's build something fun, now!
- Book Club
 
- Flat file storage
 - Code review and analysis https://github.com/caalberts/express-json-api/pull/7/files
 
- DevOps
 
- Persistent storage: Flat file database
 - Problem: Heroku ephemeral storage
 - MongoDB (NSFW language 😁)
 - DB SaaS:
 - Mongoose
 
- Geek Brunch
 - Sunday Gathering
 
- RESTful JSON API w/ Express
 - CRUD app
 
- Heroku
 - forever
 - PM2
 - Keymetrics
 
bluebird.promisifybabel-cli- Multi-stage async: 
app.get,fs.readFileorfetchw/res.json() - Express middleware: Re-use code, don't reinvent the wheel.
 
- URL structure
 - HTTP headers
 - HTTP methods
 - MIME types
 
Inspect and repeat HTTP requests
Create - Read - Update - Delete
A pattern found in most data-handling applications.
- 
URL structure
/scores/scores/:playerId?sortBy=:sortable&sortOrder=:direction?match=:query
 - 
HTTP methods
- Create: POST
 - Read: GET
 - Update: PUT
 - Delete: DELETE
 
 
Testing the classroom API (see 2015-11-26)
- Server
- should return a list of high scores
 - should allow adding a player's score
 - should allow removing a player's score
 - should allow changing a player's name
 
 
- Web Components status updates from Mozilla and Microsoft (via Web Components Weekly #31)
 
- From callbacks to Promises to 
async/await 
- Server
- should respond with JSON data
 - should provide a list of all class participants
 - should allow searching by name
 - should allow sorting alphabetically by name
 - should allow whitelisting specific fields
 
 
DNF, see 2015-11-27
- The Art of Node (Tian/Shawn)
 - Money TDD (Albert/Yongjun)
 
- Middleware for 
http - Getting Started
 
- Reinventing Education with Cognitive Science
 
Continue from yesterday
Testing with Mocha, Chai, and Sinon
- Meetups over the weekend?
 - Singapore CSS
 
🌟 Congratulations to everyone for making huge progress over the past 3 weeks. 🌟
Learn You The Node.js For Much Win!
- Node Weekly
 - NodeBots Sumo Bots: Show & Tell?
 - JSConf.Asia (Day 1)
 
- Globals in ESLint & Standard linter
 - Cheap prototyping: Sketch on paper and do 5 iterations before writing a single line of code.
 - Object Oriented Programming (OOP): Classes to encapsulate behaviour.
 - Multi-tier cache invalidation with domain names: Namecheap (registrar), CloudFlare (nameserver), DNS, OS, browser
 
Working hard
- CSSConf.Asia (After Party)
 - Haskell.SG
 
- Extracting data with object and array destructuring
 - demo
 
- 👷 WIP
 - Demonstrate progress
 
- Today at The Working Capital: Sumo Bot Battles
 - Try to infiltrate the event? 🙈 🙉 🙊
 
- What did we learn from Alon Bar?
 - Talk.js, Hacking UX, PyData
 
- Refactor with confidence: TicTacToe demo
 
- All day code reviews & pairing
 - Mid-week one-on-one review with Seb & Cheryl
 
- iOS Dev Scout
 - FEDS TL;DR
 
- The 
...spread operator 
- 
Steve Jobs' Vision of the World: "You can change it. You can build your own things."
 - 
Planning and documenting with GitHub Issues
 
Free for all
- NodeSchool IV SG
 - DevCareer
 
Feuer Frei!
- Git branches -> GitHub PR -> Travis -> Heroku Review Apps -> Comment on code -> Push more commits -> Merge & delete branch
 - Exercise: Work on a branch, create a PR, tag your neighbour to have them review.
 
- Refactor TicTacToe into separate file
 - Write unit test with Mocha & Chai
 
- Reporting and Workflow with Codecov
 
- Added lesson for Browserify–Babelify workflow
 - The Front-End Spectrum
 - Front-end Handbook: Part III: Tools
 - Stackshare
 
- Heroku
 - Surge
 - GitHub Pages
 
- What is it? Why do we need it? How does it work? How do we set it up?
 - Akamai, Cloudflare, AWS Cloudfront, etc.
 
- Responsive CSS Techniques
 
- Creative coding demos
 - Code reviews
 - Workshops: Functional Programming
 
See Build Tools lesson
Set up a stack for Tic Tac Toe
- TicTacToe
 
Try the javascripting workshop from Nodeschool.
- setTimeout
 - setInterval
 - requestAnimationFrame
 
- static
 - fixed
 - absolute
 - relative
 
- JS
 - CSS
 
- Creative coding
 - Game: Pong
 
- 
IMG cropping hacks & elegant solution (@caalbert)
 - 
Translate @calvintan's from HTML to Markdown
 
- HTMLElement properties and methods
 - Finding elements:
- ID as global variable (eww..)
 - getElementById/Class/...
 - querySelector/QSA
 - query/queryAll
 
 
- attachEventListener, detachEventListener, dispatchEvent
 - Event types: click, submit, change, ...
 - Event objects
 
Exercise: Game on! Let's build Tic Tac Toe.
