Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
2nd Rate Poster
Mar 25, 2004

i started a joke
Thats a good start. Personally, running migrations blind is a bit too risky for my tastes.

Some other things to think about adding: pip install new requirements, apache HUPs/touching your wsgi file.

At my last gig, in addition to doing all of the above; we'd also backup (tgz) the existing code before doing any pulls from the repo.

2nd Rate Poster fucked around with this message at 02:32 on Feb 21, 2012

Adbot
ADBOT LOVES YOU

epswing
Nov 4, 2003

Soiled Meat

2nd Rate Poster posted:

Personally, running migrations blind is a bit too risky for my tastes.

I used to think that. But eventually I realized that NOT automating this process was too risky. Assuming you also have a test server.

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

epswing posted:

I used to think that. But eventually I realized that NOT automating this process was too risky. Assuming you also have a test server.

Yep, as long as you can test the result prior to doing it live, you're not going to gently caress something up cause properly tested code is less fallible than doing it your self.

ufarn
May 30, 2009

2nd Rate Poster posted:

Have you ran syncdb and any relevant migrations?

What happens if you run that SQL by hand?

You can use django debug toolbar to dump the SQL, if the default traceback doesn't give it all to you, the other option is to turn on query logging on your DB server.
I've run syncdb to test, but that didn't produce any result. I recreated the project from the bottom up to ensure that there wouldn't be any DB conflicts, so it's something with the configuration itself.

I'll try to do the things you're suggesting and see if I can figure them out.

etcetera08
Sep 11, 2008

Apologies if this is a really common question, as it is likely to be.

I'm going through the Django tutorials (djangobook.com) and am doing fine outside of MySQL syntax / actual database manipulation that isn't Python magic. Is there any good and (relatively) brief MySQL-specific* tutorial that will get me familiar with some of the command line syntax? I don't really care to learn everything about SQL right now, but I also am unsure just how much information directly related to SQL is necessary to get some basic Django sites up and running.

* On a related note, I've had a lot of trouble getting Django+MySQL+MySQLdb up and running on OS X. Does anyone have experience with this? StackOverflow answers seem inconsistent at best and I'm afraid I may have hosed something up beyond repair in my attempts to get it set up correctly. I've resorted to just using my netbook with MySQL for now, but would like to have a similar environment on my Mac.

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.
To be honest I have no idea how to use SQL. Like literally. this will have to change soon as I go further, but as it stands I've just used the Django ORM (Models) and phpMyAdmin for observing database action. I'm sure there's a better way, but I just haven't found not knowing eat up too much of my time yet, as Django abstracts that stuff away from you, and for simple sites you're unlikely to feel limited by it.

This is probably more a by product of me previously working through Drupal, but hey, phpMyAdmin is a pretty good product to me.

You could install this XAMPP stack and use the database from it if you're having dramas, comes with phpMyAdmin installed. I don't use it anymore (nginx, mysql, php now) but it makes for an easy start.
http://www.apachefriends.org/en/xampp-macosx.html

edit: Don't let this stop you spending some time learning SQL by the way, I'd have much preferred that I had done so. I'm a hobbyist trying to transfer to professional, and as a result have got gaps in my knowledge base (no tertiary ed, completely unrelated career until September last year) that I need to fill, which is regrettable but in the end I have only so many hours of the day and necessity tends to drive my learning.

Maluco Marinero fucked around with this message at 17:06 on Feb 21, 2012

ryo
Jan 15, 2003

etcetera08 posted:

Apologies if this is a really common question, as it is likely to be.

I'm going through the Django tutorials (djangobook.com) and am doing fine outside of MySQL syntax / actual database manipulation that isn't Python magic. Is there any good and (relatively) brief MySQL-specific* tutorial that will get me familiar with some of the command line syntax? I don't really care to learn everything about SQL right now, but I also am unsure just how much information directly related to SQL is necessary to get some basic Django sites up and running.

* On a related note, I've had a lot of trouble getting Django+MySQL+MySQLdb up and running on OS X. Does anyone have experience with this? StackOverflow answers seem inconsistent at best and I'm afraid I may have hosed something up beyond repair in my attempts to get it set up correctly. I've resorted to just using my netbook with MySQL for now, but would like to have a similar environment on my Mac.

