Lessons learned maintaining Open Source ActionScript projects
-
Upload
zeh-fernando -
Category
Technology
-
view
4.036 -
download
1
description
Transcript of Lessons learned maintaining Open Source ActionScript projects
![Page 1: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/1.jpg)
LESSONS LEARNEDMAINTAINING OPEN SOURCEACTIONSCRIPT PROJECTS
ZEH FERNANDO – FIRSTBORN MULTIMEDIA – OCTOBER 2009
![Page 2: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/2.jpg)
BACKGROUND
![Page 3: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/3.jpg)
MC TWEEN
• Tweening “prototypes” for ActionScript 1 (and ActionScript 2)
• First made public in April 2003
• Last version released in April 2006
• Last version had an average 148 downloads/day during the first four months of 2009
![Page 4: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/4.jpg)
TWEENER
• Static tweening class for ActionScript 2 and 3
• Started in June 2005; first made public in January 2007
• Last version released in June 2009
• Last version had an average 245 downloads/day (latest version, from June to today); around 279,326 downloads in total (stable versions only)
![Page 5: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/5.jpg)
THE PEOPLE
![Page 6: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/6.jpg)
THE PEOPLE
If you build it, and it fills a niche, they will come.
Sometimes even if you didn't intend them to.
![Page 7: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/7.jpg)
THE PEOPLE
Everybody and their mother are building “a framework”.
Focus on stating what it does. How can it help? Why is it different? Why should other people use it?
![Page 8: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/8.jpg)
THE PEOPLE
Some people will misunderstand what it is about.
They will try to use the code for something it's not meant for and, many times, be really stubborn about it.
![Page 9: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/9.jpg)
THE PEOPLE
People will request things.
They will insist on asking for some changes, often requesting something that is outside of the original project scope.
They will also come up with some bright ideas from time to time.
![Page 10: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/10.jpg)
THE PEOPLE
People will report bugs.
They have different scenarios and will reports errors you wouldn't normally catch.
The vast majority of times, however, they will report bugs that never existed.
![Page 11: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/11.jpg)
THE PEOPLE
Some people will take your project, your project's field or task, or you, WAY too seriously.
![Page 12: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/12.jpg)
THE PEOPLE
You will be forced to provide support.
Even if you make it clear that you don't want to.
![Page 13: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/13.jpg)
DOCUMENTATION
![Page 14: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/14.jpg)
DOCUMENTATION
Documentation takes as much time as writing the code, and it's not as fun.
![Page 15: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/15.jpg)
DOCUMENTATION
Documentation is vital and must be correct.
![Page 16: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/16.jpg)
Tweener.addTween(mymc, {_color:0xffgg33, time:1});
![Page 17: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/17.jpg)
DOCUMENTATION
Suggestion: write documentation as you code. Use ASDoc.
http://livedocs.adobe.com/flex/3/html/help.html?content=asdoc_1.html
![Page 18: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/18.jpg)
/*** This method does something cool.** @param p1 First parameter description.* @param p2 Second parameter description.** @return Return value description..** @see otherNiceMethod*/public function coolMethod(p1:String, p2:Number):Boolean {
...}
![Page 19: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/19.jpg)
API
![Page 20: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/20.jpg)
API
The approach you take with your API means (almost) everything.
![Page 21: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/21.jpg)
ball.dynTween({_x:[300, "out", 100], duration: 50});
TATSUO KATO'S DYNTWEEN PROTOTYPE (2000-2002)
var twn = new Tween(ball, "_x", Math.easeInOutCirc, ball._x, 300, 50);
ROBERT PENNER'S TWEEN CLASS (2002)
ball.xSlideTo(300, 1, “easeInOutCirc”);
MC TWEEN PROTOTYPE (2003)
![Page 22: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/22.jpg)
API
API needs change with time.
Communities mature. The language and the platform itself change. You learn more.
![Page 23: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/23.jpg)
API
Your project's API is pretty much forever.
Changing anything that's public brings pain for everybody. Think well before publishing; test different approaches.
![Page 24: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/24.jpg)
API
Much more than I could say:
How to design a good API and why it matters – Joshua Blochhttp://www.youtube.com/watch?v=aAb7hSCtvGwhttp://lcsd05.cs.tamu.edu/slides/keynote.pdf
![Page 25: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/25.jpg)
PROJECT MANAGEMENT
![Page 26: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/26.jpg)
People will want to help, often contributing code of their own even if unrequested.
Be prepared to deal with them – either adding their changes to the project, rejecting it, or bringing them to your team.
PROJECT MANAGEMENT
![Page 27: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/27.jpg)
Project management with more people is hard.
Prepare to deal with it professionally.
PROJECT MANAGEMENT
![Page 28: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/28.jpg)
Version control (Subversion, CVS) is an absolute necessity, at least internally, unless it's a small, one-man project.
PROJECT MANAGEMENT
![Page 29: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/29.jpg)
For larger projects, bug tracking helps dealing with the audience at large.
It also creates a more focused discussion about problems and even feature suggestions.
PROJECT MANAGEMENT
![Page 30: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/30.jpg)
Having internal documents help, especially when there's more people involved.
Specially useful are the list of project goals, a to-do list, and a development roadmap; for bigger projects, a feature implementation blueprint.
PROJECT MANAGEMENT
![Page 31: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/31.jpg)
Example of a feature implementation blueprint:https://wiki.ubuntu.com/SystemCleanUpTool
PROJECT MANAGEMENT
![Page 32: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/32.jpg)
Suggestion: Google Code offers file and document hosting, SVN repository, and basic bug tracking.
http://code.google.com/projecthosting/
There are alternatives too.
PROJECT MANAGEMENT
![Page 33: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/33.jpg)
RELEASE
![Page 34: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/34.jpg)
Do a lot of testing with each release.
Set test cases and examples, do unit testing if possible. Release “unstable” (beta; new features) and “stable” (bug correction) versions.
RELEASE
![Page 35: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/35.jpg)
Pick a distribution license (BSD, GPL, MIT, etc).
Licenses vary a lot and impose limits, obligations and advantages of their own.
http://www.opensource.org/licenses/category
RELEASE
![Page 36: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/36.jpg)
Not everybody has a version control client on every computer or knows how to operate it.
You can release versions on SVN/CVS more often, but be sure to have a zip version for convenience available somewhere.
RELEASE
![Page 37: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/37.jpg)
AND FINALLY...
![Page 38: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/38.jpg)
It can also be really rewarding by making you well-known to the people that matter.
(And you don't have a lot of control over it, so no funny business)
AND FINALLY...
![Page 39: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/39.jpg)
You will make mistakes.
You will learn, and it's part of the fun. Don't take it personally.
http://code.google.com/events/io/sessions/MythGeniusProgrammer.html
AND FINALLY...
![Page 40: Lessons learned maintaining Open Source ActionScript projects](https://reader034.fdocuments.in/reader034/viewer/2022052618/55492539b4c905a54c8ba3be/html5/thumbnails/40.jpg)
Suggestion: if you're serious, read this book (it's free!).
Producing Open Source Software – Karl Fogelhttp://producingoss.com/
AND FINALLY...