Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: best cheap easy setup for initial development
15 points by bavcyc on April 11, 2009 | hide | past | favorite | 31 comments
What is the best cheap setup for initial development? Low cost, easy to change to different languages (or web server) if first choice doesn't work, easy to move to a colocation site if that time ever comes and easy to administer. GUI isn't required.

My last webserver was circa 2000 with Apache and Redhat.




OK, you're pretty ambiguous on what you want, but based on "easy to move to a collocation center" and "GUI isn't required" it sounds like you're mostly asking about servers.

For initial development, you probably don't even need a server. There's pretty much always an easy way to have a local server run on your computer for development.

When you are ready for a server (probably not until you're about ready to go live), I'd suggest Slicehost. They're well-documented and cheap ($20/mo. for their smallest server!), and you can scale the server all the way to 15.5GB of RAM in just a couple of minutes.

You could look at Linode too though. It seems like you get a little more RAM for your buck, especially on the smaller end, but you can only go to ~2.8 GB of RAM on one server.

As for your development computer, I love Ubuntu, but it really depends what you want. If you want to do everything through an IDE, it depends on your language, but the best IDE may be for Windows. If you want to do much of anything through the command line or think you might in the future, develop on either Mac or Linux. Their shells are just way better. There is always Cygwin, which sorta fixes the problem, but I think true Unix works better.


When you are ready for a server (probably not until you're about ready to go live)

I'd suggest getting it the day you start your project.

First: twenty-five bucks a month, seriously, what are you even doing thinking about this ($5 extra for backups, which is another "why are you even thinking about this" item).

Second: source control from the very first line of code. The production webstack, from the first line of code. The production deployment procedure, from the first line of code. etc, etc


"I'd suggest getting it the day you start your project."

I agree with this. Having the server sitting there ready and waiting, and costing you money, has a certain motivating effect. Every time that monthly accounts email comes in, and you haven't gone live yet, you're gonna feel like an idiot, and that feeling is good for you.

It's like a gym membership, just sitting there sucking your money, mocking you and shaming you into action. It appeals to the exact right part of your psyche - you're paying for this, where's the results?

Take the step. If you're serious, sign up for a server first thing, I say. Buy a domain and wire it up. Load your blank page and stare at it and feel like a loser. For best effect tell all your friends about it and make all sorts of grand promises, and then stare at your blank page some more and feel like even more of a loser until finally you cross the threshold of shame, get started and then - you're on the track my friend!

Ah, blackmailing yourself into action. Tried and true. Shouldn't be necessary but hey, we're only human, and the only thing that matters is results.


I agree with getting your VPS and experimenting with it when you start (or early in the process). I use Debian on Linode, and I have learned so much. The experience is invaluable. Everything from configuration to automation to security.

This prepares you for the day that you go live, as going live won't be a completely new experience, it will be a new experience, but if you iterate on hosting a blog and sandbox apps, then you are much better prepared than if you go VPS cold with a new product.


I guess. Depends how strapped for cash you are.

I use GitHub, so I wasn't thinking about version control, but yes, definitely set version control up somewhere immediately.


Confirm.

Went through everything from old office computer used as web/subversion server while still on windows xp to slicehost. It all depends on the details... but if you're not sure what they are keep it simple.

Depending on what you feel more confortable with you could either slap ubuntu on an old computer, or take a small slice at slicehost. The second has less bandwith (then a local computer) but overall it's much more flexible.


Ubuntu Linux. You can use aptitude or apt-get to install pretty much whatever you want, it will run on whatever hardware you have at the moment, and it's free of charge.

If you already have a Mac you could decide to stick with the Mac OS for development instead (I use it; it works fine), though you will almost certainly not be running Mac OS on your server. So you'll have to figure out Linux anyway sooner or later. The Slicehost tutorials make it much easier -- a lot of the grunt work has been figured out and documented.


I develop on a Mac and deploy on Slicehost (Ubuntu), it's easy as pie and cheap as chips.


How does Ubuntu compared to Debian on the server side, these days? Will the new FreeBSD kernel support get moved to Ubuntu? The admins I know doing this for big installs swear by FreeBSD. (I've only managed my own desktop for quite a few years and have no clue. No O/S flamewar, plz! :-) )

Edit: I went Ubuntu-only on my desk a few years ago, previously Debian-only (well, one computer still have a Debian partition too and I also have a Mac). I'm asking about servers.


Ubuntu is just.. easier. That's what I get out of it. It's super simple to setup and keep up.


VirtualBox (free from virtualbox.org) running on top of whatever Windows, Mac-x86 or Linux system you have.

Debian or Centos as the operating system that you run as a VM inside VirtualBox.

You should be able to easily install Python, Ruby, TCL, Lisp, etc. on either platform for development language; Apache or NGINX or Lighttpd as the web server; Emacs or Eclipse or whatever as the editor.


For a project I'm on right now we're using VMs w/ Debian on developer workstations. Deploying the app is a tarball & a shell script on top of a base Debian install. Any time we need a new public server we spin up a new EC2 instance (Alestic Debian) & run the script.

Ticket tracking is a Google Spreadsheet w/ some formulas to calculate ticket sort orders, estimated completion dates, etc.

Works well for us on the budget we've got.


One thing that took us a while to figure out, but helped immeasurably once we did was getting good, at VM/image based development.

So in our case we wrote the code on whatever laptop we liked best (I did most of the coding for first few versions our software on a 12" PowerBook, other folks used ThinkPads or Dells with Windows).

But having a beefy server box with enough memory/disk to host a few different VM environments (various QA, staging, multiple different DBs etc.) and the ability to rapidly set up new ones was killer. It makes the laptop choice more a matter of personal preference, and keeps a consistent environment where it counts.


Strategy: Linux under Xen. (just copy disk image or dump/restore FS) Amazon EC2 for production.

Tactics: Fedora (It will become CentOS after polishing) everything already packaged - Django, Ruby, nginx, apache with tens of modules, etc.

Hint: Forget Java.


I didn't understand what are you looking for, but I think you want to start a project on a given platform.

For that I recommand, Visual Studio.

1- It's 100% free of cost (express edition), you get the editor (Visual Studio Express) for free and .net frame work is free to install and compatible on Windows versions

2- It's very easy to use and Object Oriented. It also has a lot of power and by learning .net you can develop for windows, web or mobile interface.

3- You can code a program in different languages with Visual Studio

Also lot of videos and tutorials can help you getting started with it


Choosing the Windows platform, regardless of any perceived benefits, locks you into Windows-everywhere for the life of your application. Even if it seems easier at first, it could turn out to be a very restrictive and expensive straitjacket in the future. I'd think long and hard about choosing to deploy on anything but linux (or FreeBSD).


What exactly is the difference between being locked into Microsoft or being locked into Mac or Linux or FreeBSD or Java or Python or AppEngine or EC2 or technology in general?

If you start building your project on a particular stack and then need to move, there will always be a transition cost.


The difference is, obviously, that open source software is completely free, and the others aren't.

I'm not trying to start yet another OSS vs. MS war here, but all other things being equal, with one option you have to pay money for server/DB licenses (and then constantly worry about compliance), and with the other you don't.

I understand why companies use Windows - they need common desktop apps, they need Office. But the question was about web development. There is little advantage to using MS tools, in fact most of my web dev associates would say they are worse. Worse, and expensive, especially the databases.

Why sign up for that kind of trouble? Stick to OSS.


I agree with most of your comment, and would add that there are hidden costs with choosing the windows platform that are not so obvious such as:

Easier access to support with OSS web platforms than .Net. I find OSS proponents much more open and willing to blog about difficult issues that they have solved and provide free code and workarounds. This is not as true in the .Net realm, but it is getting better.

Third-party libraries/plug-ins cost money in the .Net world. Its much easier to find free IDE plugins and libraries/apis for your platform in the OSS world. in .Net the alternatives cost money usually a small amount, but it does add up. (I'm guessing because it's cheaper for corporations to spend a small amount to solve a problem than hire a dev to custom build a solution, and .Net has a large corporate install base.)

However, I have to disagree with the statement about the tools and database. I gave them a try recently and actually found the experience much more pleasing than I thought... in fact going back to eclipse for work on the monday had me missing a few features in Visual Studio. I can't speak about SQL Server in a prod environment, but the db dev tools with the express version of visual studio are pretty cool. Rather than going by third person reviews, try it out yourself, you can get the web installer at http://www.microsoft.com/Web/downloads/platform.aspx and the MVC tutorial at (http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-n...)

Personally I think the tutorial just proves my original point if you do work through it. Its a chapter from a book by the creators of .Net MVC and whilst free, the whole book is not, most other popular frameworks would release the full book as a free download.


I'm talking about transition costs. Vendor lock-in is only an issue if you need to move.

Microsoft has a BizSpark program that lets you have access to their entire suite of development and desktop applications for $100 at the end of 3 years. That's cheap! Almost free.

But still, I'm talking about Vendor Lock-In and transition costs. For example, say it takes you 2 years to build your product, you start on Microsoft and then need to transition to Linux. How much would that cost?

What if it turns out you just can't find enough developers on OSS to move your product forward or they cost too much and you want to move Microsoft, because all the metrics say the TCO on the microsoft side is actually lower. How much would it cost to escape the OSS lock-in?

"Free" OSS is not actually free. The product is free, but services still cost money. The OSS community neglects the services cost from the TCO, but they are very real.


"Vendor lock-in is only an issue if you need to move."

And the reason you'd need to move is because Windows is costing you too much, at which point you realise you're locked in! So, yet another reason to avoid Windows like the plague.

I won't bother to respond to the rest of your laughable shilling.


You know your opponent has lost the battle when they resort to logical fallacy.


You're right, of course, that the weakest edition of Visual Studio is free, but I think it's a mistake to choose that way. If you're serious about programming, you want the lowest lifetime cost per performance ratio, not the lowest entry cost.

Call me cheap, but I think choosing Visual Studio is like training yourself to spend money. I'd stick with Eclipse or Notepad++ or Gedit plus Apache and Django or Rails, or something in that direction. Especially for web development, money doesn't buy you much beyond bandwidth.


Emacs. It can be configured to be much more powerful than Studio, it's completely free, open-source, incredibly programmable in the best language in the world (LISP), fast.

I should shut up now though.


Microsoft can't even build a standards-compliant web browser. How can you expect them to have a good web development suite? A nonprofit feeding off donations from Google has constantly outperformed one of the largest software corporations in the world here. (!!)

Free software is chosen not because it's free, but because it's /good/ software. Hackers have helped develop their own tools and fixed bugs themselves, so most stuff is very stable. And when there's a need for a new feature, they make it, so it's very capable. It's like survival of the fittest for software.

I think a lot of people (and companies) have the idea that you can't get anything good for free. In the software world, that just isn't true.

Companies like Slicehost realize this, and give you full control over your slice. Before you deploy though, you could probably just do with a ubuntu box shoved under your bed.


A small warning here, the free express version is a little crippled. I went through the .net mvc Nerdinner tutorial last weekend (was bored), but the express version didn't support the unit test setup, nor does it support scm plugins (So the visualsvn plugin didn't work).

Might not be a show stopper for some people but it's not ideal.


You're new here, so a little advice: Don't ever mention anything outside the open source realm around here -- especially anything about Microsoft. HN'ers hate microsoft. pg writes articles about how Microsoft is dead. Hacker News is an environment that is not conducive to open discussion, only open source.


"HN'ers hate microsoft."

I think you're onto something there, although we could expand it into an even more general rule: "Anyone who has ever done any standards-compliant web development at all, ever, hates Microsoft".

Fair?


If, by "fair," you mean, "Will I get a lot of up votes?" then Yes.

If, by "fair," you mean, "Is what I just said true?" Then no.


I'm having a hard time believing you've tried to do the aforementioned (standards-based web programming). Having to include Microsoft browsers in that is like pulling teeth. Your OWN teeth. With no painkillers.


what benefit would that give over (for example) Eclipse?

Ubuntu + Eclipse IDE = develop pretty much any language, for free.




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

Search: