Ask HN: Your Development Environment
26 comments
For my personal development at home I use an old asus eeepc 900 as my tiny server. I've taken it apart to remove the screen and used ubuntu mini.iso to install CLI mode + apache2, MySQL and php5. I use apache with mod_vhost_alias to map a directory structure to hostnames automatically so developing/testing a project is very easy. My apache webroot folder is actually a folder in my dropbox, so my code is automatically backed up too.
I have a macbook (a 13" unibody) with the dropbox account and MAMP to develop on (type the code). I usually mount the folder of the project I'm working on, on the macbook and turn off dropbox to go easy on the syncing.
Lately I tend to go more to my linux roots (I was a linux only user for quite some years before I bought the macbook) so I bought an asus 1005P and put ubuntu on it, again with mod_vhost_alias and dropbox. I must admit it's a great little machine and it has almost 8hrs of battery time, wich is a real plus.
For me developing is something I should be able to do anywhere, at all time. Hence the rather unconventional development environment...
I have a macbook (a 13" unibody) with the dropbox account and MAMP to develop on (type the code). I usually mount the folder of the project I'm working on, on the macbook and turn off dropbox to go easy on the syncing.
Lately I tend to go more to my linux roots (I was a linux only user for quite some years before I bought the macbook) so I bought an asus 1005P and put ubuntu on it, again with mod_vhost_alias and dropbox. I must admit it's a great little machine and it has almost 8hrs of battery time, wich is a real plus.
For me developing is something I should be able to do anywhere, at all time. Hence the rather unconventional development environment...
I find your setup very portable. Thanks.
Aquamacs. Interchangeable MacBook/MacBook Pro. Usually, no external monitor. I'm at pains to get things working on my laptop, even though we deploy on Debian; I almost never code "remote".
For the times when I have to edit remotely or in a terminal: pico. Shut up.
I've played with Coda and TextMate, but a couple times a year I have to write serious amounts of Win32, and I need to form a relationship with my text editor.
For the times when I have to edit remotely or in a terminal: pico. Shut up.
I've played with Coda and TextMate, but a couple times a year I have to write serious amounts of Win32, and I need to form a relationship with my text editor.
I edit code with vi on my Macbook Air and paste it into the repl of the running server.
I was raised in vim and used to do the same when hacking Lisp but it got tedious after a while. Have you considered using viper mode in emacs (which makes emacs behave like vi)? I've found that having an inferior Lisp to which you can easily send your code without pasting is a big time-saver.
I have a similar setup as you – work on a mac with a Debian testing box. I've always run a local server with PHP and MySQL to run things natively, but have been moving more and more to working on the testing box. My favorite software for this is Coda (www.panic.com/coda).
I use the built in SVN support of Coda to setup a repository on the dev box. I also set up a dev domain (dev.domain.com or beta.domain.com). I use the local server on my Mac to run rapid quick testing changes and then use the GUI on coda to see which files need to get pushed to SVN or the dev domain.
Oh and for MySQL, can't live without Sequel Pro.
I use the built in SVN support of Coda to setup a repository on the dev box. I also set up a dev domain (dev.domain.com or beta.domain.com). I use the local server on my Mac to run rapid quick testing changes and then use the GUI on coda to see which files need to get pushed to SVN or the dev domain.
Oh and for MySQL, can't live without Sequel Pro.
Coda looks promising. Seems like something straight from Apple HQ.
Development Server:
- In-house racked 64-bit dual processor Dell with Raid-1 SCSI & 16 GB memory running:
- RHEL 5.4 with XEN virtualization
- Apache
- Zend Server Community Edition PHP stack
- MySql
- JRE & JDK
- Subversion
- JIRA bug tracker (nice features and surprisingly affordable)
Workstations:
- Windows XP SP2
- Zend Studio
- Various browsers for checking site display
- ZoneAlarm set fairly restrictive
- Windows Live Messenger for easy free SMS contact when needed
- In-house racked 64-bit dual processor Dell with Raid-1 SCSI & 16 GB memory running:
- RHEL 5.4 with XEN virtualization
- Apache
- Zend Server Community Edition PHP stack
- MySql
- JRE & JDK
- Subversion
- JIRA bug tracker (nice features and surprisingly affordable)
Workstations:
- Windows XP SP2
- Zend Studio
- Various browsers for checking site display
- ZoneAlarm set fairly restrictive
- Windows Live Messenger for easy free SMS contact when needed
Got a good box there Scott.
Well I use HyperVM which runs on Xen to boot up virtual environments for testing and deployment. At the moment I only have CentOS images setup, but when I find some time I'll add a few more linux variants.
Though, I have to say, I'm trying to move to something else. HyperVM is so botched at the moment, it's just useless to add features to. The guy that ran the project apparently is no longer with us, so the source has been released to the public, and currently nobody is maintaing the project.
Though, I have to say, I'm trying to move to something else. HyperVM is so botched at the moment, it's just useless to add features to. The guy that ran the project apparently is no longer with us, so the source has been released to the public, and currently nobody is maintaing the project.
OS X, 2 monitors. 8 Terminal windows, 2 fullscreen MacVim windows (with vim running the NERDTree and Buffer Explorer plugins).
I do all my Java/Flex/Ruby/Python development like that, and I think it works great. I've written code generators to give me Java or Flex classes as needed, without having to write much boilerplate.
Just do what feels most comfortable, and make small changes as needed to make it better.
I do all my Java/Flex/Ruby/Python development like that, and I think it works great. I've written code generators to give me Java or Flex classes as needed, without having to write much boilerplate.
Just do what feels most comfortable, and make small changes as needed to make it better.
For a long time I've just been running Linux and use emacs and the zsh shell as the main environment I operate in within it.
I recently got a laptop though and for reasons I won't get into, have a visceral and probably irrational dislike for Apple and I really didn't want to deal with Linux wireless not working well, or sleep not working well, or whatever else may or may not work well on the laptop. Anyway, for the laptop I got a machine with Windows 7 and I installed Linux on top of it in a virtual machine.
I have to say, I love it! If I want to look at something in IE or use MS Office (I prefer it over OpenOffice, sorry), or whatever else I might want to do in Windows, I don't have to reboot. I can snapshot and tinker, without worrying about breaking it, and Win 7 works really well. When I want to do dev work I boot up the Linux VM and put it up full screen and haven't had any problems yet. Next time I put together my main machine, I'm considering doing the same there, though I have gotten quite used to all the Linux apps.
I recently got a laptop though and for reasons I won't get into, have a visceral and probably irrational dislike for Apple and I really didn't want to deal with Linux wireless not working well, or sleep not working well, or whatever else may or may not work well on the laptop. Anyway, for the laptop I got a machine with Windows 7 and I installed Linux on top of it in a virtual machine.
I have to say, I love it! If I want to look at something in IE or use MS Office (I prefer it over OpenOffice, sorry), or whatever else I might want to do in Windows, I don't have to reboot. I can snapshot and tinker, without worrying about breaking it, and Win 7 works really well. When I want to do dev work I boot up the Linux VM and put it up full screen and haven't had any problems yet. Next time I put together my main machine, I'm considering doing the same there, though I have gotten quite used to all the Linux apps.
I agree. Although I hate Apple myself and have been a linux user, I still think Mac OSX is an exceptional OS for personal use.
Having said that, I HAVE worked on Windows 7 and it is by far the best OS Microsoft has produced and if I had to use it, I would.
MS Office is nice, I use it on my Mac.
Having said that, I HAVE worked on Windows 7 and it is by far the best OS Microsoft has produced and if I had to use it, I would.
MS Office is nice, I use it on my Mac.
I like to use Windows for my dev environment, but I code for Linux systems. When I used 32-bit Windows, I used pubuntu to run an ubuntu server inside Windows without using a VM. It was nice and fast and worked well aside from a few networking quirks that I eventually worked out. pubuntu isn't compatible with 64bit Windows yet, and I was really itching to use all of my RAM so now I run CentOS on an old laptop of mine with 256MB of ram and a busted display (not good for anything but a testing server anyway), which I have stuffed in the server closet.
I have my workspace folder on my dev machine shared, and on the laptop I am using cifs to mount it as a local folder (/workspace on my laptop is actually c:\workspace on my windows machine), so as I make changes to files, they are instantly reflected on the laptop. This makes for extremely convenient testing.
I have my workspace folder on my dev machine shared, and on the laptop I am using cifs to mount it as a local folder (/workspace on my laptop is actually c:\workspace on my windows machine), so as I make changes to files, they are instantly reflected on the laptop. This makes for extremely convenient testing.
It really depends on what I'm doing. For python/java, I use Eclipse. For ruby, Netbeans. Shell: emacs. Any new languages that doesn't have any good ide support (such as go and objective-j): emacs. For smalltalk, well, squeak (but you use whatever version the smalltalk is, as they all come with an ide, which is part of the system, and is very hard to separate ide and production/dev environment).
Os-wise: I always try to stick with linux, as there are very good dev tools that are a pain to use elsewhere (for c programming, you can access the documentation by typing man and the name of the function on the terminal, which is very convenient, albeit a bit ugly).
Os-wise: I always try to stick with linux, as there are very good dev tools that are a pain to use elsewhere (for c programming, you can access the documentation by typing man and the name of the function on the terminal, which is very convenient, albeit a bit ugly).
At work: Windows 7, at home: Ubuntu 10.04
At both places: 2 monitors, Emacs (js2-mode, python-mode, php-mode, charp-mode, yasnippet, a custom theme, and more), a terminal shell (sometimes inside of emacs) and a browser open.
When I did systems programming (just for curiosity), I used just a shell and emacs on CentOS, Slackware and FreeBSD; along with some good books on messing around with that stuff. The OSes were run inside of virtual box just in case I really messed something up :-)
At both places: 2 monitors, Emacs (js2-mode, python-mode, php-mode, charp-mode, yasnippet, a custom theme, and more), a terminal shell (sometimes inside of emacs) and a browser open.
When I did systems programming (just for curiosity), I used just a shell and emacs on CentOS, Slackware and FreeBSD; along with some good books on messing around with that stuff. The OSes were run inside of virtual box just in case I really messed something up :-)
Try to install everything needed on the server side using macports (lamp stack, memcache, etc). MacVim and svn/git from command line to write code/manage.
I started running all the server software on my laptop about 5 years ago and haven't looked back since. I don't need a network connection, ssh, or anything to work. I've done quite a bit of development in the air as a result. It's also wicked fast (never any network latency) --- which adds up over time.
I started running all the server software on my laptop about 5 years ago and haven't looked back since. I don't need a network connection, ssh, or anything to work. I've done quite a bit of development in the air as a result. It's also wicked fast (never any network latency) --- which adds up over time.
Respect.
I code Bine in Automatic Chamber on an old Linebarger Oculon cryptangled with redundant deep-remote diamondwisp StraightRazers. Pretty standard, really.
Acer Aspire One netbook dual booting Ubuntu 10.04 and Windows 7. I do mostly web development using Python and Django on my Ubuntu partition, gedit, terminal, firefox and chrome are pretty much all I need. I come from an ASP.NET/C# background, so I have Visual Studio on my Win7 partition, but honestly the only time I boot into windows is to watch netflix.
Why the two browsers?
Well, mostly because I like Firefox's development tools a little bit more than Chromes (although they are both awesome), but Chrome is way faster than FF for standard browsing. So I use FF for dev and Chrome for browsing.
I do front-end stuff mostly. html, css, javascript, and some php, Django or RoR (depending on the team I work with).
I work on my Acer Aspire one (no, really), with an external monitor. I run Ubuntu (virtualbox for testing in ie). I do all of my coding in gedit or vim, and use Git for bigger projects.
I work on my Acer Aspire one (no, really), with an external monitor. I run Ubuntu (virtualbox for testing in ie). I do all of my coding in gedit or vim, and use Git for bigger projects.
I'm a web developer too, and have a similar set up, with a debian dev machine (it's actually a small Linode VPS), and I connect from my PC via ssh. I also use SlickEdit to work on the remote files via sftp, which I find to be super useful.
Ubuntu 9.10 on Acer Aspire One netbook and 10.04 on desktop
Emacs23 nox mode with starter kit from technonancy's fork.
Ruby 1.8.7 and 1.9.1 on RVM
Rails/HAML/LESS
Prgmr 512mb vps for remote dev environment and testing
Chrome+Firefox
Web Dev work: Aptana Studio, Sequel Pro, Terminal (2x or 3x usually) HTTP Client (excellent little app for working with API's), all on Mac OSX and 2 screens, always.
OS X, dual monitors. Textmate, Sequel Pro, Transmission. I do all of my web development with these three applications and in my opinion, they're the best.
wait, Transmission? Did you mean Transmit? Or do you have a cool bittorrenty way of uploading/downloading source?
Yeah, I meant Transmit, specifically the new version. My bad.
Laptop: Ubuntu, IDE: vim/eclipse/gedit, whatever fits best.
Partly working in Solaris, so quite some script development in a shell with vi
web development: web2py, blueprint, Terminal shell, jquery, and jqueryUI, all on Ubuntu 10.04
Linux> Love it.
Textmate and/or vim, Terminal, Safari. Works great
FreeBSD. dwm. rxvt. Emacs. git. newLISP.
vim and debian via ssh. Either on a vm on my laptop or on a VPS depending on the project im working on.
Emacs on a 12" macbook. Clisp.
I flip between Windows 7 and Ubuntu 10.04. Dual monitors everywhere, and usually a VM on either setup to allow me to run the other OS without a reboot.
I don't use IDE's, just text editors. GEdit on Ubuntu, intype on Windows. I have LAMP setup on Ubuntu, and WAMP for windows.
All my ruby programming goes on Linux for the most part.
I don't use IDE's, just text editors. GEdit on Ubuntu, intype on Windows. I have LAMP setup on Ubuntu, and WAMP for windows.
All my ruby programming goes on Linux for the most part.
I wanted to get into systems programming for linux and wanted to know how to approach that in this environment. By systems programming I mean things like writing device drivers, play with linux kernel etc.
Thanks.