--
You received this message because you are subscribed to the Google Groups "App Inventor Open Source Development" group.
To post to this group, send email to app-inventor-o...@googlegroups.com.
To unsubscribe from this group, send email to app-inventor-open-so...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/app-inventor-open-source-dev?hl=en.
Alright, but that doesn't really help a lot for those who do want to experiment.
Maybe MIT could increment those integers by a minimum of 3 each time
they update them upstream, until the full community and
cross-pollination structure is built? This would give a little bit of
room for private work while reducing potential fragmentation.
My initial thought is that we're going to need one bump for learning
how to work with the component/block stuff in support of learning what
we'll want in a useful block development kit, and then another for
exploring what the serializations of those structures could be. If
MIT increments by 3 in the event of updates, it would permit this.
Then again, I haven't had the time yet to look at the code very much
at all, so it may take less than that.
-Kyle H
Sharon
--
You received this message because you are subscribed to the Google Groups "App Inventor Open Source Development" group.
My plan is that if I should extend the language, and I'm not sure that
I need to right now, nor whether I have the time :-) I would keep
that within a closed community and submit it as a proposal once the
central version is brought online.
There is nothing to stop people experimenting in any of the above, it
is simply a request to control the propagation of any extensions and
innovations.
@Mark,
May I suggest the early creation of a Jira or similar bug and
requirements tracking system if there is an opportunity to do so. This
way we can start to track bugs that come out of the beta and colect
feature requests. If peopel then wish to work on a specific feature
they could let everyone know and perhaps get advice and input from
others; thus saving duplication of effort and some of the
fragmentation risk.
To help the community coordinate (a stopgap only, until the MIT team can choose a system more tailored to their workflow and management), I created https://code.google.com/p/appinventorcommunity/ to get a bug tracker and a wiki. Everyone's invited. I seek people to hand the management off to, as I really don't have the time.
I would rather not do repository management, so there's no code in the repo. Anyone who wants to do so is welcome.
I'd like to see the development of something other than MercurialBuildID for component availability detection in BuildServer before it calls Kawa. (This is the reason I sought 2 revision numbers in each of YAV/BLV: the first was for exploring the problem domain so we have a better idea of what needs to go into the final spec, and the second was so that we have a cap on the language version advertised by the community releases. I wish MIT to not have to deal with problems, including "code from community instances", until they actually have to.)
If Mark or Liz would prefer to move or keep all of this under the app-inventor-releases project, would they please enable the bug tracker there? I would prefer that they kept the reins. In the meantime, though, we need coordination now to avoid fragmenting our codebases. Reintegrating a shattered community is much more difficult than avoiding fracture in the first place.
> app-inventor-open-source-dev@googlegroups.com.
> To unsubscribe from this group, send email to
> app-inventor-open-source-dev+unsub...@googlegroups.com.
To unsubscribe from this group, send email to
Raymond likens the development of software by traditional methodologies to building a cathedral, "carefully crafted by individual wizards or small bands of mages working in splendid isolation".
Dynamic decision making structureThere is a need for a decision making structure, whether formal or informal, that makes strategic decisions depending on changing user requirements and other factors. ...
--
You received this message because you are subscribed to the Google Groups "App Inventor Open Source Development" group.
To view this discussion on the web visit https://groups.google.com/d/msg/app-inventor-open-source-dev/-/9Nj-Q2mHMswJ.
To post to this group, send email to app-inventor-o...@googlegroups.com.
To unsubscribe from this group, send email to app-inventor-open-so...@googlegroups.com.
Gary,
Your response rambles a bit, so I'll address what I see as your main points. I apologize if I miss the mark with any of them.
...
Gary,
Your response rambles a bit,
so I'll address what I see as your main points. I apologize if I miss the mark with any of them.
- Eric Raymond (highly respected) says, for system design to work, there must be a minimal cadre of architects. This is true regardless of cathedral or bazaar methodology. MIT&Google are the cathedral in the current system, and we're out here in the bazaar.
- We need an architectural team to decide where we want the main project to go. Currently MIT&Google comprise the team, with no input from the community. You are waiting for this to change before contributing your sdcard access components and other code to the commons.
- We need a main Repository where only the architects have commit. The architects review patches from non-architects before they're committed.
- MIT has created proprietary fragmentation by making their beta system produce BLV which we don't have code to handle. We're left orphaned with no way to take code from MIT's beta service for local use.
Is this a fair summation?
-Kyle H
I'm going to write another post (or posts) about general open source matters but let me just say on the particular point below that it is purely a temporary timing issue. I intend to try and keep the open source in sync with the MIT server/jars. In fact, I tried to do that today but messed up. It will come, though.-Mark
I'd like to enlist all of you in an effort to avoid some of the potential dangers of fragmenting the App Inventor user base.First off, let me say that I think it's great for folks to experiment with the code, try new things, etc. If you're doing things for your (or your friends) own use of App Inventor, everything's cool. The real danger occurs if you make changes to the code and then make your server available to the public. At that point we risk confusing people about what App Inventor is and how it's used. The biggest problem is if you make changes to the components and/or the blocks language. In that circumstance you run the risk that your users downloaded projects won't be uploadable or usable in other servers and that does a significant disservice to all App Inventor users.So here are some suggestions that I think might help to mitigate the dangers:
- If you really want to open up a server based on modified App Inventor code, try to be clear to your users that they're not interacting with a 'standard' App Inventor instance. Having your own logo may help, as would your own 'about page', etc.
- Limit your changes so that they don't involve changing (i.e. adding, deleting or modifying) components or blocks.
- If you do change components or blocks, please take a close look at the code and comments in com.google.appinventor.components.common.YaVersion and openblocks.yacodeblocks.BlockSaveFile (esp. the upgradeLanguage method). There's a mechanism there for detecting the versions of components and blocks. The most important thing is to increment YaVersion.YOUNG_ANDROID_VERSION and YaVersion.BLOCKS_LANGUAGE_VERSION if you make such changes. If you do that, at least other, older, versions of App Inventor will know to reject such uploaded project source zips. Not that there's still a danger of having multiple developers incrementing those constants to the same value and therefore incorrectly allowing projects that they won't be able to handle but it's a first line of defense. At some point we'll figure out a way to coordinate it all, probably when MIT is ready to deal with it.
Let me what you all think. We'll need the support of all you developers in spreading the word about the dangers of fragmentation and helping other developers to understand the issues.
Thanks in advance.
Some more thoughts about fragmentation.First off, lt me make clear that what people do with their own code in the privacy of their own servers and used only by themselves or small numbers of known users is not an issue. It's only when developers open their servers to larger numbers of unknown users, who may attempt to bring their projects to other servers, that fragmentation rears its ugly head.
There has been some talk back and forth in this forum about the potential for fragmentation due to the desire for custom or special purpose components. Rather than dealing with that by having a plethora of bespoke App Inventor versions I would prefer to see this done via our old idea of a Component Development Kit. The idea behind the CDK would be that developers would be able to create and package their components (coded in a similar manner as the current components) in a way that would allow them to be uploaded and used by any App Inventor user on any server. Downloaded App Inventor source zips would contain information on these 'extra' components and could check on whether they had been uploaded by the user and complain if they hadn't. Alter on, you could imagine more sophisticated mechanisms for automatically uploading the components or including them in the source zip, etc.Note that some of these special purpose components might also eventually get proposed and included in the canonical source if they turn out to be popular and of high enough quality.It's harder, but possible I think, to take a similar approach with respect to the non-component blocks language.We had just started the work on the CDK when we decided to open source, so we didn't get very far along, but we did have a vague design for it and made some foundational changes to get ready for it. I hope that the App Inventor dev team will consider continuing the work on this at some point in the near future.
-Mark
On Tue, Jan 24, 2012 at 1:15 PM, Mark Friedman <ma...@google.com> wrote:I'd like to enlist all of you in an effort to avoid some of the potential dangers of fragmenting the App Inventor user base.First off, let me say that I think it's great for folks to experiment with the code, try new things, etc. If you're doing things for your (or your friends) own use of App Inventor, everything's cool. The real danger occurs if you make changes to the code and then make your server available to the public. At that point we risk confusing people about what App Inventor is and how it's used. The biggest problem is if you make changes to the components and/or the blocks language. In that circumstance you run the risk that your users downloaded projects won't be uploadable or usable in other servers and that does a significant disservice to all App Inventor users.So here are some suggestions that I think might help to mitigate the dangers:Let me what you all think. We'll need the support of all you developers in spreading the word about the dangers of fragmentation and helping other developers to understand the issues.
- If you really want to open up a server based on modified App Inventor code, try to be clear to your users that they're not interacting with a 'standard' App Inventor instance. Having your own logo may help, as would your own 'about page', etc.
- Limit your changes so that they don't involve changing (i.e. adding, deleting or modifying) components or blocks.
- If you do change components or blocks, please take a close look at the code and comments in com.google.appinventor.components.common.YaVersion and openblocks.yacodeblocks.BlockSaveFile (esp. the upgradeLanguage method). There's a mechanism there for detecting the versions of components and blocks. The most important thing is to increment YaVersion.YOUNG_ANDROID_VERSION and YaVersion.BLOCKS_LANGUAGE_VERSION if you make such changes. If you do that, at least other, older, versions of App Inventor will know to reject such uploaded project source zips. Not that there's still a danger of having multiple developers incrementing those constants to the same value and therefore incorrectly allowing projects that they won't be able to handle but it's a first line of defense. At some point we'll figure out a way to coordinate it all, probably when MIT is ready to deal with it.
Thanks in advance.-MarkMark Friedman | Google | Manager and Tech Lead Emeritus, App Inventor for Android | ma...@google.com
--
You received this message because you are subscribed to the Google Groups "App Inventor Open Source Development" group.