I have a need for a way to run Django-based websites offline as an installable application. I recently read about Joyent Slingshot: http://developer.joyent.com/
I'm curious if there are others who could use this functionality but for Django. If so, perhaps we can all collaborate and come up with a solution that runs on Mac, Windows, and Linux. Data syncing would be nice but can come later.
On 5/22/07, Rob Hudson <treborhud...@gmail.com> wrote:
> I'm curious if there are others who could use this functionality but > for Django. If so, perhaps we can all collaborate and come up with a > solution that runs on Mac, Windows, and Linux. Data syncing would be > nice but can come later.
I'd be interested, certainly. Not sure I have much to contribute in the way of desktop programming skills, but I can think of more than a couple uses for such a thing and I'll happily do whatever I can.
-- "Bureaucrat Conrad, you are technically correct -- the best kind of correct."
James Bennett wrote: > On 5/22/07, Rob Hudson <treborhud...@gmail.com> wrote:
>> I'm curious if there are others who could use this functionality but >> for Django. If so, perhaps we can all collaborate and come up with a >> solution that runs on Mac, Windows, and Linux. Data syncing would be >> nice but can come later.
> I'd be interested, certainly. Not sure I have much to contribute in > the way of desktop programming skills, but I can think of more than a > couple uses for such a thing and I'll happily do whatever I can.
Put my name down as well, we have a couple of uses for it I can think of.
Rob :)
-- One Track Mind Ltd. PO Box 1604, Shortland St, Auckland, New Zealand Phone +64-9-966 0433 Mobile +64-21-572 632 Web http://www.onetrackmind.co.nz
Cool. What's the best way to coordinate the effort? A wiki page to start with?
Coming up in the next month or so I'm going to have to dedicate work time to this but for now I'd like to just lay out the groundwork and do it in such a way that it benefits the Django community.
1) Cross Platform Libraries...
In looking at DjangoKit a little I see he's using PyObjC. I do like the idea of using whatever the native widget library is for each platform. I'll have to look at the Democracy Player as an example but they did something similar (Mac: PyObjC, Linux: PyGTK, Windows: ???).
2) Database...
It makes sense to me to require SQLite for this to work. Moving your data to SQLite is also a requirement for Slingshot. I'm pretty sure we can use the fixtures library to serialize data from databases other than SQLite (MySQL, PostGreSQL), then load it up into SQLite.
Rob Hudson wrote: > Cool. What's the best way to coordinate the effort? A wiki page to > start with?
Current trends seem to be to use Google Code for projects that aren't likely to become part of the core django distro. A link from the Django wiki is probably a good idea though.
> 1) Cross Platform Libraries...
> In looking at DjangoKit a little I see he's using PyObjC. I do like > the idea of using whatever the native widget library is for each > platform. I'll have to look at the Democracy Player as an example but > they did something similar (Mac: PyObjC, Linux: PyGTK, Windows: ???).
wxWidgets is one cross-platform option. PyGTK runs on windows too.
> 2) Database...
> It makes sense to me to require SQLite for this to work. Moving your > data to SQLite is also a requirement for Slingshot. I'm pretty sure > we can use the fixtures library to serialize data from databases other > than SQLite (MySQL, PostGreSQL), then load it up into SQLite.
On May 22, 11:47 pm, Rob Hudson <treborhud...@gmail.com> wrote:
> 1) Cross Platform Libraries...
> In looking atDjangoKita little I see he's using PyObjC. I do like > the idea of using whatever the native widget library is for each > platform. I'll have to look at the Democracy Player as an example but > they did something similar (Mac: PyObjC, Linux: PyGTK, Windows: ???).
DjangoKit is a native-widgets project, and will probably stay that way. I very much like the idea of Windows and linux-specific native- widget projects to complement it. The core of the thing was very easy to write - the hardest part was getting the packaging system to behave, so there probably won't be a lot of effort duplicated between the platforms here.
> 2) Database...
> It makes sense to me to require SQLite for this to work. Moving your > data to SQLite is also a requirement for Slingshot. I'm pretty sure > we can use the fixtures library to serialize data from databases other > than SQLite (MySQL, PostGreSQL), then load it up into SQLite.
This, on the other hand, _can_ be shared nicely. And has nothing to do with a GUI wrapper. A framework that will do 2-way sync between 2 django applications / databases can be worked on in the absence of working wrappers.
> 3) Anything else?
(a) One thing I've been finding is that many django apps I've found aren't really written as apps, but tend to be tied very heavily to the project they're developed in. I've only just joined django-users, so maybe this is covered a lot. But because djangokit provides it's own project and expects the thing you're packaging to be a stand-alone app, it's hard to find nice demos.
(b We're going to find lots and lots of different deployed versions of the app's DB schema in the wild, so upgrades will be nasty. With proper 2-way sync, you could just tell the remote user to sync, blow away their DB, then re-sync, but if you're trying to write a simple stand-alone app, you'll need upgrade scripts.
On Tue, May 22, 2007 at 06:20:12PM -0000, Rob Hudson wrote: > I have a need for a way to run Django-based websites offline as an > installable application. ... > I'm curious if there are others who could use this functionality but > for Django. If so, perhaps we can all collaborate and come up with a > solution that runs on Mac, Windows, and Linux. Data syncing would be > nice but can come later.
FWIW, http://www.gnuenterprise.org/ is said to provide this kind of functionality -- ORM, Forms running in different environments (including web), Reports, your business logic in a separate place, everything in Python. I didn't have the time to play more with it, so I can't tell how that looks like, but I would be interested to see both using a common ORM and GNUe being able to use Django as a web front-end framework.
On May 23, 2:51 am, Robert Coup <robert.c...@onetrackmind.co.nz> wrote:
> Rob Hudson wrote: > > Cool. What's the best way to coordinate the effort? A wiki page to > > start with?
> Current trends seem to be to use Google Code for projects that aren't > likely to become part of the core django distro. A link from the Django > wiki is probably a good idea though.
> On May 23, 2:51 am, Robert Coup <robert.c...@onetrackmind.co.nz> > wrote: > > Rob Hudson wrote: > > > Cool. What's the best way to coordinate the effort? A wiki page to > > > start with?
> > Current trends seem to be to use Google Code for projects that aren't > > likely to become part of the core django distro. A link from the Django > > wiki is probably a good idea though.
There's a lot of interesting things about Google Gears...
It provides a browser local SQLite accessible via Javascript.
It provides a local HTTP server for storing/retrieving cached content.
Simon Willison dug up some interesting Google Gears tidbits: http://simonwillison.net/tags/googlegears/ including: Adobe's Apollo will use Google Gears technology, Dojo was in on the Google Gears collaboration uses it.
Looks like a lot is happening in the world of offline web applications.