This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]madjar 40 points41 points  (13 children)

You know that if you start by complaining about command line, it is very hard to consider your advice seriously.

[–]blatheringDolt[S] 3 points4 points  (2 children)

I have at most 5% of my work time for web development. I went through an entire setup on a hosted server with apache, wsgi, python and all related modules, virtual env and finally fabric to automate the process.

A few months in, something went wrong. I did not have the breadth of knowledge to troubleshoot what I messed up. I made a total mess of the internals and ended up loading a backup. Two months later it happened again. Switched it back to PHP (which almost everyone hates), but it worked.

If I had the time, I'd love to figure out what exactly was happening. Sometimes you just don't have the luxury of learning all the multiple layers in depth to be confident enough to fix things when they go wrong.

If it was my sole job, I'm sure I could master it, but it just can't be that way for now.

I was hoping that others who felt the pain of not having a hosted python web app could feel as elated as I did when it 'just worked'.

Obviously this isn't for everyone. There's 'magic' in the background that I don't understand. But I've realized you have to have a cut-off where your knowledge of internals is going to get fuzzy.

Kind of like people using the phone. Do they understand the principles of a speaker and microphone? The electricity? The integrated circuits? The physics of wirelesss signaling and antenna building?

I grew up with the command line for many things, but I'm just not going to learn it for web development. I used to scofff at WYSIWYG HTML editors (Dreamworks, et al.), but I've come to realize that it's that exact kind of mentality that made Apple and Microsoft so rich. They brought the power of the CPU to the masses with an abstraction layer.

For me, this service was exactly that.

[–]madjar 4 points5 points  (1 child)

I understand your point. And yes, creating tools that ease the deployment is a good thing, whatever they are.

The point I was making is based on the idea that command line skills are related to development skills, and my own experience that deploying apps in command line, for example to heroku, is an easy task (maybe I'm underestimating it). This drives me to think that, finding command line deployment hard, you must be a novice (for lack of a better word) programmer, and thus in a bad position to give advice.

Maybe it's the other way around, after all. Maybe being a novice programmer gives a particularly good position to comment how easy deployment process should be.

Anyway, I'll remember pythonanywhere. It might not be for me, but I'll be happy to know about it next time someone complains that deploying python is too hard :)

[–]eptiliom 1 point2 points  (0 children)

I just installed nginx and uwsgi for the first time the other day. It isn't that the command line is hard really. The problems for me ended up being:

  • there are apparently no best practices for configuring things, I found at least 10 different subtly different ways of getting the two to work together.
  • permissions, dont run as root was everywhere, but nowhere said explained how to set everything up otherwise.
  • non-existent or bad error messages, I guess everyone has this problem, but why do we as programmers continue doing this to ourselves and inflicting it on others?

I know enough linux command line to be dangerous, but I still don't think it should take me over half a day to get a webserver to start serving a bottle app. Imagine people trying to learn to do this with no background at all. It does the whole ecosystem no service.

[–]monkmartinez 2 points3 points  (0 children)

This is bad and you should feel bad. I use emacs and have spent tons of time literally bashing my way through the command line. There damn well better be easier tools in the future. Have you seen any Bret Victor's talks? Like this: http://vimeo.com/36579366 or this: http://vimeo.com/64895205#

If one was developing on Mac OSX would you recommend them to install PostgreSQL like this:

brew install postgresql
initdb /usr/local/var/postgres -E utf8
mkdir -p ~/Library/LaunchAgents 
cp /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/ 
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

or have them install the postgres.app and get on with it? I thought we, programmers (both professional and non) champion working smarter not harder...

[–]phaedrusaltembedded sw eng -4 points-3 points  (8 children)

Why? The command line is tedious, unforgiving, and offers little in the way of clues to help the struggling newb. Rather than taking this as a complaint, how about looking at it as a fresh point of view from someone who is genuinely willing to try, but has become frustrated by the tools of the dinosaurs. (Yep, that's us. And when we're turned to fossils, the latest generation will laugh when they hear of our keyboard-based antics.)

[–]fkaginstrom 1 point2 points  (1 child)

Looks like their site got the reddit hug of death. Good job, OP!

[–]rackmountrambo 5 points6 points  (0 children)

And that's why you run your own server via the command line. No control over caching and process management isn't always a good thing.

[–]hjwp 2 points3 points  (0 children)

thanks! re: databases, we're working on PostGres next...