Changes

Jump to: navigation, search

DPS909 & OSD600 Winter 2018

6,814 bytes added, 13:36, 11 April 2018
no edit summary
*** https://en.wikipedia.org/wiki/Unicode_character_property
*** <code>/\p{Sc}/u;</code> becomes <code>/[\$\xA2-\xA5\u058F\u060B\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20BF\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6]/;</code>
** [https://blog.safia.rocks/post/170269021619/tips-for-reading-new-codebases Tips for reading new codebases (blog post by Safia Abdalla)]
* '''Introducing [http://git-scm.com/ git]'''
*** [http://help.github.com/ Github documentation]
*** [https://desktop.github.com/ GitHub Desktop]
 
== Week 4 ==
 
* Learning Licenses: MIT
** [https://opensource.org/licenses/MIT MIT License]
** [https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html The MIT License, Line by Line]
** One of the most widely used licenses in Open Source
** Like the BSD License, nothing about patents (created before software was patentable in the US)
** Example software projects licensed under the BSD License:
*** [https://expressjs.com/ ExpressJS]
*** [http://rubyonrails.org/ Ruby on Rails]
*** [https://aframe.io/ A-Frame]
*** [https://angularjs.org/ AngularJS]
*** [https://atom.io/ Atom], [https://electron.atom.io/ Electron]
*** [http://getbootstrap.com/ Bootstrap]
*** [http://brackets.io/ Brackets]
*** [http://jquery.com/ jQuery]
*** [https://nodejs.org/ node.js]
*** [https://github.com/photonstorm/phaser Phaser]
*** [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY]
*** [https://socket.io/ Socket.IO]
 
* More Git
** [https://wiki.cdot.senecacollege.ca/wiki/DPS909_%26_OSD600_Fall_2017_-_Git_Walkthrough Continued Git Walkthrough]
** [[DPS909 & OSD600 Winter 2017 - Git Walkthrough 2| Git Walkthrough 2]]
** Keeping up-to-date:
*** Remotes
*** pull vs. fetch
 
* [[DPS909/OSD600 Winter 2018 Lab 2|Lab 2]]
 
== Week 5, 6 ==
 
* Fixing a bug in VSCode
** https://github.com/Microsoft/vscode/wiki/How-to-Contribute for instructions on building, running vscode
** https://github.com/Microsoft/vscode/issues/42726
** https://github.com/humphd/vscode/tree/good-first-experience-issue-42726#walkthrough-fixing-a-bug-in-visual-studio-code
** https://developers.google.com/web/tools/chrome-devtools/ for tips on using the Developer Tools
 
* [[OSD600 and DPS909 Winter 2018 Lab 3|Lab 3]]
* [[OSD & DPS909 Winter 2018 Release 0.2|Release 0.2]]
 
== Week 8 ==
 
* Guest: [https://github.com/DavidBruant David Bruant]
 
* Open Data, Open Standards, Open Soure
* Building a Business on Open?
* Open Standards: [https://en.wikipedia.org/wiki/ECMAScript ECMAScript] and [https://whatwg.org/ WHATWG], [https://www.w3.org/ W3C]
* How and Why to Read a Standard: example [https://url.spec.whatwg.org/#url-class URL()]
* Participation in Standards Processes: maintenance (e.g., docs, correcting things) and evolution (e.g., adding new aspects, standardizing ad hoc things)
* Case studies: iframe @sandbox "parallizable"
* Comparing “big” vs. “small” contribution: working on standards is about as big as it gets.
 
* Discussion open source (and technology in general) as it exists in Europe vs North America, trends, opportunities, etc.
 
* TODO
** More on [https://blog.humphd.org/on-standards-work/ Open Standards]
** [[OSD600 and DPS909 Winter 2018 Lab 4|Lab 4]]
** Get started on [[OSD & DPS909 Winter 2018 Release 0.2|Release 0.2]]
 
== Week 9 ==
 
* Modern JS
** https://developer.mozilla.org/en-US/docs/Web/JavaScript
** https://nodejs.org/api/
** http://exploringjs.com/es6.html
** https://eloquentjavascript.net/
** http://exploringjs.com/es2018-es2019/
 
* Learning Front-End and Open Source Collaboration, Case Study Part I
** https://github.com/humphd/bridge-troll
** https://www.ontario.ca/data/bridge-conditions
** https://www.npmjs.com/
** https://babeljs.io/
** https://eslint.org/
** https://prettier.io/
** https://parceljs.org/
** http://editorconfig.org/
 
* TODO
** [[OSD600 and DPS909 Winter 2018 Lab 5|Lab 5]]
** Continue working on [[OSD & DPS909 Winter 2018 Release 0.2|Release 0.2]]
 
== Week 10 ==
 
* Testing
** Unit Tests
** Regression Tests
** Performance Tests
** Integration Tests
** Fuzz Tests
** Stress/Load Tests
** Smoke Tests
 
* JavaScript Testing Examples
** https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2018-f68950900bc3
** Frameworks - [https://mochajs.org/ mocha], [https://facebook.github.io/jest/ jest]
** Assertions - [http://www.chaijs.com/ chai], [https://facebook.github.io/jest/docs/en/expect.html Jest expect]
** Test Runners - [https://karma-runner.github.io/2.0/index.html karma]
** Browser Environments - [https://github.com/GoogleChrome/puppeteer Puppeteer], [https://github.com/jsdom/jsdom jsdom]
** Code Coverage - [https://gotwarlost.github.io/istanbul/ istanbul]
 
* Continuous Integration
** Most are free for Open Source projects
** [https://travis-ci.com/ Travis CI]
** [https://www.appveyor.com/ AppVeyor]
** [https://circleci.com/ CircleCI]
** Example in VSCode https://github.com/Microsoft/vscode/pull/46117
 
** Writing tests in Bridge Troll
 
== Week 11 ==
 
* [https://github.com/humphd/browser-laptop/tree/good-first-experience-issue-10554#walkthrough-fixing-a-bug-in-the-brave-browser Case Study: Fixing a bug in Brave]
* Read other students' open source experience fixing bugs for 0.2. [http://zenit.senecac.on.ca/~chris.tyler/planet/ Lots of great stories, lessons.]
* [[OSD600 and DPS909 Winter 2018 Lab 6|Lab 6]]
 
== Week 12 ==
 
* More tests on Bridge Troll
* Finish [[OSD600 and DPS909 Winter 2018 Lab 6|Lab 6]]
 
* [https://wiki.cdot.senecacollege.ca/wiki/OSD_%26_DPS909_Winter_2018_Release_0.3 Release 0.3]
 
== Week 13 ==
 
* Automating build, test, and deploy steps with Travis CI
** https://docs.travis-ci.com/
** https://docs.travis-ci.com/user/for-beginners/
 
* Travis uses YAML for configuration
** YAML Ain't Markup Language (YAML)
** https://en.wikipedia.org/wiki/YAML
** Usually uses the .yml extension
** https://learnxinyminutes.com/docs/yaml/
 
* Stages of a Travis CI Build
** https://docs.travis-ci.com/user/customizing-the-build/#The-Build-Lifecycle
** Adding OS-level dependencies https://docs.travis-ci.com/user/installing-dependencies/
 
* Running Tests per Commit/PR
** https://docs.travis-ci.com/user/languages/javascript-with-nodejs/
** Assumes you want to `npm install` and run `npm test`
** Therefore, you need a working install and test process via `package.json`
 
* Deploy to GitHub and gh-pages
** https://pages.github.com/
** https://help.github.com/categories/github-pages-basics/
** Enable HTTPS https://help.github.com/articles/securing-your-github-pages-site-with-https/
** Custom 404 page https://help.github.com/articles/creating-a-custom-404-page-for-your-github-pages-site/
** https://docs.travis-ci.com/user/deployment/pages/
 
* Some example .travis.yml files in OSS projects
** https://github.com/Microsoft/vscode/blob/master/.travis.yml
** https://github.com/devtools-html/debugger.html/blob/master/.travis.yml
** https://github.com/brave/browser-laptop/blob/master/.travis.yml
** https://github.com/datalocale/dataviz-finances-gironde/blob/master/.travis.yml
 
* Custom Domians
** https://help.github.com/articles/using-a-custom-domain-with-github-pages/
** $0.99 .ca domains https://cira.ca/
 
* [[OSD600 and DPS909 Winter 2018 Lab 7|Lab 7]]

Navigation menu