Short of creating the database in the first place there isn't really any SQL you need to do. It may be easier just to install PHPMyAdmin if you're not comfortable with the MySQL console.

With regards to OS X, I've found it to be a pretty awkward platform to develop on, so much so that I have a dedicated Parallels VM that I do any kind of development work on rather than have to mess around with OS X.
It's much easier being able to just apt-get install a few packages.
The added advantage of this is you're then much closer to your deployment environment (in most cases).

MonkeyMaker
May 22, 2006

What's your poison, sir?

ryo posted:

Short of creating the database in the first place there isn't really any SQL you need to do. It may be easier just to install PHPMyAdmin if you're not comfortable with the MySQL console.

With regards to OS X, I've found it to be a pretty awkward platform to develop on, so much so that I have a dedicated Parallels VM that I do any kind of development work on rather than have to mess around with OS X.
It's much easier being able to just apt-get install a few packages.
The added advantage of this is you're then much closer to your deployment environment (in most cases).

Homebrew fixes a lot of the awkwardness. Just `brew install postgresql` and `brew install mysql` or whatever and you're up and running.

Yay
Aug 4, 2007
Seconding homebrew. It really makes the difference, and the only time I've had to sidestep it was trying to get the MySQL C headers for OSX server (which comes with MySQL, but doesn't include the headers). Beyond that, I actually can't recall having a relevant package not accessible via 'brew install X' && 'pip install Y'

This is, admittedly, probably because I don't have wild requirements and dependencies for my development environment, though.

etcetera08
Sep 11, 2008

You all are right, I definitely should have just used Homebrew. Now that I have some things somewhat half installed and not working correctly is there any hope of using brew to install over them? I don't want to gently caress things up beyond repair (although that may have already occurred). I also realize that's a stupidly complicated question that depends on what I've already hosed with, but I don't really know how Homebrew works very much.

(On the topic of Homebrew covering all the necessary packages one needs, the only thing I've ever needed that I couldn't get through there was Ada. Which is probably a pretty rare need these days..)

MonkeyMaker
May 22, 2006

What's your poison, sir?

etcetera08 posted:

You all are right, I definitely should have just used Homebrew. Now that I have some things somewhat half installed and not working correctly is there any hope of using brew to install over them? I don't want to gently caress things up beyond repair (although that may have already occurred). I also realize that's a stupidly complicated question that depends on what I've already hosed with, but I don't really know how Homebrew works very much.

(On the topic of Homebrew covering all the necessary packages one needs, the only thing I've ever needed that I couldn't get through there was Ada. Which is probably a pretty rare need these days..)

Can't comment on Ada, because...yeah, never needed it.

As far as Homebrew fixing/not caring about what you did, it probably depends entirely on what you did.

