Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Open Sourcing Hardware with GitHub

No description
by Christopher Clark on 20 October 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Open Sourcing Hardware with GitHub

Open Sourcing
Hardware
with GitHub

Christopher Clark
Why open source at all?
Open Source 101:
The Passive Approach
Testing is hard
Engineers are expensive
Users are engineers
Also:
It gives us
warm fuzzies
OPEN SOURCE WORKS.
2003
2004
2005
2006
2007
2008
2009
2010
2011
$25M
$20M
$15M
$10M
$5M
150e
120e
90e
60e
30e
140
emps
102
emps
74
emps
51
emps
31
emps
21
emps
11
emps
2
emps
1
emp
$18.4M
revenue
$10.7M
revenue
$6.6M
revenue
$3.8M
revenue
$1.8M
revenue
$880K
revenue
$410K
revenue
$211K
revenue
Revenue at year end
Employee count at year end
Open source by habit
Open source by strategy
$30M
180e
2012
145
emps
$25M
revenue
$28.3M
revenue
Simple
Cheap
Effective
Download Source Code
Passive Drawbacks
1-1
For The
Community
For
SparkFun
one way street
Cumbersome
Difficult QA
Opaque versioning
Snapshots only
Sparse history
Informal upstream
VERSIONING
a perpetually unsolved problem
Firmware Hardware
neither to SparkFun nor anyone else
oy, versioning...
Change = new version

Hardware change: new "version" every time
(most of the time )
(sort of)
Board changes: new version
Schematic changes, board does not: new subversion

E.g. v14.1 = version 14, subversion 1.
Either way, different board, kind of...
Firmware changes: well...
Big new feature: probably a new subversion
Bug fixes, small features: same version
Changes happen on a continuous spectrum!
Buy an OpenLog v2.5

v3.0 hits with Arduino support

Which version do I have?*

Can I put 3.0 on my 2.5 board?
*a much bigger problem than it may seem.
versioning can be really hard.
The Active Approach
two way street
Web-based
Slick and modern
Extensive help available online
Version control!
Rich history
Many ways to go upstream
Of course, it's not perfect.
Binaries have opaque changes
No hardware previews
Consistency is tough
Not so simple anymore
The Mechanics
many
many
to
A product can have one or more repositories
A repository can have one or more products
LilyTiny/LilyTwinkle
One repo, two products
Serial 7-Segment Display
Two repos, five products
Practices
Tools
GitHub for Windows (v1.0)
Git is most powerful via command line.
But this is supposed to be easy, right?
Lead users through all methods.
Emphasize CL.
Limitations:
No multiple remotes
"Sync" = pull + push
Rebase? Cherry Pick?
Repo naming conventions
Private to public
Tagging versions
Pull requests
READMEs!
Licensing
The Community
Download
I can grab a zip file
Levels of Involvement
Clone
I can get a local copy of the original source
Pull
I can keep my local copy up to date
with the original source
Commit
I can keep my local changes under
version control
Fork
I can make a remote copy of the
original source
Push
I can make my local changes
public on my remote copy
Pull Request
I can send my changes back to the original source
to be reviewed and, hopefully, merged
Guidance
Oversight
What's Next
Clear tutorials for all
Repo Discoverability
Demystifying versions
Dedicated QA

(community manager)
Code review is for everybody
Positive feedback loop
Growing trust
everyone
all users who commit upstream
trusted
users granted merge access
top
able to manage
the managers
Growing the community base
Better guides
More consistency
Clearer versioning
More responsive review
MORE OPEN SOURCE STUFF
@Frencil
Director of IT
github.com/acaudwell/Gource
github.com/Frencil/MultiGource
CC
Christopher Clark
@Frencil
See the full transcript