I forgot to turn debug off. Yep. And i'm using sqlite3 to accept email addresses. Yep.
I can assure you the quality of the ACTUAL project is far better :-)
I have a working prototype and am working my ass off to get something scalable up and running asap. keep checking back for details!
Seriously though, best of luck, and godspeed.
I think what we're seeing here is an email/hype-grabbing attempt with an interesting vision, using the Heroku name for leverage.
Would like to see it materialise, but they really should have hardened something as simple as a signup form. I've emailed the admin telling him to lock it down.
I tried SQLite for a few things, and it has always come out a champ. I would not hesitate to use it for most of the semi-static websites I make (web apps would be pushing it), if I were sure it can handle more than one connection (I'm not, sadly).
I am very, very impressed by it. Seriously solid database.
Development, or 1-3 user web app it should perform OK. It doesn't scale and you will get db locks and retries if its under too much load.
To speed this up (if you must use SQLite), use a solid state drive as I/O performance is the biggest bottleneck.
actually it could use row-level locking since it uses row-oriented storage and fcntl locks can be applied to a set of bytes within a file. it could also do file-level locking on tempfiles with names derived from the table name and primary key of the row.
anyone with actual knowledge of it care to chime in with what it does do?
It COULD do row level locking, but it doesn't. SQLitening is the closest thing to performant SQLite you will get. And it only runs on Windows.
If it helps, "li" is my current project's code name.
The vast majority of the code is concerned with configuring a fresh Linode, not pushing recent changes (for that, see the rf and stage functions, and the functions they call). I hate system administration. The only way I could make myself configure my server was by writing a script to configure it for me.
* push to <server>
* update the files
* compile sass to css
* process the dependencies file (using pip) for updates (it does nothing if I haven't added new dependencies)
* restart/flush/whatever I specify
It works beautifully, I can deploy changes in a few seconds.
EDIT: Okay how do I make lists :(
I'm wondering what the best practices are and since I have so many people around me who use Capistrano I'm thinking about just going with that. Any words of advice?
I hope that usability of djangy service will be better. Can't wait to try it :)
Btw, isn't Heroku itself planning anything for Django?
Has that ever been mentioned or rumored before? Is that even feasible given Heroku's technology stack?
The response was quite clear that they had no plans to enter the Django market.
The only thing really wrong with App Engine is the datastore:
- It's very different than anything you've come across before
- The docs are not sufficient for it's complexity. You end up having to read lots of blogs and watch lots of videos to figure it out.
- It is ridiculously difficult to learn (one of the hardest things I ever had to do)
- Important parts of your stack won't work, like Admin
- You can't just add the fields you like to an object. Instead you need to meticulously plan _how_ your data is going to be accessed. This is exactly the wrong thing for a startup, since you can't get up and running fast.
- You can't iterate fast, because any schema change is very risky and very slow.
- If you don't get everything exactly right, your app will be very slow.
- There isn't much in the ecosystem.
By contrast, none of these are true for Heroku.
There are some things that are pretty good about App Engine:
- the tools are pretty good. Not as good as Heroku, but good.
- the billing is spot on. They give you about $1 per day of free stuff, which can maintain a site with hundreds of thousands of users. And it's pretty cheap from there on.
- They scale it automatically. On Heroku, it's really hard to tell how many "dynos" (whatever the hell that is) you need, except by trial and error. I would expect that nearly all Heroku apps are overprovisioned. App Engine just nails the scaling - it happens automatically, and you specify a maximum amount to pay per day, with lots of different dials to control it more precicely if you like.
I hope Djangy takes the best of both worlds.
Adding a field to an "object"? Where do you use that object? Is there somewhere that you don't use that field which becomes too slow?
How are you going to migrate that new field? There aren't tools to help you migrate. Generally, you have to change to an Explando, add the field, load every single object from the datastore, then save every object back to the datastore.
These are two examples off the top of my head. Every change you want to make in App Engine has similar questions raised. I really did mean it when I wouldn't recommend it to anyone.
I think it's a much different learning curve than with any other technology. I'm plenty adept at learning new things, but this was just unnecessary complex, with nothing to redeem it.
On the other hand, I have found the datastore api (and most of the other apis) to be well designed. It works very well with lighter frameworks such as tornado.
Not to mention the fact that designing an information schema for a SQL database is quite different from designing an info schema for a hash-table like datastore (which appengine has).
Or maybe they'll enable more stacks? Pylons shouldn't be that hard to plug in once you have Django deployments working. And since they reached 1.0 lately...
If you guys can pull this off, I will be a very happy customer.
another, https://www.playapps.net/ for play apps., those written using the playframework.
I used Stax during beta, and it's nice, but it's no near the Heroku ease of use (puls it's little helper Nezumi http://nezumiapp.com/ when on the way). With very small restrictions, one can install anything on Stax, so it's very flexible, but just not that easy to use as Heroku'.
> another, https://www.playapps.net/ for play apps.
Unfortunately Play framework is not based on a servlet container (something that 99% of java webapps are using).
My number one goal is to provide a deployment environment with as few additional restrictions on the developer as possible.
(Disclaimer: same thing happened to my company when we pre-launched.)