389COM: Module Introduction

Dr Carey Pridgeon, DR Nazaraf Shah

Created: 2017-07-21 Fri 14:47

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
  • You will be getting your first taste of working with live code (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 99.9% of 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.
  • Even Macdonalds uses Teamwork…
  • So, learn to be good at it, fast.

Collaboration - 2

  • This module has some teamwork elements available as optional componants.
  • It also involves you communicating with Mozilla software bug owners/mentors as non optional ones, 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.
  • 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, but they act as an approval body.
  • There are no direct OSI products.

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%)
  • Mostly lone developer projects. Usually 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)