Labs/Bespin/Roadmap/Reboot: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(tweaks from Joe) |
||
Line 22: | Line 22: | ||
* Provide a fantastic editor user experience | * Provide a fantastic editor user experience | ||
* Support for local file access and multiple backends | * Support for local file access and multiple backends | ||
* Giving users 'social coding' to inform of others' work and avoid duplicated effort | |||
* Providing a simple but powerful UI using a graphic-assisted command-line | |||
What are un-goals? | What are un-goals? | ||
Line 34: | Line 36: | ||
* Use a framework | * Use a framework | ||
* Events are great, but not too many | * Events are great, but not too many. They're for saying that something happened, not for requesting action | ||
* One system for keyboard handling | * One system for keyboard handling | ||
* Embedded component must be a first class citizen else it gets left behind | * Embedded component must be a first class citizen else it gets left behind | ||
Line 46: | Line 48: | ||
* How do we do design? | * How do we do design? | ||
** Do we need to agree on a drawing package like OmniGraffle? | |||
* How do we work together? | * How do we work together? | ||
** Do we do code reviews? | |||
* How do we prototype? | * How do we prototype? | ||
Revision as of 09:46, 2 September 2009
Bespin Reboot 2009
We have a new project to reboot Bespin, building on the knowledge that we have gained from the experiment so far. The goal is to allow us to build a solid foundation for the community at large to build on.
We have a different schedule for the reboot, which is:
- Weekly meetings, building to in person week
- September 4th; flushing out the high level goals
- September 11th
- September 18th
- September 25th
- In person: Week of Sept 28th
- Bringing in consultant to help build on SproutCore
- Use the week to decide if SproutCore Is It
High level principles for Bespin
What are the guiding principles for Bespin?
- Platform for developer tools
- Embedded component is a first class citizen
- Provide a fantastic editor user experience
- Support for local file access and multiple backends
- Giving users 'social coding' to inform of others' work and avoid duplicated effort
- Providing a simple but powerful UI using a graphic-assisted command-line
What are un-goals?
- Provide a UI toolkit
- Use canvas
- Be everything to everyone
What are tactical things we want to fix?
What have we learned from Bespin that we don't want to mimic:
- Use a framework
- Events are great, but not too many. They're for saying that something happened, not for requesting action
- One system for keyboard handling
- Embedded component must be a first class citizen else it gets left behind
- Tests, tests, tests
- Prototypes, prototypes, prototypes
- We jump to implementation too fast
- Plugins, plugins, plugins
- Documentation, ...
What is our software development process?
- How do we do design?
- Do we need to agree on a drawing package like OmniGraffle?
- How do we work together?
- Do we do code reviews?
- How do we prototype?
How do we work with the community?
- How are we inclusive?
- How do we deal with contributions?
- How do we reward the community?
- How do we grow the community?
What does the architecture look like?
- What does the model look like?
- Does Bespin become a single page app? (no front page, dashboard, login)
- Do we use the concept of "states" to go between LOGIN and COLLABORATING?
- ties into login being part of the main app and not the page before
- How does the embedded editor component fit in?
- Do we build bespin.mozilla.com with the embedded component itself?
- Does it depend on SproutCore? or standalone?
- The system works from a session which can be tied to an account
- Tie into Mozilla ID (which is OpenID) ?
- Allows anonymous/no account access
- Multiple backend provider support baked in
- Multiple servers
- Include support for local file access
- Do we require the concept of "projects"?
- Ramifications for:
- wanting to quickly edit a page (create hidden project?)
- wanting to search across a set of files and grouping operations (e.g. compile)
- Ramifications for:
What infrastructure should change?
- SproutCore is git friendly, maybe the time to switch? :)