Mac OS X Lion, by default, comes with PostgreSQL installed (I'd recommend using PostgreSQL over MySQL any day), so if you really don't want to install anything and you just want an RDBMS, there's that option.

If you installed MySQL and whatever else through DMG-packaged installers, you *should* have a way to uninstall them through the same (or maybe another download from the site?). If you downloaded source and compiled, there is often a `sudo make uninstall` or you can just figure out what was installed where (look at the config log) and manually delete the files. Be careful with this.

*OR*, if they're just installed and not working at all, install with Homebrew and see if it matters. If they're not working, Homebrew shouldn't have a conflict.

ufarn
May 30, 2009
Has anyone played around with the test database system?

How does it work, if I want a postgreSQL server where my normal one is

code:
    'default': {
        'ENGINE':   'django.db.backends.postgresql_psycopg2',
        'NAME':     'template1',
        'USER':     'postgres',
        'PASSWORD': 'mypassword',
        'HOST':     'localhost',
        'PORT':     '',

Lamacq
Jun 15, 2001

Breezeblock RIP

ufarn posted:

Has anyone played around with the test database system?

How does it work, if I want a postgreSQL server where my normal one is

code:
    'default': {
        'ENGINE':   'django.db.backends.postgresql_psycopg2',
        'NAME':     'template1',
        'USER':     'postgres',
        'PASSWORD': 'mypassword',
        'HOST':     'localhost',
        'PORT':     '',

I always just use the local in-memory sqlite db thing it does by default. That is to say, the settings file I use when running tests uses sqlite as the engine.

Is there a reason you don't want to do that?

ufarn
May 30, 2009

Lamacq posted:

I always just use the local in-memory sqlite db thing it does by default. That is to say, the settings file I use when running tests uses sqlite as the engine.

Is there a reason you don't want to do that?
As my earlier posts in the thread attest, I have some problems with postgreSQL that I am still looking into - an error that only happens, when no models objects have been added to the fresh app. I never really use sqlite for deployment, so I prefer to use the database systems I use in the wild.

Lamacq
Jun 15, 2001

Breezeblock RIP

ufarn posted:

As my earlier posts in the thread attest, I have some problems with postgreSQL that I am still looking into - an error that only happens, when no models objects have been added to the fresh app. I never really use sqlite for deployment, so I prefer to use the database systems I use in the wild.

Got it. Well the docs seem to say that the test runner will actually create a new database with the text 'test_' prepended to the database name for each database entry in your settings file, and presumably it uses the credentials found in that entry to attempt to create the database. So make sure the user 'postgres' has permission to create and drop databases on localhost and you should be all set.

Alternatively if you don't want to give that user permission to drop databases b/c that's your production database user, then use a different settings file for testing and specify a different database user in there.

duck monster
Dec 15, 2004

This turned up on one my email lists today;-

Not sure what his budget is but:

http://lists.debian.org/debian-jobs/2012/03/msg00000.html

Debian are doing gods own work, so if one of you take it, do it properly m'kay?

MonkeyMaker
May 22, 2006

What's your poison, sir?
Something my business partner posted today about our custom view and form mixins. Thought it might be handy to some of you.

read it here

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

MonkeyMaker posted:

Something my business partner posted today about our custom view and form mixins. Thought it might be handy to some of you.

read it here
I haven't really had a chance to explore this, so I think this write up will come in handy. I've created a bunch of class based applications, so you can customise pretty heavily without forking it, and was still stuck with function views until I figured out the right way to work with decorators.

Looking forward to reading closer and implementing this stuff once I'm back on the keyboard.

Captain Capacitor
Jan 21, 2008

The code you say?
I've been doing some work to come up with a quick interface for a backend system. I've been toying around with Nexus and Dajaxice. Aside from some growing pains it's been going fairly well. If anyone has any other projects that are in this general area, I'd love to hear about it

Mulozon Empuri
Jan 23, 2006

MonkeyMaker posted:

Something my business partner posted today about our custom view and form mixins. Thought it might be handy to some of you.

read it here

Pretty nice blog post.

Class based views are the greatest thing ever, I can't believe we went so long without. The documentation is still pretty weak imo.

Hanpan
Dec 5, 2004

Hoping someone here can help me out with this. We host a whole bunch of Django sites and I'm trying to work out a decent deployment process that keeps things nice and simple. The issue currently is that we use S3 and CloudFront for all static files then deploy the Django app via Beanstalk (without the static files).

The frustrations at the moment is having to run 'manage.py collectstatic' each time we make a change to any of the projects images. We are also setting cache headers on the CloudFront uploads to keep load time down but subsequently meaning that after running collectstatic, we then have to force invalidation on our CloudFront instance too.

The whole process is far too involved and I was wondering if anyone had any suggestions on how to streamline the whole thing? I know in an ideal world collectstatic wouldn't be run until all static files are final and ready for deployment, but unfortunately things just don't always work out like that and changing the odd image or javascript here and there will always be an issue.

I found an article on Google that suggests appending a timestamp/revision number for each individual static asset and combine that with a custom template tag but I'm not sure how I'd get Django to automatically declare a revision without resorting to manually update settings.py each time. Again, it's just another stage in the deployment and another thing for us to accidentally forget.

Anyone have any suggestions?

2nd Rate Poster
Mar 25, 2004

i started a joke

Hanpan posted:

Hoping someone here can help me out with this. We host a whole bunch of Django sites and I'm trying to work out a decent deployment process that keeps things nice and simple. The issue currently is that we use S3 and CloudFront for all static files then deploy the Django app via Beanstalk (without the static files).

The frustrations at the moment is having to run 'manage.py collectstatic' each time we make a change to any of the projects images. We are also setting cache headers on the CloudFront uploads to keep load time down but subsequently meaning that after running collectstatic, we then have to force invalidation on our CloudFront instance too.

The whole process is far too involved and I was wondering if anyone had any suggestions on how to streamline the whole thing? I know in an ideal world collectstatic wouldn't be run until all static files are final and ready for deployment, but unfortunately things just don't always work out like that and changing the odd image or javascript here and there will always be an issue.

I found an article on Google that suggests appending a timestamp/revision number for each individual static asset and combine that with a custom template tag but I'm not sure how I'd get Django to automatically declare a revision without resorting to manually update settings.py each time. Again, it's just another stage in the deployment and another thing for us to accidentally forget.

Anyone have any suggestions?
For js assets take a look at django-compressor. In addition to combining all your js together, files get named according to a hash of their contents. Bypassing your filenaming issues altogether.

I have not ran into your issue with images as we versioned them... but one approach you may want to consider is invalidation on s3. I think I'd just write a simple script to invalidate all the image files on each deploy. More details here: http://stackoverflow.com/questions/1268158/force-cloudfront-distribution-file-update

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
OK, I'm having an issue with Django and manual transactions. My view code looks like:

code:
@transaction.commit_manually
def upload(request):
    # handle upload form here
    try:
        model.full_clean()
    except ValidationError:
        transaction.rollback()
    else:
        transaction.commit()

    return render_to_response(...)
In fact, this is pretty much the code that's in the docs. I need transactions because I need to add the model to a ManyToManyField before I do the validation, and that's not possible unless the model is saved.

Can anybody spot the bug? No?

It turns out that any context processor that queries the database will break this code, as that sets the dirty state on the connection, and the decorator that wraps the function will make sure that the transaction state is clean, and error out if otherwise.

Just another item on the "Reasons I hate Django" list. So any third-party apps that possibly use transactions like this are completely broken, because the docs are broken! There's no easy solution outside of forcing a clean state in all context processors that query the database.

Why did I ever pick Django for this project...

mwarkentin
Oct 26, 2004

Hanpan posted:

I found an article on Google that suggests appending a timestamp/revision number for each individual static asset and combine that with a custom template tag but I'm not sure how I'd get Django to automatically declare a revision without resorting to manually update settings.py each time. Again, it's just another stage in the deployment and another thing for us to accidentally forget.

Anyone have any suggestions?

Are you using django.contrib.staticfiles or django-staticfiles? If you're using the latter (or upgrade to Django 1.4 when it comes out), take a look at the CachedStaticFilesStorage - it will take care of versioning of all static files, including images.

http://django-staticfiles.readthedocs.org/en/latest/helpers/#staticfiles.storage.CachedStaticFilesStorage

Note: I haven't had a chance to use this yet, but we're planning on it when 1.4 comes out.

Hanpan
Dec 5, 2004

Aha, that looks perfect! I can't wait for 1.4 to land.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
My test cases were passing, but I was getting a 500 error on the server. You know why? Django monkey patches the transaction methods to disable them. WHY THE gently caress IS THIS OK? Your code should never act different under a test case.

Every day I hate you more, Django.

duck monster
Dec 15, 2004

No heres a reason to hate django

The only instance on the internet of an error I'm hunting down on some legacy code I found somewhere I'm trying to debug

Some guy asks about it on IRC, presumably showing some pretty bad code
code:
todo84	apollo13: here's the urlconf [url]http://dpaste.com/132124/[/url]
apollo13	todo84: you are kidding me
apollo13	that's no urlconf that's bullshit
apollo13	todo84: you might wanna start with the tutorial
apollo13	you actually have no idea on how to write an urlconf
todo84	apollo13: [url]http://docs.djangoproject.com/en/dev/howto/static-files/[/url]
apollo13	todo84: I don't care, either paste usefull code or read the docs
Seriously, why treat newbies like this? Its loving immature and totally socially stunted to assume beginner coders seeking help should be shouted down and abused.

This is why open source gets a bad name. Total asocial cunts putting themselves in communications channels where beginners might come to. Bad and uncool. Keep the asperger suffers away from the interet support channels folks.

If someone spoke to me like that in real life, I'd punch their loving teeth in. I'm dead serious about that too. I *continuously* encounter django users treating newbies like this online , and its pissing me off. I wouldn't dare treat a beginner like that.


e: For reference I'm tracking down "'RegexURLResolver' object is not callable" from a fairly dated django project I found called django-project-management. Poking around, I'm thinking this is fairly aged bit-rotted code, might not be worth trying to fix.

duck monster fucked around with this message at 00:32 on Mar 5, 2012

ufarn
May 30, 2009

duck monster posted:

No heres a reason to hate django

The only instance on the internet of an error I'm hunting down on some legacy code I found somewhere I'm trying to debug

Some guy asks about it on IRC, presumably showing some pretty bad code
code:
todo84	apollo13: here's the urlconf [url]http://dpaste.com/132124/[/url]
apollo13	todo84: you are kidding me
apollo13	that's no urlconf that's bullshit
apollo13	todo84: you might wanna start with the tutorial
apollo13	you actually have no idea on how to write an urlconf
todo84	apollo13: [url]http://docs.djangoproject.com/en/dev/howto/static-files/[/url]
apollo13	todo84: I don't care, either paste usefull code or read the docs
Seriously, why treat newbies like this? Its loving immature and totally socially stunted to assume beginner coders seeking help should be shouted down and abused.

This is why open source gets a bad name. Total asocial cunts putting themselves in communications channels where beginners might come to. Bad and uncool. Keep the asperger suffers away from the interet support channels folks.

If someone spoke to me like that in real life, I'd punch their loving teeth in. I'm dead serious about that too. I *continuously* encounter django users treating newbies like this online , and its pissing me off. I wouldn't dare treat a beginner like that.


e: For reference I'm tracking down "'RegexURLResolver' object is not callable" from a fairly dated django project I found called django-project-management. Poking around, I'm thinking this is fairly aged bit-rotted code, might not be worth trying to fix.
I *think* I recall apollo13 being a grumpy guy in #django, but the channel is usually pretty enjoyable, as long as you heed the credo that IRC is for help and not for making other people do something for you.

Having said that, angry, arrogant manbabies were basically my experience with asking for programming help anywhere online, and I won't hesitate to recommend a relevant IRC channel over Stack Overflow, as long as it's something that doesn't require some time and effort to fix. I don't know if the channels better or worse than any of the other framework channels.

Comrade Gritty
Sep 19, 2011

This Machine Kills Fascists

duck monster posted:

No heres a reason to hate django

The only instance on the internet of an error I'm hunting down on some legacy code I found somewhere I'm trying to debug

Some guy asks about it on IRC, presumably showing some pretty bad code
code:
todo84	apollo13: here's the urlconf [url]http://dpaste.com/132124/[/url]
apollo13	todo84: you are kidding me
apollo13	that's no urlconf that's bullshit
apollo13	todo84: you might wanna start with the tutorial
apollo13	you actually have no idea on how to write an urlconf
todo84	apollo13: [url]http://docs.djangoproject.com/en/dev/howto/static-files/[/url]
apollo13	todo84: I don't care, either paste usefull code or read the docs
Seriously, why treat newbies like this? Its loving immature and totally socially stunted to assume beginner coders seeking help should be shouted down and abused.

This is why open source gets a bad name. Total asocial cunts putting themselves in communications channels where beginners might come to. Bad and uncool. Keep the asperger suffers away from the interet support channels folks.

If someone spoke to me like that in real life, I'd punch their loving teeth in. I'm dead serious about that too. I *continuously* encounter django users treating newbies like this online , and its pissing me off. I wouldn't dare treat a beginner like that.


e: For reference I'm tracking down "'RegexURLResolver' object is not callable" from a fairly dated django project I found called django-project-management. Poking around, I'm thinking this is fairly aged bit-rotted code, might not be worth trying to fix.

apollo13 is just a particularly grumpy guy. Most folks in the #django channel are very helpful as long as you aren't dense. I've seen them spend hours helping someone who is just flat out not listening to them.

epswing
Nov 4, 2003

Soiled Meat
My experiences in #django have been mostly enjoyable. Sometimes you have to fight to convince them that the problem you're having in some exceptional case that isn't part of the docs, but I guess that's fair.

(Have you met the guys in #java?)

geera
May 20, 2003
So this is making me pull my hair out, even though it's probably a simple fix.

I have a command-line script that I wrote to take data from an export (CSV files), create models for each record, and save them as a way of importing the data to my new Django project. I have this at the top of the script to set up the Django environment, which I've used in other scripts with no problems:
code:
# hook in to the django project for access to our models
sys.path.append('/home/geera/virtualenvs/kaizen')
os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings'
from django.core.management import setup_environ
from app import settings
setup_environ(settings)
The project is in the "app" folder, and the app is named "kaizendb" under the project.

On the next line, I import my models, which works fine:
code:
from app.kaizendb.models import Member, Line, Kaizen, Department
And then I purge old data:
code:
Member.objects.all().delete()
Department.objects.all().delete()
Line.objects.all().delete()
Kaizen.objects.all().delete()
The script blows up on the Department line, complaining "ImportError: No module named kaizendb". If I comment that line out, it works fine.

What's more, further on down the script I have the Department records imported from the CSV file, created as Department objects (which Django is saying doesn't exist), and they all save successfully. But when I try to make new Department objects after they're imported, I get the same ImportError as above.

I can literally do this:
code:
print Department.objects.all().count() 
Department.objects.all().delete()
and it'll print out a count as expected and then throw an ImportError on the delete line. Does anybody have any suggestions? This is driving me crazy.

DICTATOR OF FUNK
Nov 6, 2007

aaaaaw yeeeeeah
EDIT: Ignore this post. I am dumb and gay.

DICTATOR OF FUNK fucked around with this message at 16:14 on Mar 6, 2012

Lamacq
Jun 15, 2001

Breezeblock RIP

geera posted:

So this is making me pull my hair out, even though it's probably a simple fix.

.. snip ..

I can literally do this:
code:
print Department.objects.all().count() 
Department.objects.all().delete()
and it'll print out a count as expected and then throw an ImportError on the delete line. Does anybody have any suggestions? This is driving me crazy.

Care to post your models.py? I wonder if it's something in a post_delete signal handler or something.

Also to the guy above, let's keep the homophobia out of this thread. In fact you should probably just keep your mouth shut altogether.

geera
May 20, 2003

Lamacq posted:

Care to post your models.py? I wonder if it's something in a post_delete signal handler or something.
I rewrote the script to add it as a custom manage.py command and now it's working, so I'm thinking the problem was related to how the environment was being set up. I asked in #django on freenode and it blew their minds, too, so that's where the suggestion to make it a command came from.

Lamacq
Jun 15, 2001

Breezeblock RIP

geera posted:

I rewrote the script to add it as a custom manage.py command and now it's working, so I'm thinking the problem was related to how the environment was being set up. I asked in #django on freenode and it blew their minds, too, so that's where the suggestion to make it a command came from.

Yeah I was actually wondering why you hadn't just written it as a management command (although a valid answer to that would have been, "b/c the syntax for management commands sucks.") Anyway glad you got it working.

Hanpan
Dec 5, 2004

I've been meaning to educate myself further on using Fabric, virtualenv+pip and BitBucket to handle my Django app deployments. Seems most of the blog posts I can find on google are from 2009-10 and I was wondering if it was still an acceptable deployment method or if it's deprecated now?

Yay
Aug 4, 2007
It's very much still the deployment method du-jour. At least, if you're not using Heroku, gondor, epio etc (I think they have their own CLI interfaces?).

Hanpan
Dec 5, 2004

Yay posted:

It's very much still the deployment method du-jour. At least, if you're not using Heroku, gondor, epio etc (I think they have their own CLI interfaces?).

Woa, how cool is epio? Thanks for bringing that to my attention.

ufarn
May 30, 2009

Hanpan posted:

Woa, how cool is epio? Thanks for bringing that to my attention.
DotCloud is also really easy to use. Here's an example app. Their pricing is very different in that it's based on the number of instances you use, though, but it's perfect for testing.

PaaS are pretty awesome.

Adbot
ADBOT LOVES YOU

mwarkentin
Oct 26, 2004
I've been using Heroku. Very cool service.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply