Working at Home
At Home with the • Working at home has some advantages …
Free Software Developer – Get up when you want
– No need to be smart
7th December 2004 – Eat all the cookies
Advanced Software Development – Work where you like
– Work when you like
Nathan Sidwell
– Go out in the middle of the day
www.codesourcery.com www.codesourcery.com
Working at Home Telecommuting
• … and some disadvantages … • There are dangers in telecommuting
– No office gossip – Main group will be more cohesive
– Displacement temptation – Main office will assume you are slacking
– Difficult to switch off – You will have less input to group decisions
– Boring office party
– Difficult on-the-job training
www.codesourcery.com www.codesourcery.com
1
Working at Home CodeSourcery
• Do have an office • A distributed company
– Make it pleasant – Everyone works at home
• Don’t live alone – Constant IRC chat
– Or some friends – Weekly telephone meetings
• Do have regular hours – Annual physical meeting
– Track them – Everyone is technical
• Don’t work alone
– Use IRC
www.codesourcery.com www.codesourcery.com
GCC Compiler Organization
• GCC contains ~2 million lines of code • Complicated by multi-source, multi-target
– Comparable complexity to Linux kernel – Most compilers are from one language to one target
• Started in 1987 by RMS • Front End – C, C++, Java, Fortran, Ada
– Originally done by small group (cathedral)
• Middle End
• Forked in 1997 to EGCS project
– SSA, machine independent
– Open access development (bazaar)
– RTL, machine dependent
• Remerged in 1999
– EGCS had succeeded • Back End – Machine descriptions
www.codesourcery.com www.codesourcery.com
2
GCC Development Toolchains
• Uses the bazaar programming model • People will always need toolchains
• Maintainers approve changes for each part – New hardware
– FE/ME/BE/target – New languages
• Anyone can submit patches – New optimizations
– Stream of new developers – Support to get their job done
• Difficult learning curve
– Compilers are hard
– GCC has crufty internal interfaces
www.codesourcery.com www.codesourcery.com
How I Started What is Free Software
• Used clisp • Free as in freedom, (not beer)
– Quick fixes • How much is software worth?
• Released Xmris • Is it worth keeping bits secret?
– Got a pile of sprites
• Fixed bugs in G++
– My C++ code broke it
• Got hired
www.codesourcery.com www.codesourcery.com
3
Some Observations Licensing
• I know my code is immediately useful • Proprietary
– It won’t get thrown away due to a marketing – End user buys software like a physical good
meeting • Open
• Keeps you honest – End users get software for gratis
– Your code is there for the world to see, so it better – End users are developers who have yet to submit a
be good patch
• Users can query the developer directly • Both have some terms and conditions
– No script-reading droid in the way • Both might not do exactly what you want
www.codesourcery.com www.codesourcery.com
Proprietary EULA Open Source License
• For some money you get to use this software • Here’s the source
– On one machine – You can use it how you like
– You can’t look at its source – You can distribute it how you like
– You must not disassemble it – You can modify it how you like
– You can’t modify it – *IF* you distribute modified versions, you must
– If it destroys your data, tough distribute the modified source, to the *SAME*
– We might check up on you at any time people
– If it destroys your data, we’re really really sorry
www.codesourcery.com www.codesourcery.com
4
GNU General Public License The GPL is not a Virus
• A license, not a contract • The *WHOLE* point of the GPL is to keep
– Uses copyright law to bestow under what software freely available
circumstances you can copy • If you bought software from Microsoft, could
• Stops users being held to ransom you merge it with some of your own and then
release it?
• Stops developers from usurping other’s work – Not without a distribution license from Microsoft
• Stops the ‘tragedy of the commons’ • The GPL merely specifies how you can get a
distribution license
– That’s the deal
www.codesourcery.com www.codesourcery.com
Other Open Source Licences Indemnity
• BSD-like • Microsoft have announced an indemnity
– No requirement for derivative works to be free program
– Lets someone freeload – If you get sued for using their software they will
refund you the money
• Artistic License, LGPL – Microsoft gets sued all the time
– Like GPL, but allows ‘embedding’ • Only became an issue when SCO started suing
• www.opensource.org lists about 50 licenses its own customers
– Don’t attempt to write your own (without a lawyer) – SCO has yet to show one single line of infringing
code in the Linux kernel
www.codesourcery.com www.codesourcery.com
5
Company Business Models Employee Business Model
• Sell a service, not a product • Job satisfaction
– You could productize the service – Visibility of your work in a wide community
• Sell support • Job mobility
– Vendors, developers – Other employers can see your work
• Sell development – You see what others are doing
– Customer leverages existing code base
www.codesourcery.com www.codesourcery.com
Your Business Model
• Experience with development teams
• Exposure to many programming techniques
• Track record of good work
• Smart and gets things done
www.codesourcery.com
6