dflemstr
It's a ball.
Hello everyone,
about a month ago I started thinking about how the whole user experience is going to be like on the Pandora when it gets released. As you all know, we're getting an Ångström-based (yes, å is a vowel contrary to popular belief) distribution that has the ability to give us a very well-polished and integrated experience on the Pandora, so I didn't think that this is going to become a problem; the software we get on the Pandora couldn't be better under the circumstances.
One thing I saw as problematic, however, was how we would get software onto the Pandora. We'll have specialized packages, PND-files, that make installing applications really easy: you just download them from the Internet, drop them in a folder on the Pandora and BAM, the package is installed. Sounds easy, right? Well, I didn't think it did. I thought that it could be made even easier.
The first thing that in my opinion was too complicated was the acquiring of packages: The plan was that we would upload packages to the Pandora File Archive, and then download them from there. The problem with this is that the file archive seems to be REALLY old, isn't easy to navigate, isn't specialized for the handling of PND packages, and just doesn't behave intuitively.
The second problem that I saw was that with the proposed system, it would be impossible to auto-update packages for the Pandora. You would manually have to search for a new version of your package every so often in the Pandora File Archive and then download it manually just to get new features. I thought that it should be possible for this to happen automatically.
The third problem ... well, I'll cover that some other time.
So, I tried to find a solution to these problems, and finally created one that in my opinion at least is a step in the right direction:
The PND Package Manager
So, what is the PND Manager?
The PND Manager is a drop-in replacement for any other online PND package management system (I don't know if there are any in existence, but yeah). It is an application that will run on a web server - just like the Pandora File Archive - and manage and store PND files for you.
You can very easily upload packages to it, browse packages with it, and download packages from it.
It is NOT meant to replace the Pandora File archive, it just manages PND files (including the uploading/downloading of them); you can still upload manuals/image galleries or other types of files to the File Archive.
Here's a list of all the features that make it unique:
Really easy to use
A modern system
Extensibility
Some extras
How it works
Step 1: Log in with an OpenID

Step 2: Upload a package

Step 3: Enjoy your package!

Step 4: (And let others download it)
(Hmm, this screen shot was deleted by ImageShack; oh well)
Trying it out
(yes, you heard me right)
If you want to try out the application and see how it feels like, go to the instructions page on the wiki. Oh, and there you'll also find information about deploying, customizing and contributing to the application.
The quick guide for Ubuntu if you want to test the app:
...then wait until the Console says (it could take quite a while, because maven needs to download lots and lots of dependencies):
...and go to http://localhost:8080/
Note that when you try out the application, it will start a server on your computer, and use a local database for packages, so it MIGHT require a lot of ram. It will also delete almost all of its traces after you stop the test server, so don't worry that it'll eat your hard drive & hamster. Oh, and you probably don't have PND packages to test the application with; if this is the case, use the 3 packages that are included in the repository.
If you're into that kind of thing, here's the source code. You'll need it when trying out the app anyways, but in case you are interested in browsing it online, there's the link.
I am really interested in hearing what you think about it, and if there's anything I can improve before release. I had originally planned on only using this application myself, but since people seemed interested in something like this, I thought that I'd ask if this would be something that people would use. So just throw it at me!
What will be done in the future?
So, I've read through your responses, and here are the changes that you have suggested so far:
about a month ago I started thinking about how the whole user experience is going to be like on the Pandora when it gets released. As you all know, we're getting an Ångström-based (yes, å is a vowel contrary to popular belief) distribution that has the ability to give us a very well-polished and integrated experience on the Pandora, so I didn't think that this is going to become a problem; the software we get on the Pandora couldn't be better under the circumstances.
One thing I saw as problematic, however, was how we would get software onto the Pandora. We'll have specialized packages, PND-files, that make installing applications really easy: you just download them from the Internet, drop them in a folder on the Pandora and BAM, the package is installed. Sounds easy, right? Well, I didn't think it did. I thought that it could be made even easier.
The first thing that in my opinion was too complicated was the acquiring of packages: The plan was that we would upload packages to the Pandora File Archive, and then download them from there. The problem with this is that the file archive seems to be REALLY old, isn't easy to navigate, isn't specialized for the handling of PND packages, and just doesn't behave intuitively.
The second problem that I saw was that with the proposed system, it would be impossible to auto-update packages for the Pandora. You would manually have to search for a new version of your package every so often in the Pandora File Archive and then download it manually just to get new features. I thought that it should be possible for this to happen automatically.
The third problem ... well, I'll cover that some other time.
So, I tried to find a solution to these problems, and finally created one that in my opinion at least is a step in the right direction:
The PND Package Manager
So, what is the PND Manager?
The PND Manager is a drop-in replacement for any other online PND package management system (I don't know if there are any in existence, but yeah). It is an application that will run on a web server - just like the Pandora File Archive - and manage and store PND files for you.
You can very easily upload packages to it, browse packages with it, and download packages from it.
It is NOT meant to replace the Pandora File archive, it just manages PND files (including the uploading/downloading of them); you can still upload manuals/image galleries or other types of files to the File Archive.
Here's a list of all the features that make it unique:
Really easy to use
- The navigation is really intuitive; if you think that a link does something, that is usually what it does, too.
- The interface is optimized for the Pandora screen.
- I have used jQuery and AJAX to make the whole application feel like a local application.
- The login system uses OpenID, so you don't even have to create a new account to upload packages!
- You don't have to write things like descriptions, or create screenshots of what you upload; the PND Manager automatically analyzes your PND package and fills in all the fields for you.
A modern system
- The PND Manager builds on cutting-edge technologies:
- The framework I use (Lift) is at the time of writing only 3 hours old
- Well, OpenID is kinda cutting-edge...
- I use the Scala programming language.
- The theme is very modular, and the design is very easily changed if a designer wants to change it. I have made the current theme, but it isn't the best theme ever; I would gladly accept volunteers that could make better themes.
- New features can be added easily on demand. Tell me what you want, or write me a patch, and it'll be added!
Extensibility
- The PND Manager exposes a REST-API that makes it possible to write applications for the Pandora that simplify package management, such as tools similar to "apt-get" or openSUSE's one-click install, package updaters, or local package browsers similar to the iPhone AppStore.
- The PND Manager core is really loosely coupled; if someone who can code wants to replace a part of it or add something, it's possible.
- The PND Package manager is open source, under the Apache 2.0 (compatible with GPLv3) license.
Some extras
- It is completely translatable; as you can see from the screenshots, I've translated it into Swedish, and anyone can add translations for it. And if the PND package that you upload contains translations, the PND Manager will use those, too.
- It is really, really fast. I haven't finished optimizing it yet, but so far, it's by far faster than the Pandora File Archive (And I don't mean network latency here)
- It's easy to administrate. See the wiki page for administration for more information.
- Technical details:
- The application is clusterable
- It doesn't need access to a file system; it only needs a database to work with.
- The app is compatible with almost every SQL database known to man, since it uses JDBC.
How it works
Step 1: Log in with an OpenID

Step 2: Upload a package

Step 3: Enjoy your package!

Step 4: (And let others download it)
(Hmm, this screen shot was deleted by ImageShack; oh well)
Trying it out
(yes, you heard me right)
If you want to try out the application and see how it feels like, go to the instructions page on the wiki. Oh, and there you'll also find information about deploying, customizing and contributing to the application.
The quick guide for Ubuntu if you want to test the app:
Code:
sudo aptitude install git maven2 openjdk-6-jdk
git clone git://github.com/dflemstr/pndmanager.git
cd pndmanager
mvn jetty:run
Code:
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 5 seconds.
Note that when you try out the application, it will start a server on your computer, and use a local database for packages, so it MIGHT require a lot of ram. It will also delete almost all of its traces after you stop the test server, so don't worry that it'll eat your hard drive & hamster. Oh, and you probably don't have PND packages to test the application with; if this is the case, use the 3 packages that are included in the repository.
If you're into that kind of thing, here's the source code. You'll need it when trying out the app anyways, but in case you are interested in browsing it online, there's the link.
I am really interested in hearing what you think about it, and if there's anything I can improve before release. I had originally planned on only using this application myself, but since people seemed interested in something like this, I thought that I'd ask if this would be something that people would use. So just throw it at me!
What will be done in the future?
So, I've read through your responses, and here are the changes that you have suggested so far:
- Implement caches to make the app faster: [Done]
- Create a FTP frontend (meaning: expose the whole data structure of the PND Manager to a file system) for the PND manager so that it becomes easier to browse packages [WIP]
- Add download counts to packages: [Done]
- Create a local application browser on the Pandora itself so that you don't have to visit the web page to download apps: [I won't do this; volunteers?]
- Add an auto-update program for the Pandora that automatically checks for updates for "installed" PND packages: [Same as above]
- Change the name of the application to something else. ("PND repository", "Package browser", "Pandora package manager"?)
- Scan/spider the File Archive for PND packages every so often, and load the found PND files into the manager automatically [WIP]