
Ask HN: What's your Workspace like? - shire
I&#x27;m getting into Web Development more now and would like some tips or suggestions. First things first I would like to know how most freelancers or Web developers develop? in other words. What is your Setup look like on your machine?<p>For example do you use Sublime? PyCharm? MAMP? or VirtualBox &amp; Vagrant I just want some basic ideas of how people build projects on their machines(laptop, desktop).<p>I am getting into PHP and it seems confusing how I can manage multiple projects like Drupal, WordPress, Laravel all on my macbook. How do you manage working on multiple projects locally on your machine?
======
LarryMade2
Set up a development platform on your laptop MAMP, this will let you go crazy
in web work without making yourself vulnerable to the outside world... well,
at least till you upload.

Second an IDE or text editor you can live with - you will going to use this a
LONG time (maybe for your whole development career!), that’s why Emacs and VI
are so popular still, they don't change all that much. Having to switch
IDEs/Editors after you’ve got into the groove will make your development
stride stumble greatly. Beyond that it's up to your desires, some people live
by sublime, I can't get over it not being able to print (really!?) Anyway, no
one editor or IDE will please everyone, so dont be reluctant try out demos
till you feel satisfied.

MAMP is really nice in that its interface lets you redefine web root on the
fly which works if you got a bunch of similar projects.. Though sub
directories are what most do otherwise (unless the platform is really specific
about file placement in relation to web root)

So, for me I'm on Aptana (IDE; based off of Eclipse but PHP tuned) on Linux my
web root on my dev system stays constant, and projects just get various
subdirectories and different MySQL dbs. Working with lots of projects is one
of those things ya gotta work through and learn, best tip - learn to do
backups/restores.

~~~
shire
How do you separate all your projects and different MySQL dbs? what if you
need different versions?

------
poof131
Tools for development, building, and dependency management are all important.
For web, I like Yeoman, Grunt, and Bower. These require NPM which is nice for
dependencies too, allowing both local and global. These teams all are doing
some fantastic work.

For editing I use both Mac VIM and Webstorm/IntelliJ. I prefer VIM, but
Webstorm/IntelliJ are quicker to learn and good for navigating both between
and inside of projects. I know there are good command line tools for this
navigation but I haven’t started using one yet. On the never ending TODO list.

No recommendations for PHP dev. I tend toward JS and Python for backend tasks.

------
blueflow
Im still in the phase of finding the ide i like. On work, we use Eclipse with
PHP extension and SVN, testing is via network mounts.

On my private laptop i prefer gedit. Project files are located in
~/Projects/<project name>/

An nginx bound to localhost is running with ~/Projects/ as docroot. An
instance of php-fpm is running with my uid. mysqld, git and composer are
installed.

Communication with 'production' system via ssh+keyauth.

When possible, i use tilda and CLI for testing.

------
sejje
Ubuntu, making heavy use of virtual desktops.

Chrome / Terminals / gVim / irc

I generally have one desktop with my browser, one with one terminal and
(multiple, usually) gVim instances, where I do my git commits etc. A third
where I have my server running with logs etc. My team keeps up on irc, so I
keep that on my server/log screen. I use my fourth desktop for various other
apps, spotify etc.

I don't like windows being behind other windows.

~~~
slang800
> I don't like windows being behind other windows.

Same here, except I switched to Ubuntu-GNOME and used
[ShellScape]([https://extensions.gnome.org/extension/294/shellshape/](https://extensions.gnome.org/extension/294/shellshape/))
to automate window resizing & moving into new workspaces so they don't
overlap. Sadly, that broke when I updated GNOME, and now I'm just looking for
a nice tiling WM to be a more permanent replacement... Basically I'm looking
for something like con10uum (from 10/GUI) - but real.

------
pushkargaikwad
We are a 3 people company and this is our setup

1\. MacBook Air + Sublime + github (major functionality development)

2\. Ubuntu + vi editor + Aptana + dropbox (for small edits/backups)

3\. Windows 8 + Photoshop (Design)

4\. Dell Sutdio 1535 with windows vista - for gaming and porn, well mostly for
porn

Technology Stack - RoR

Browser - Chrome

Other software - Thunderbird (emails) + empathy (chatting)

I have found project management and time tracking software to be some what
inefficient so have stopped using them.

------
mkal_tsr
I would recommend something like PhpStorm / IntelliJ [1] (I use PhpStorm for
web projects), as that integrates well with Vagrant [2] which is great for
quickly spinning up / building VMs in development.

[1] [http://www.jetbrains.com](http://www.jetbrains.com)

[2] [http://www.vagrantup.com/](http://www.vagrantup.com/)

~~~
shire
Yeah I was thinking of going with PhpStorm but wasn't sure to choose between
MAMP or Vagrant/Virtualb to handle my projects.

------
slang800
I used to be purely a freelancer, but recently got hired by an agency. I've
moved between text editors over the years, from Eclipse to Komodo to Sublime
Text 2 to ST3 and finally to Atom (with the most time spent on Sublime Text).
Atom isn't quite as smooth as ST3, but it's worth the tradeoff because it's
open-source and I can make it do _whatever_ I want.

While developing static websites I use a compiler/toolset called
[roots]([http://roots.cx](http://roots.cx)) which I find immensely useful and
even contribute to the development of. When developing non-static sites I use
Virtualbox, running Ubuntu Server, and provisioned with a SaltStack config
that I use to ensure my dev and production environments are identical. Then I
just use port-forwarding for http & ssh to communicate with the VM and mount
the VM via SFTP. I could actually just do the same thing with a spare VPS, but
I use a VM running on my machine because it's cheaper and faster.

For my OS, I use Ubuntu and a VM running OSX so I can use Sketch 3 (which is
fantastic for editing vectors).

I use git and GitHub for source-code management, with a GitLab server that I
move old private repos onto so I don't go over the limit of private repos I
can put on GitHub before upgrading to the next tier. I'm pretty sure I could
use Bitbucket for the same thing that I use GitLab for, but GitLab is OSS so I
prefer it over Bitbucket.

For hosting I use DigitalOcean for any site that isn't static, and S3 or
Divshot for static sites.

My machines are: \- A cheap (800USD) but ridiculously overpowered gaming
desktop that I got for running networks of VMs. I do most of my work on this
one and keep it at the office with a few 20-something inch monitors hooked up
to it. It's nice to work on because it's very fast, but obviously not portable
at all so I need to make sure I commit & push anything I might need to access
remotely, before leaving the office. \- A fairly heavy 17 inch laptop that I
generally keep at home. It has pretty good performance and used to be my
primary computer before I got my desktop. \- A really nice Macbook Pro that my
company gave me. It doesn't run as fast as my desktop but it's light and has
great battery life, so I use it whenever I'm not at my desk or at home. I
don't particularly like OSX and can't bear doing serious work on it, so I'll
probably end up installing Linux or at least dual-booting, but the hardware is
very nice.

------
motyar
LAMP + MEAN developer.

Macbook air + DigitalOcean VPS for all development + xTerm + tmux + ssh + Vim
+ SCP/FTP

------
dm2
Notepad++, Chrome, VirtualBox, Explorer++, FileZilla, Putty.

~~~
shire
Any good tutorials on VirtualBox and Vagrant?

~~~
dm2
Probably not needed for VirtualBox, it's very easy to use.

I do all of my work and web browsing in a VM to keep my main OS as clean as
possible.

