Hacker News new | past | comments | ask | show | jobs | submit login

How seriously can you take a service if developers forgets to disable the DEBUG flag :)

http://djangy.com/admin




Use of SQLLite too - does that scale and perform well against something like postgres?

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.


To be fair, you wouldn't need much more than SQLite to gather emails. It's more than sufficient (I would say it's absolutely amazing for most use cases, but the one thing I am not sure about is how well it handles concurrency, if at all).

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.


SQLite is a file and thus uses file-level locking and does not have row-level locking. Data can not be read the same time anything is being written, so it is usually not great for multi-user applications or web applications.

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.


http://linux.die.net/man/2/fcntl

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?


I have actual knowledge of it. The product I work on uses it as the production database because we distribute the software as a desktop application (and MySQL has licensing issues).

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.


Thanks for clarifying what I suspected. If you don't need high concurrency, it's a champ.



must to be fixed quickly, that's a serious error.


Yeah thats the problem with deploying "by hand". Maybe this python guys should use Capistrano for this things :)


Fabric is nice too and it's in python (http://docs.fabfile.org/0.9.1/).


I regularly use Fabric. After deploying a couple of projects with it, I have come up with a standard deployment layout and stack. Now its as simple as "fab deploy" and "fab revert". Thank you fab!


I'm looking to optimize my fab setup, feel like sharing your fabfile.py?


Same here, except I've set things up so that any changes I make to my project are automatically synced instantly to a live staging domain, and I don't have a revert command (although I do back up copies of previous deployments). I also keep apt and pypi dependencies in project-local config files and have a refresh command that updates those packages on both the remote and local machine along with some other stuff. I think I might have overengineered things a little.


would any of you share these files and your setup? I'd love to have a look into them.

Thanks!



thanks a lot!


Sure. I doubt you'll get much out of it, but I'm still quite curious what your impression will be.

http://pastebin.com/Q970rYaH

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.


thanks!


My fabric setup is basically:

* push to <server>

* update the files

* compile sass to css

* minify javascript

* 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 was literally just looking into this yesterday because I've been lazy and haven't set up a good deployment process. I found this article http://lethain.com/entry/2008/nov/04/deploying-django-with-f...

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?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: