skeezix
Internal Development
This topic comes up over and over, so lets beat it to death in one thread.
Rules of engagement -- please read the serious posts, and please try to be serious; don't add kruft and fluff, lets try to stick to the real core. Lets not think about pretty and "bottom of the nice to haves list", lets think about "core requirements" and "top of the list" stuff.. the real meat that it absolutely must do, and try to sort out if thats reasonable and can be done. If we can narrow down the _Requirements_, then we devs around can possibly attack it. ie: The dev cycle is to figure out what is needing building before figuring out the underlying tech..
If we actually get any useful information or kick off anything, I'll run with it .. at least log useful info to the wiki, or provide dev environment, or code it, or organize it, whatever. Or someone else could, I'm not intending to step on any toes, just thought I'd try and see what we can come up with
Initial ideas for discussion --
For my part, let me toss out my thoughts on an "application repository." ie: First we must define what it is, and what it is not, so that discussion has focus.
1) It is not to be an application store; that is a level of complexity we are not yet ready to deal with I think, and more realistically can be dealt with by developers wanting to go that route. (ie: They can already lock to an SD, and we'll find out down the road if theres some unique-ID that can be queried from the device, and so on. Could be treated like any other desktop OS at this point.) So lets skip this.
2) The Repo (and thus we are Repomen!) must be able to offer downloads of applications (ie: or links to the downloads for when kept on other servers.) (Worrying about versioning and backup copies and so on is all on the nice to have list, so we needn't worry about it up front.)
3) The Repo must be able to manage ratings and categorization hints. I actually see this as one of the prime functions, and also a big challenge.. given there may likely be many repositories of different construction, how does one manage ratings and categorization consistently? See below.
4) The Repo can be populated by users/developers entering info into a tool, uploading files or providing links, and/or feeding in the PXML to pre-populate a lot of the fields. ie: Presumably the tool should allow the repo to be maintained byt the users and developers, not some central agency.
5) The Repo tool should be able to request uninstall of an application as well (the implication of (2) and (4) is that zip files of applications are compatible to all devices and that we formalize installation and uninstaltion, be they including well defined data files, scripts or requests to apt-get etc..)
ie: That the primary functions of "app repository" are:
- browse,
- rate/comment,
- install (with basic options perhaps, such as warning, license review). Not including dependancy fetching, can leave that to underliing mechamism.,
- uninstall.
Later we can discuss nice to haves such as
- on device chat
- scoreboards/leaderboards
- match finder, etc
This is all 'complex' to organize and depends on a base of applications needing it and dev involvement and so on and so forth.. worry about that much later! Leave the frills out of discussion for now (though perhaps feal free to mention them so they can be tallied, but lets not discuss them too much)
Summary --
In a way, downloads and categorization can already be done using EDs fine gp32x file archives. I don't know if it can do formal ratings, but it has a comment section.
So an app repository really is offering supposedly easier download+install and uninstall lifecycle, and maybe a handy rating system and browser.
ie: WE'RE REALLY TALKING ABOUT AN IMPROVED DOWNLOAD SITE, and FORMALLING APPLICATION INSTALL/UNINSTALL.
Unless I'm missing something (which is highly possible givben my limited sleep
The comparison to "app store" on iphone, the upcoming RIM store etc and so forth are off in a way; those stores are 'neat' only because those devices have not had such a thing before; it is wiser to compare to "portals" for Palm, Pocket PC, PSP and other devices, where we can see more or less what we already want -- the ability to download applciations direct to panda. But since "app store" is such a hot thing in other devices, I think it is on peoples minds.. they wantsit!
Interface
-----------
Usable from Pandora? A lot of people would like this, and certainly it is desirable.
Usable off the Pandora (desktop, laptop, iphone, whatever) -- also very desirable. Some may want 100% of one form or the other, but the reality is most people would like both -- when lieing on the couch, suck apps right to their Panda; when at work or near a laptop or wanting to mass-leech or quickly brows large categories, using a big machine might be the way to go.
As such, the _interface_ strikes me as best being a tight little web application, which happens to include a tight little CSS or mini-front end for handhelds (pandora or otherwise), and a beefier front-end for big machines. (Could be same functionality, but it doesn't have to be.)
Being a web application sometimes suck and sometimes works .. and in this case I think it would be a win; ie: numerous browsers will already be available for the Pandora and most other machines, be it Firefox or Konquerer or whatever, so that takes care of the GUI frameworks; we then just have to provide the application and storage and so on, and being a web app.. its something a lot of people can help with.
Anyway, thats my suggestion, but feel free to make others.
If we go the route of a non-web front end, then we run the issue of having to build multiple clients -- one for the Pandora (which could be many, depending on what OS distros the user chooses.. some might have X11, some might not, some might be KDE or Gnome or neither, and so on.) Further, you have to worry about people wanting to download on their phone, PDA, netbook, desktop or laptop, so might just end up writing a bunch of clients. (Which might be a PITA, or maybe not so bad if you do it cross platform as a python/perl/whatever script... but again, thats for discussion.)
Backend
----------
As mentioned above, I see the tool as several parts ..
1) Content browser honuring categories, ratings, and so on
2) A tool to manage download and installation of applications
3) A tool to manage already installed applications and allow removal of them
-) I am not counting here the ability for installation of applications to ask questions and preferences, but maybe that would be a nice to have down the road; ie: to ask about ROM paths say, or when unistalling to ask about removing game save files, and all the usual stuff
In BSD and Linux-land we already have many fine package systems (and I use the term loosely, as most are total crap like RPM and even .deb .. they work, but they're not really pretty behind the scenes. But the world is complex, so they're turdy by necessity really.) I'm not sure if the device has settled on ports or debs or what.
One question that comes up is .. Angstom is one of the base Linux distros to be supported, and it is Debian based, making the apt system attractive for a lot of reasons. Of course, there is also Ubuntu as another distro that can be booted .. and Ubuntu is also Debian descended. Thats lucky. But people could run other distros or oeprating systems on the device, so that is to be kept in mind.
Anyway, an app repo tool for doing installs and not could just invoke apt-get install or whatever to actually manage files. This would probabyl be the best way, since we inheret many existing packages, and an already working install/uninstall system, solving many problems. If all the packages are finely tned to PAndora, we shoudl be able to avoid many of the problems these sorts of tools fall trap to.
In essence though, we're talking about an on-Pandora repository .. if files are downloaded from the (say) web tool on a desktop, the user would dump the files onto an SD card and then invoke the Pandora app repo client to work the files into the system (ie: behind the scenes invoking the apt-install and then consuming the PXML to file thigns into the application launcher, or whatever.) (I forget right now if PXML includeds install/uninstall hints etc, but it is a work in motion.. perhaps PXML shoudl only be concerned with launcher hints and so forth, but I digress.) IF the files are downloaded direct on Pandora web browser, then they could be dumped into an processed directory and worked on there.
Wall of text crits for 10,000!
Questions
-----------
1) Do you see the need for a new app repository, or is it just something people feal like they need becaue they haven't thought about it and realized they already have it?
2) Define app repository .. what does it mean to you
3) Do you see a need for it on one side or the other (pandora versus non-pandora); ie: I believe we need somethign workable from many platforms, but perhaps I'm the only one
4) How do you envision workflow .. for example, I'm envisioning someone browsing files the same sort of way as in ED's gp32x archive (see also www.palmgear.com for PAlm OS, say as well); once a user picks an application, they hit the download+install link, accept a license agreement and warning, and it downloads, installs, regiswters the PXML, and shows up in their launcher .. poof! Also, theres an uninstall tab or application that offers then a list of installed applications that can be ditched. But you may see something else.
5) What do you envision as being the backend page system? Something custom, or leverage the underlying OS mechanism (such as pkg, ports, etc)
What other questions should we be asking up front?
We're not worried about getting graphic artists yet, just scketchign out ideas. This might all go for not!
jeff
Rules of engagement -- please read the serious posts, and please try to be serious; don't add kruft and fluff, lets try to stick to the real core. Lets not think about pretty and "bottom of the nice to haves list", lets think about "core requirements" and "top of the list" stuff.. the real meat that it absolutely must do, and try to sort out if thats reasonable and can be done. If we can narrow down the _Requirements_, then we devs around can possibly attack it. ie: The dev cycle is to figure out what is needing building before figuring out the underlying tech..
If we actually get any useful information or kick off anything, I'll run with it .. at least log useful info to the wiki, or provide dev environment, or code it, or organize it, whatever. Or someone else could, I'm not intending to step on any toes, just thought I'd try and see what we can come up with
Initial ideas for discussion --
For my part, let me toss out my thoughts on an "application repository." ie: First we must define what it is, and what it is not, so that discussion has focus.
1) It is not to be an application store; that is a level of complexity we are not yet ready to deal with I think, and more realistically can be dealt with by developers wanting to go that route. (ie: They can already lock to an SD, and we'll find out down the road if theres some unique-ID that can be queried from the device, and so on. Could be treated like any other desktop OS at this point.) So lets skip this.
2) The Repo (and thus we are Repomen!) must be able to offer downloads of applications (ie: or links to the downloads for when kept on other servers.) (Worrying about versioning and backup copies and so on is all on the nice to have list, so we needn't worry about it up front.)
3) The Repo must be able to manage ratings and categorization hints. I actually see this as one of the prime functions, and also a big challenge.. given there may likely be many repositories of different construction, how does one manage ratings and categorization consistently? See below.
4) The Repo can be populated by users/developers entering info into a tool, uploading files or providing links, and/or feeding in the PXML to pre-populate a lot of the fields. ie: Presumably the tool should allow the repo to be maintained byt the users and developers, not some central agency.
5) The Repo tool should be able to request uninstall of an application as well (the implication of (2) and (4) is that zip files of applications are compatible to all devices and that we formalize installation and uninstaltion, be they including well defined data files, scripts or requests to apt-get etc..)
ie: That the primary functions of "app repository" are:
- browse,
- rate/comment,
- install (with basic options perhaps, such as warning, license review). Not including dependancy fetching, can leave that to underliing mechamism.,
- uninstall.
Later we can discuss nice to haves such as
- on device chat
- scoreboards/leaderboards
- match finder, etc
This is all 'complex' to organize and depends on a base of applications needing it and dev involvement and so on and so forth.. worry about that much later! Leave the frills out of discussion for now (though perhaps feal free to mention them so they can be tallied, but lets not discuss them too much)
Summary --
In a way, downloads and categorization can already be done using EDs fine gp32x file archives. I don't know if it can do formal ratings, but it has a comment section.
So an app repository really is offering supposedly easier download+install and uninstall lifecycle, and maybe a handy rating system and browser.
ie: WE'RE REALLY TALKING ABOUT AN IMPROVED DOWNLOAD SITE, and FORMALLING APPLICATION INSTALL/UNINSTALL.
Unless I'm missing something (which is highly possible givben my limited sleep
The comparison to "app store" on iphone, the upcoming RIM store etc and so forth are off in a way; those stores are 'neat' only because those devices have not had such a thing before; it is wiser to compare to "portals" for Palm, Pocket PC, PSP and other devices, where we can see more or less what we already want -- the ability to download applciations direct to panda. But since "app store" is such a hot thing in other devices, I think it is on peoples minds.. they wantsit!
Interface
-----------
Usable from Pandora? A lot of people would like this, and certainly it is desirable.
Usable off the Pandora (desktop, laptop, iphone, whatever) -- also very desirable. Some may want 100% of one form or the other, but the reality is most people would like both -- when lieing on the couch, suck apps right to their Panda; when at work or near a laptop or wanting to mass-leech or quickly brows large categories, using a big machine might be the way to go.
As such, the _interface_ strikes me as best being a tight little web application, which happens to include a tight little CSS or mini-front end for handhelds (pandora or otherwise), and a beefier front-end for big machines. (Could be same functionality, but it doesn't have to be.)
Being a web application sometimes suck and sometimes works .. and in this case I think it would be a win; ie: numerous browsers will already be available for the Pandora and most other machines, be it Firefox or Konquerer or whatever, so that takes care of the GUI frameworks; we then just have to provide the application and storage and so on, and being a web app.. its something a lot of people can help with.
Anyway, thats my suggestion, but feel free to make others.
If we go the route of a non-web front end, then we run the issue of having to build multiple clients -- one for the Pandora (which could be many, depending on what OS distros the user chooses.. some might have X11, some might not, some might be KDE or Gnome or neither, and so on.) Further, you have to worry about people wanting to download on their phone, PDA, netbook, desktop or laptop, so might just end up writing a bunch of clients. (Which might be a PITA, or maybe not so bad if you do it cross platform as a python/perl/whatever script... but again, thats for discussion.)
Backend
----------
As mentioned above, I see the tool as several parts ..
1) Content browser honuring categories, ratings, and so on
2) A tool to manage download and installation of applications
3) A tool to manage already installed applications and allow removal of them
-) I am not counting here the ability for installation of applications to ask questions and preferences, but maybe that would be a nice to have down the road; ie: to ask about ROM paths say, or when unistalling to ask about removing game save files, and all the usual stuff
In BSD and Linux-land we already have many fine package systems (and I use the term loosely, as most are total crap like RPM and even .deb .. they work, but they're not really pretty behind the scenes. But the world is complex, so they're turdy by necessity really.) I'm not sure if the device has settled on ports or debs or what.
One question that comes up is .. Angstom is one of the base Linux distros to be supported, and it is Debian based, making the apt system attractive for a lot of reasons. Of course, there is also Ubuntu as another distro that can be booted .. and Ubuntu is also Debian descended. Thats lucky. But people could run other distros or oeprating systems on the device, so that is to be kept in mind.
Anyway, an app repo tool for doing installs and not could just invoke apt-get install or whatever to actually manage files. This would probabyl be the best way, since we inheret many existing packages, and an already working install/uninstall system, solving many problems. If all the packages are finely tned to PAndora, we shoudl be able to avoid many of the problems these sorts of tools fall trap to.
In essence though, we're talking about an on-Pandora repository .. if files are downloaded from the (say) web tool on a desktop, the user would dump the files onto an SD card and then invoke the Pandora app repo client to work the files into the system (ie: behind the scenes invoking the apt-install and then consuming the PXML to file thigns into the application launcher, or whatever.) (I forget right now if PXML includeds install/uninstall hints etc, but it is a work in motion.. perhaps PXML shoudl only be concerned with launcher hints and so forth, but I digress.) IF the files are downloaded direct on Pandora web browser, then they could be dumped into an processed directory and worked on there.
Wall of text crits for 10,000!
Questions
-----------
1) Do you see the need for a new app repository, or is it just something people feal like they need becaue they haven't thought about it and realized they already have it?
2) Define app repository .. what does it mean to you
3) Do you see a need for it on one side or the other (pandora versus non-pandora); ie: I believe we need somethign workable from many platforms, but perhaps I'm the only one
4) How do you envision workflow .. for example, I'm envisioning someone browsing files the same sort of way as in ED's gp32x archive (see also www.palmgear.com for PAlm OS, say as well); once a user picks an application, they hit the download+install link, accept a license agreement and warning, and it downloads, installs, regiswters the PXML, and shows up in their launcher .. poof! Also, theres an uninstall tab or application that offers then a list of installed applications that can be ditched. But you may see something else.
5) What do you envision as being the backend page system? Something custom, or leverage the underlying OS mechanism (such as pkg, ports, etc)
What other questions should we be asking up front?
We're not worried about getting graphic artists yet, just scketchign out ideas. This might all go for not!
jeff