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 Atom VS Code Sublime Geany Brackets Phoenix Eclipse Visual Studio LibreOffice SeaMonkey Dreamweaver 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 Hatta-Wiki 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 WebRTC Jitsi OBS Studio remote desktop Remmina xrdp TightVNC x11vnc Vinagre vncviewer noVNC NICE DCV project management programs TaskJuggler OpenProj GanttProject Trello Taiga 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