Changes

Jump to: navigation, search

DPS909 & OSD600 Fall 2018

4,614 bytes added, 12:59, 30 November 2018
Week 12
** You do not need to complete a PR every week for 0.3 and 0.4; though you will need to make progress each week in order to blog, and to stay on track.
* [[OSD/DPS Fall 2018 Open Source Projects** Gain some experience being on the other side of a Pull Request: what's it like, and what's involved in building and maintain an open source project?** Do any students already have open source projects others could join?** What are some projects we should consider starting together?** Most popular internal project ideas:*** (NEW) DarkChatter - decentralized direct networking/messaging over low-level WiFi packets (15 ✔️)*** (NEW) Browser Extension to control how Blackboard, Seneca Student Centre, and other Seneca web properties look and feel using GreaseMonkey. Fix student issues in the UI (14 ✔️)*** (NEW) Speech-To-Text coding for HTML templating - code with your voice, plugin for VSCode or similar (14 ✔️)*** (NEW) Turn-based creative writing app for friends to write fiction together in a fun way (web/texting interfaces) (13 ✔️)*** (NEW) GitHub Dashboard - track status of things you've worked on, track projects you want to try next (10 ✔️)*** (EXISTING) Node.js/React chat project; ideally standalone and published on npm (10 ✔️)*** (EXISTING) Unity side-scrolling video game in C# (9 ✔️)*** (EXISTING) App to aggregate and download starred GitHub projects (9 ✔️)*** (NEW) Resume/Portfolio generator: simple static site generation for non-technical students (9 ✔️)** Other ideas presented:*** (NEW) Open Source Dwarf Fortress clone: ASCII style game (8 ✔️)*** (NEW) RSS bot for when wiki's are updated (7 ✔️)*** (NEW) Browser extension for remembering where you left off & resume YouTube videos (7 ✔️)*** (NEW) YouTube bulk downloader using youtube-dl (provide a list of links to videos to download) (6 ✔️)*** (NEW) Social Media Dashboard - see analytics from multiple social media platforms (5 ✔️)*** (NEW) Web bot detector/blocker (4 ✔️)*** (EXISTING) Cross platform command-line utility for searching Amazon, Google, StackOverflow etc in your browser (2 ✔️)*** (NEW) Test wrapper script for running tests from different frameworks (1 ✔️)*** (EXISTING) My Little Pony search GUI for data and analytics of existing, large fan fiction database; built with Java Swing (1 ✔️)*** (NEW) Text diff tool for dealing with non line-based changes (1 ✔️)Project Ideas]]
* Open Source Case Study: Redis
*** Pub/Sub (e.g., chat systems, notifications)
** Redis Tutorial and Walkthrough: https://try.redis.io/
 
== Week 9 ==
 
* https://blog.humphd.org/observations-on-hacktoberfest-2018/
 
* [[OSD & DPS909 Fall 2018 Release 0.3]]
* [[OSD/DPS Fall 2018 Open Source Project Ideas]]
** Make sure you have chosen your projects (both new and existing) and have either filed bugs, or found things to work on. Your blog (due today) should discuss and explain what you plan to do over the coming 3 weeks.
** Spend the time in class talking with people about the projects, filing bugs, doing research, and figuring out your own ways to contribute.
 
== Week 10 ==
 
