389COM: Module Introduction

Dr Carey Pridgeon, DR Nazaraf Shah

Created: 2018-09-14 Fri 09:48

Lecture One

Module Content

  • This module will be covering the legal and ethical aspects of the Open Source World, and usage of common Open Source tools.
  • We will also be getting directly involved with the Mozilla Foundation.

Why You Should Care About This Module

  • This Modules outcome can be used in your CV
  • If you choose to, you will be getting your first taste of working with live code, meaning code in a production environment.
  • That means, unlike previously, the code you will be encountering won't be toy problems, it will be production code, and your changes, if accepted will be contained in a product in worldwide use.

Employability - 1

  • Open Source Developers used to be perceived as bearded weirdos who lived in cellers, obsessed about obscure Science Fiction and didn't go outdoors much.
  • Now they are the CEO's and lead developers of major Software and technology companies.
  • Open Source Developing is the new way to make your name in the industry. It may not make you money directly.

Employability - 2

  • In fact it won't in almost all cases, but it can get you contacts and experience.
  • This automatically makes you more employable. Conversly, not having a Github profile with projects in marks you as less employable.
  • There's a better than average chance that one of the people who will interview you for a position at a company is or has at some point been an open source developer.

Collaboration - 1

  • During your life as a student, you will probably have learned to despise teamwork.
  • Unfortunatelly, in the working world, everything revolves around teamwork, you simply cannot escape it.
  • Macdonalds uses Teamwork, as a succesful corporation they could not function without it. Success requires teamwork.
  • So, learn to be good at it, fast.

Collaboration - 2

  • The Mozilla collaboration is optional. Not doing it will involve reduced marks, but still means you can pass this module, provided you complete the other components.
  • If you do choose to do it:
  • It involves you communicating with Mozilla software bug owners/mentors. A sort of gentle introduction to real life teamwork (I will explain more about this).
  • Teamwork is however something you will not escape when you begin your careers, so you should learn what you can from this module.

Familiarisation in working with large projects

  • University students never get to work with large codebases, their work being restricted to purely 'toy' code.
  • This module lets you gain some experience with a larger codebase.
  • How much you get from this module is entirely down to you, if you choose to do the minimum, you can, but the loss will be yours.
  • In the past students have left this module and gone on to have strong ties to people at Mozilla and in the wider open source world.

Module Assessment

  • This Module is assessed by means of a Portfolio of Works.
  • This Portfolio is, in spite of what you may beleive harder than an Exam if you want to get anything but a low grade.
  • The only difference is you have the opportunity to spread that difficulty over a longer period of time.
  • The assessment scheme is thorough, because the outcome of this module can be used in your post degree job search.
  • Portfolio detail can be found in the portfolio document

Programming Expectations - 1

  • We will not be teaching you any programming. But this does not mean the module won't involve some very complicated programming.
  • In fact, in order to get a decent grade you may need to do some of the hardest coding of your degree so far.

Programming Expectations - 2

  • Grading will take place based more on the quality than quantity of your coding output.
  • A large portfolio of incomplete or trivial work will be worth a lot less then a small portfolio of completed work of good quality.
  • There is no how many bugs you need to do count, beyond more than one.
  • When we are invariably asked the question, which we always are how many bugs do I have to do, the answer will always be read this lecture again.

Mozilla Foundation

  • A non profit foundation founded in 2003.
  • They make Firefox - The web browser we will be working with
  • Plus too many other products to list here, so instead of doing that I've provided a link for you to browse in your own time.
  • Mozilla Products

A Thing to do Today

  • Set up a Mozilla account. Do this with your real name and personal email address so your work is available when potential employers search for you.
  • Mozilla Bug Tracker
  • set up user accounts on Nostromo by going here.
  • Or Use the VM instead - which is probably easier -
  • Start the Linux Command Line Worksheet or another from the set.

Free Software Foundation

  • Founded in 1985 by Richard Stallman.
  • Website
  • Primary Licence GPL (Gnu Public Licence) text here
  • They also act as an approving body for other licences that match, or approximate, their philosophy.
  • This licence is CopyLeft not CopyRight. This distinction was Stallmans idea.
  • The distinction is largely meaningless, since it remains a copyright protecting device, but it's his ball as it were…

Free Software Foundation

  • A less restrictive version, the LGPL (Lesser Gnu Public Licence) was released in 1999.
  • They seem to be regretting doing this, as they feel it isn't restrictive enough and want to stop people using it.
  • This somewhat extreme approach is causing them to become increasingly isolated from the wider software community.
  • In spite of this they continue to have a valuable place in the softare landscape. There is such a thing as too much compromise after all.

Open Source Initiative

  • the OSI was founded in 1998 by Bruce Perens.
  • They are a community of existing projects/companies that promote collaboration with the commercial world.
  • The phrase Open Source was created to be less negative to the commercial world.
  • Free coders gotta eat too.
  • They don't have their own licence or products, but instead act as an approval body.

GNU Emacs

  • emacs Editor
    • Hard to use, but probably one of the best programming editors in the world.
    • Well, not hard to use, but complicated to learn because it can do so much.
    • All the materials for this module were written in emacs org-mode.

GNU Compiler Collection

  • GCC
    • An Industry Standard Compiler (unless you are Microsoft).
    • Hugely complete, and superior in every respect.
    • Comes with Autotools, the worlds most difficult to learn, but again, industry standard Build System.

GNU Tools

  • GDB
    • Industry Standard Debugging Tool (unless you are Microsoft).
    • Used in virtually all IDE's that employ GCC compiled languages.
  • Valgrind
    • Industry standard profiling tool (unless you are guess who…)

GNU Tools 2

Bourne Again Shell

  • Bash
    • The standard shell for almost all operating systems
    • Contains a comprehensive scripting language.
    • There are more shells, but you will encounter Bash most often.

Apache Software Foundation

  • Apache Web Server
  • Originally called A Patchy Web Server.
  • Approximately half the net is running Apache.
  • They have too many other products to list in this slide - linky

Hurd

  • The Hurd Kernal Project, started in 1990 and still going (sort of).
  • Hurd is The FSFs failed attempt at a free kernel.
  • Why it failed is a complex story of mismanagement, and involves the FSF doing much of what they accuse the commercial world of doing.

Where Open Source is not so good

  • Documentation is often very poor.
  • User Interfaces are sometimes overly complex.
  • Most Open Source/Free Software projects get abandoned: (98%)
  • It's not because they've failed in the way that we see it in the commercial world, but because they are mostly lone developers who move on to something else before getting anywhere significant.
  • given their open nature, code bases are sometimes co-opted by malware groups (chrome particularly).

Where Open Source is great

  • Longevity of Projects, and consistency of developers.
  • More secure in theory, because the code is open for inspection.
  • Anyone can do it.
  • Even code in abandoned projects is often re-used.
  • Potential employers trawl Github and othe code repositories (but mostly Github right now) for talented programmers.

Obligatory XKCD

open_source.png

  • Copyright: Randall Munroe - XKCD
  • Mirrored on my hosting to avoid bandwidth stealing

Licence for this work

  • Licenced under Creative Commons Attribution-ShareAlike 4.0 International by Dr Carey Pridgeon 2016
  • (Licence does not cover linked images owned by other content creators)