synchronization FileZilla rsync unison version control RCS CVS Subversion Bazaar Mercurial Bitbucket Git Git Cola GitHub GitLab class archive Dropbox ownCloud Web development Web serving NGINX Apache file:// http-server (npm install -g http-server) http.server (python -m http.server) W3C HTML CSS HTML5 templates view source (g)vim emacs VS Code Atom Sublime Zed Brackets Phoenix Eclipse Visual Studio LibreOffice SeaMonkey Dreamweaver Notion JavaScript Bootstrap jQuery Markdown Markserv Strapdown.js Pandoc Hugo Jekyll VuePress MkDocs CI/CD YAML CGI, PHP, security blogs, wikis, documentation, content management systems GitBook DokuWiki TiddlyWiki MoinMoin GetSimple Moveable Type WordPress Drupal Moodle security collaboration Slack Mattermost videoconference protocols H.323 SIP H.239 WebRTC codecs H.261 H.263 H.264 H.265 Multipoint Control Unit (MCU) hardware software cloud clients software Spark RealPresence Ekiga Linphone hardware Polycom LifeSize speakerphone webcam Jitsi OBS Studio remote desktop Remmina xrdp TightVNC x11vnc Vinagre vncviewer noVNC NICE DCV project management programs TaskJuggler OpenProj GanttProject Trello Taiga ClickUp GitLab project management principles 80/20, 95/5 demand- vs supply-side time management triage serial vs parallel development spiral development bottom-up vs top-down debugging hierarchy, modularity document, clean as you work RTFM Mythical Man-Month assignment assignment assignment read, sign the student/instructor/lab agreements, and commit to your repos work through a git tutorial build a personal site in the class archive describing you and your final project