389COM: Module Introduction
Dr Carey Pridgeon, DR Nazaraf Shah
Created: 2018-09-14 Fri 09:48
- 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
- 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
- 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
Collaboration - 1
- During your life as a student, you will probably have learned to despise
- 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.
- 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
- 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.
- 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.
- 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
- 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
- Free coders gotta eat too.
- They don't have their own licence or products, but instead act as an approval body.
- emacs Editor
- Hard to use, but probably one of the best programming editors in the
- Well, not hard to use, but complicated to learn because it can do
- All the materials for this module were written in emacs org-mode.
GNU Compiler Collection
- 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.
- Industry Standard Debugging Tool (unless you are Microsoft).
- Used in virtually all IDE's that employ GCC compiled languages.
- Industry standard profiling tool (unless you are guess who…)
Bourne Again Shell
- 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
- 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.
- 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)