* Case Study: [https://github.com/prettier/prettier Prettier]
** Web site: https://prettier.io/
** Twitter: https://twitter.com/PrettierCode
** GitHub: https://github.com/prettier/prettier
** [https://www.youtube.com/watch?v=hkfBvpEfWdA James Long introducing Prettier (video)]
** [https://www.youtube.com/watch?v=3p6XR2VeHRw Visualization of Prettier Development (video)]
 
* Using linting and pretty-printing tools in projects
** [https://prettier.io/docs/en/install.html Installing Prettier]
** [https://eslint.org/ eslint]
* Complete your [[OSD & DPS909 Fall 2018 Release 0.3]]
 
== Week 11 ==
 
* [[OSD & DPS909 Fall 2018 Release 0.4]]
 
* 0.4 Project Options:
** Help fix eslint issues in Firefox (talk to Dave if you want to get involved so we can co-ordinate with Mozilla)
** Help fix flake8 issues in Pandas (talk to [https://seneca-open-source.slack.com/team/UCW8B11GD <code>@Alexander Ponomaroff</code>] on Slack if you want to help)
 
* Continuous Integration
** Lots of free-for-open-source services: [https://travis-ci.com/ TravisCI], [https://azure.microsoft.com/en-ca/services/devops/pipelines/ Azure Pipelines], [https://circleci.com/ CircleCI], [https://www.appveyor.com/ AppVeyor], [https://jenkins.io/ Jenkins]
** See also [https://github.com/bleenco/abstruse Abstruse CI], [https://appcenter.ms/ Appcenter], [https://assertible.com/ Assertible], [https://github.com/bosondata/badwolf Badwolf], [http://bitrise.io/ Bitrise], [https://www.browserstack.com/ BrowserStack], [https://buildkite.com/ Buildkite], [https://www.chronoci.com/ ChronoCI], [https://www.codacy.com/ Codacy], [https://codefresh.io/ Codefresh], [https://www.codeship.io/ Codeship], [http://concourse.ci/ ConcourseCI], [https://continuousphp.com/ ContinuousPHP], [https://drone.io/ Drone], [https://ebertapp.io/ Ebert], [https://gocd.io/ GoCD], [https://houndci.com/ HoundCI], [https://nixos.org/hydra/ Hydra], [https://probo.ci/ Probo.CI], [https://semaphoreci.com/ Semaphore], [https://www.shippable.com/ Shippable], [https://www.jetbrains.com/teamcity/ TeamCity], [https://www.visualstudio.com/team-services/ VSTS], [https://app.wercker.com/ Wercker]
 
* 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/job-lifecycle/#the-job-lifecycle Stages of 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`
 
* Deployment options:
** 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/
*** https://docs.travis-ci.com/user/status-images/
** [https://docs.travis-ci.com/user/deployment/cargo/ Deploy Rust crates to Cargo]
** [https://docs.travis-ci.com/user/deployment/releases/ Deploy binary releases to GitHub Releases]
** [https://docs.travis-ci.com/user/deployment/heroku/ Deploy web apps to Heroku]
** [https://docs.travis-ci.com/user/deployment/npm/ Deploy node modules to npm]
** [https://docs.travis-ci.com/user/deployment/pypi/ Deploy python packages to PyPi]
 
* 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
 
== Week 12 ==
 
* News
** event-stream hack
*** https://twitter.com/garybernhardt/status/1067111872225136640
*** https://github.com/dominictarr/event-stream/issues/116
*** https://schneid.io/blog/event-stream-vulnerability-explained/ Hack explained
*** https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
*** https://blog.tidelift.com/event-stream-100-million-downloads-unmaintained-hacked.-now-can-we-pay-the-maintainers
*** https://tidelift.com/
** LTS for Node Modules - https://medium.com/@nodejs/call-to-action-accelerating-node-js-growth-e4862bee2919
*** https://github.com/nodejs/package-maintenance
*** https://www.npmjs.com/package/readable-stream
*** https://www.npmjs.com/package/mqtt - "MQTT.js is another good example which is used by AWS, Microsoft, and IBM"
** https://arstechnica.com/tech-policy/2018/11/how-i-changed-the-law-with-a-github-pull-request/
** https://humphd.github.io/pretty-effective/
 
* [[OSD & DPS909 Fall 2018 Release 0.4]]
 
* Reading Code to Fix Your Own
** <code>git blame</code>
** GitHub File History
** GitHub Issues, Pull Requests
 
* Examples
** Firefox ESLint - "have any of you dealt with your [https://eslint.org/docs/rules/no-undef no-undef errors] yet? - I am wondering where this 'SpecialPowers' comes from and if it can be ignored" - https://dxr.mozilla.org/mozilla-central/source/testing/mochitest/nested_setup.js#2
** <code>fs.access()</code> - [https://opensource.apple.com/source/cvs/cvs-33.0.1/cvs/src/filesubr.c.auto.html Apple's CVS source], [https://github.com/torvalds/linux/blob/6f0d349d922ba44e4348a17a78ea51b7135965b1/fs/configfs/file.c#L366-L420 Linux file.c]
** "How to structure a Python CLI?" - [https://github.com/tensorflow/hub/blob/master/examples/image_retraining/retrain.py Tensorflow retrain.py], [https://github.com/google/python-fire Python Fire], [https://github.com/aws/aws-cli AWS cli]
** CreativeCollab, other apps using [https://boardgame.io/#/ boardgame.io]: [https://www.npmjs.com/package/fields-of-arle fields-of-arle], [https://www.npmjs.com/package/agricola agricola]
** mySeneca Extension, learning from [https://github.com/sindresorhus/refined-twitter Refined Twitter]

Navigation menu