Slashdot Mirror


Ask Slashdot: Configuring Development Environment On a Shared Workstation?

First time accepted submitter xyourfacekillerx writes "After a long hiatus of developing (ASP.NET), I decided to pick it up again. I need to learn .NET and SQL for my new job (GIS tech using ESRI software). Down the road they need a PHP website, tons of automation tasks, some serious data consolidation, they want mobile apps in theory. This is not my job description, but I'm sure I can do it. Long story short, I need to setup a development environment on my home desktop, so I can do all this in my spare time. Trouble is, I share the machine (Win 8.1, 2.7 dual core pentium something or other, with virtualization support.) I want to avoid affecting the other users profiles. I currently use my profile for music production (Reason) and photography (Photoshop, et al) so it's already resource intensive with RAM, CPU and VMM. I'll be needing to install all of your basic Microsoft developer suites, IIS, SQl Server, ANdroid SDK, Java SDK, device emulators, etc. etc. Plus AMP and finally GIS software. There will obviously be a lot of services running, long build times, and so on. To wit, I wouldn't be able to use my desktop for my other purposes like the music editing. So I need some advice. Would it help to set up all these tools under a different account on the same Win 8.1 install? Or should I virtualize my development environment (and how?), and run the virtual machine side by side? Or should I add a HDD or secondary partition and boot to that when I intend to develop? I am poor ATM, but is there a cheap very mini PC I can place next to my desktop and run all my development software off that, remote desktop into it? I've done a lot of googling the last week and haven't turned up anything, so I turn to Slashdot. Please help me get organized so I can start coding again."

158 comments

  1. Use IIS Express, SQL Server LocalDB, Visual Studio by Anonymous Coward · · Score: 1

    They don't take up resources when they're not running...

  2. Comment removed by account_deleted · · Score: 5, Interesting

    Comment removed based on user account deletion

  3. Yawn by Anonymous Coward · · Score: 4, Insightful

    Why are these questions landing on ./?

    I am sure there is forums more adequate for this kind of line noise.

    Let's turn the tide before Slashdot turns into News For Idiots.

    1. Re:Yawn by Grishnakh · · Score: 0

      Not only that, he's asking the wrong forum. If you have questions about all these Microsoft technologies, why not go to the experts at Microsoft and ask them? That's what you're paying all that money for with that MSDN account. I'm sure they'll be happy to advise you on how to proceed.

      If you can't afford an MSDN account, then you really have no business doing MS development work. If you're working with MS technologies at work, they're supposed to provide that stuff for you.

    2. Re:Yawn by Anonymous Coward · · Score: 3, Funny

      This^

    3. Re: Yawn by Anonymous Coward · · Score: 2, Funny

      Current working directory.

    4. Re:Yawn by Anonymous Coward · · Score: 0

      Because this is what Ask Slashdot is for?

    5. Re:Yawn by Anonymous Coward · · Score: 0

      I think that's a little harsh.

      (Says the guy with an MSDN VS Ultimate account.)

    6. Re:Yawn by Grishnakh · · Score: 1, Informative

      I don't think it's "harsh", it's about using what you paid for. What's the point in giving thousands of dollars to a vendor if you're not going to take advantage of the services the vendor offers you? If you have questions about your vendor's products (which you've already decided to use and base your business on), then you might as well ask the vendor, not some random collection of people.

    7. Re:Yawn by xyourfacekillerx · · Score: 1

      Not only that, he's asking the wrong forum. If you have questions about all these Microsoft technologies, why not go to the experts at Microsoft and ask them? That's what you're paying all that money for with that MSDN account. I'm sure they'll be happy to advise you on how to proceed.

      If you can't afford an MSDN account, then you really have no business doing MS development work. If you're working with MS technologies at work, they're supposed to provide that stuff for you.

      Well, they gave all that stuff away for free when I was in college. I had every thing I could ever want and fully functional software and immense support from MS reps and faculty, and now it's been a few years and I don't have all that.

      I don't see the harm in asking how other people configure a development environment in their home. I couldn't make up my mind, so I couldn't act. Reading the responses will inevitably bias me to favor one option over another. This is the perfect forum to get that information, however ignorant or primitive or unprofessional my question is. I know I'm stupid. I know I should know how to do this and be able to do this. Hence ask Slashdot.

    8. Re:Yawn by Grishnakh · · Score: 1

      If they're not giving it to you for free, and making it hard to develop using their products, then maybe you should ask yourself, "why am I using their products instead of products which I can get for free?"

    9. Re: Yawn by mitzampt · · Score: 1

      Well played, sir, well played

      --
      uhm...
    10. Re:Yawn by Anonymous Coward · · Score: 0

      Did the name change to dotslash or did you transpose the characters?

  4. VirtualBox by Anonymous Coward · · Score: 5, Insightful

    Step 1: Install VirtualBox (https://www.virtualbox.org/)

    Step 2: Install the dev. OS of your choice inside your new virtual box.

    Step 3: Install all the dev. tools you need into the OS inside the new virtual box.

    Voilla, you've now hidden most of your dev. changes from anyone else using the PC. They just see a VirtualBox install.

    1. Re:VirtualBox by WarJolt · · Score: 1

      Development PCs require a different set of tools for different developers. Even on the same project someone will invariably want to use their own favorite tool. A developer cannot depend on IT or a sys admin to install something that they might need. A virtual machine can allow for custom development environments without affecting other users. Virtual machines will also help when you need to do some testing.

    2. Re:VirtualBox by sproketboy · · Score: 1

      But that's not a Microsoft solution you insensitive clod!

    3. Re:VirtualBox by mlts · · Score: 3, Insightful

      Virtual machines are great for other uses. Malware or corruption? Roll back to a snapshot. Want to see how one's system is at the exact time a 1.0 release gets pushed out? Snapshot time. Fearing that a bad coding error takes the VM out? Snapshot before the run.

      Of course, VMs won't help much if doing hardware development, but with just one PC used by multiple people, VMs are pretty much the only way to go.

      As for VM software, that can be a toss-up. VirtualBox is licensed at no charge, VMWare costs a couple C-notes, and Hyper-V may be present on the box. Hyper-V is nice since it is a type 1 hypervisor (so a second VM runs on the same level as the main machine), but VMWare Workstation has a lot of nice tools (encryption for the disk files, auto-protect for snapshot backups, etc.)

    4. Re: VirtualBox by Anonymous Coward · · Score: 0

      Why use VirtualBox when Hyper-V is already built into the OS? That's like using Firefox instead of the built-in IE or VLC instead of WMP.

      Oh, wait...

    5. Re: VirtualBox by VTBlue · · Score: 1

      Don't use virtualbox if you have to option to use Hyper-V. VM management will be much easier and will debugging any issues.

    6. Re:VirtualBox by Mark+of+the+North · · Score: 1

      Virtualization is great, but compared to containerization it is a real pig. I'm in a similar situation to the OP, and I generally shut down my development VMs before doing graphics work, video editing, or relinquishing the workstation to my sons to play games. This includes idle VMs, which still chew up a fair amount of RAM and CPU. With containers, unless there is a busy process running, I can leave them running without notice.

      Most operations on containers, with the exception of downloading the first image, are fast, like sub-second fast. Operations on VMs are painfully slow by comparison, easily a minute or more. The fact that containers are so lightweight opens up all kinds of uses that would be impossible with VMs, like deploying 40 containers to simulate a large environment, all on a ho-hum workstation. Even if you just use containers like VMs, it means you spend less time waiting and more time working.

      I could mention more advantages, but I already sound like a new Christian.

      For a decent implementation of containers you'll need Linux (LXC, perhaps under Docker) or FreeBSD (jails). And since a container uses the host kernel, you can't run Windows or FreeBSD inside a container on a Linux host. That is still the realm of virtualization.

      To put containers in perspective, here is a good talk.

    7. Re:VirtualBox by RabidReindeer · · Score: 1

      Of course, VMs won't help much if doing hardware development, but with just one PC used by multiple people, VMs are pretty much the only way to go.

      For Windows, maybe.

      Those of us used to other OS's have been able to do that kind of stuff for almost forever, no VM required. Even with more than one person using the machine at the same time.

    8. Re:VirtualBox by mlts · · Score: 1

      Very true. The OP was running Windows, so I handed him a solution along those lines.

      On OS X, there is VirtualBox, Parallels, and VMWare Fusion.

      On Linux, one has VMWare Workstation, VirtualBox, and Xen (Xen being a level 1 hypervisor.)

      *BSD has QEMU.

      Yes, there are alternatives to VMs. Jails and chrooting come to mind. However, in Windows, the OP is pretty much reliant on virtual machines to do what he needs to do.

    9. Re:VirtualBox by RabidReindeer · · Score: 1

      Actually, what I meant was that on mainframes and minicomputers, you'd just login as a different user on a different terminal. You'd have your own home directory and user environment independent of any other user on the system.

      jails and chroots are essentially partial VMs, so I wasn't thinking of them.

      The closest approximation on Windows would be Citrix, but Citrix works best when the apps have been written for multiple concurrent users, which isn't the norm for Windows apps.

  5. Lenovo Tiny with an SSD by Anonymous Coward · · Score: 0

    http://www.amazon.com/s/?ie=UTF8&keywords=lenovo+tiny&tag=googhydr-20&index=aps&hvadid=25726585877&hvpos=1t1&hvexid=&hvnetw=g&hvrand=337053786747876411&hvpone=&hvptwo=&hvqmt=e&hvdev=c&ref=pd_sl_3l2jixlovt_e

  6. I wouldn't worry too much by dreamchaser · · Score: 4, Insightful

    You didn't post your exact specs, but if you're worried about services and are resource constrained, just set them to start manually. When you want to code, start the ones you need (webserver, SQL, etc.). It's a little more work but it's not that bad. You could even script it so that all you'd need to do is run one command script to start or stop the needed services.

  7. Sounds like you answered your own question by achbed · · Score: 1

    If you're that concerned about not affecting other users, then either separate hardware or virtualization is the answer. Whether you virtualize or buy new hardware depends on the level of performance required and what else will be running at the same time. If you want to build in the background and continue to maintain your existing audio suite (wich, as you say, needs to take over all reqources on the machine) then you've answered your own question: buy the separate box that you remote into for your development work. I would note that a lot of the audio editing suites out there do not like it when you install additional products to your system and become more unstable the more you add. This is another vote for separate hardware - keeping stability on your current box (which means more time working and less time debugging the system).

    1. Re:Sounds like you answered your own question by Rob+the+Bold · · Score: 1

      If you're that concerned about not affecting other users, then either separate hardware or virtualization is the answer.

      Exactly. Or even do both: Virtualize first, then throw more hardware at it if/when necessary. Just move the virtual machine to another physical machine as required. Also makes it easy to build and test in multiple versions of multiple distros of multiple OSs. Plus, you can now backup (or even version-control) your whole build environment as easily as saving a single file using whatever method you like.

      --
      I am not a crackpot.
    2. Re:Sounds like you answered your own question by Billly+Gates · · Score: 1

      You can get 16 gigs of ram, AMD 6 core, and ssd system for $800. Virtualbox is free until first paycheck where VMware is better. Sounds like the wife is holding the purse strings or he was unemployed for awhile. Credit card time and pay it off in 3 months. Sorry but things cost money and he and the misses need to suck it up. A dual core tablet won't do what is needed.

      For web work virtualization is required as freaking office!? Clients love IE 6 support and whine about your code if an ancient IE rendering bug pops out.

  8. Use a VM by Anonymous Coward · · Score: 0

    Great reason to use a VM, VMware, Parallels, whatever..

    If you build up a dev system in the VM, it's portable and can be very stable over time (a big plus when you spend a lot of time getting your tool chains all configured).

    1. Re:Use a VM by Wolfrider · · Score: 1

      --Agreed. And if you put the VM's virtual HD on SSD, most of the overhead will be mitigated. Altho I'd store snapshots on spinning HD if it's a small SSD. And definitely BACKUP frequently!

      --
      .
      == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
  9. Native boot virtual machines by Anonymous Coward · · Score: 0

    I use native boot virtual machines - get the benefit of separate os environments and (almost) all the speed of running bare metal (only the disk is virtualized).

  10. I don't get it by jez9999 · · Score: 1

    Why are you sharing a workstation with someone else if you're doing all this stuff on it? With whom are you sharing it? For all my jobs I have had my own workstation and so have any other developers. Are you only coming into work 50% of the time or something?

    1. Re:I don't get it by Anonymous Coward · · Score: 0

      "on my home desktop"

    2. Re: I don't get it by monkeyhybrid · · Score: 1

      The OP mentions this is a home PC, so presumably they share it with family or housemates.

    3. Re:I don't get it by Anonymous Coward · · Score: 0

      Do you only read 50% of the summary or something?

  11. Re:haha what? by pspahn · · Score: 2

    Pretty much this. Not sure who these "other users" are, but if they are children, you're going to regret giving them access to your dev machine.

    Personally, I use a host for a lot of my development. Local development is nice and fast and all, but I find it tends to give developers a false idea of how well their code performs in a live environment.

    --
    Someone flopped a steamer in the gene pool.
  12. Let work provide tools for work by Anonymous Coward · · Score: 1

    Draw the line between personal and work. You can find a diplomatic way to ask for your manager to provide the tools that you need to perform the work that they will ask you to do.
    If work has a test environment, ask for access to that. No test environment? Develop on the system where the site will be hosted. Once that is done, go back to the manager and ask them to budget for the test server (unless they want to deploy test code in production.)

    1. Re:Let work provide tools for work by gabereiser · · Score: 3, Insightful

      This, I'm surprised people are even giving suggestions for him to do work that's "not part of his job description" in his spare time. Don't. Just don't do it. You either get paid to do the work level that your qualified to do or you don't. Don't take on responsibilities that aren't yours. This is a cardinal rule as will only end up in you working yourself to death doing everyone else's job (even if they don't even work there at all). Limit yourself to your job description and leave it at that. If that need a mobile developer, inform them that you would do it gladly but that it would be additional job duties and you should be compensated for it in turn.

    2. Re:Let work provide tools for work by Anonymous Coward · · Score: 1

      Yeah, what a sucker, trying to update his skills (that he doesn't yet have) in advance so he's ready to fill what he sees as an upcoming need in his business and negotiate from a position of strength having already prepared to do the job. But fuck that, it's not in his job description. What a shitty attitude. Not everyone is a do the bare minimum to get by clock puncher. Some people proactively identify problems and solve them. This is a prime skill for success. .

      There's a huge difference between "doing extra work for free" and "learning how to do the work so you can get paid for it". This guy clearly falls into the latter category.

    3. Re:Let work provide tools for work by manicb · · Score: 1

      Welcome to Slashdot 2014: news for professionals, stuff that you're being paid to care about

    4. Re:Let work provide tools for work by m.alessandrini · · Score: 1

      Actaully it does not clearly seem the case, he is writing: I got a new job, and I need to setup my home PC so I can do all this work in my spare time... Quite poorly written to fit your description, isn't it?

    5. Re:Let work provide tools for work by multimediavt · · Score: 1

      This, I'm surprised people are even giving suggestions for him to do work that's "not part of his job description" in his spare time. Don't. Just don't do it. You either get paid to do the work level that your qualified to do or you don't. Don't take on responsibilities that aren't yours. This is a cardinal rule as will only end up in you working yourself to death doing everyone else's job (even if they don't even work there at all). Limit yourself to your job description and leave it at that. If that need a mobile developer, inform them that you would do it gladly but that it would be additional job duties and you should be compensated for it in turn.

      Agreed. My first thought was, "If he is doing this for a new job why aren't they supplying him with a laptop so he can use it at home AND at work?" You know, like a sane company would, or at least one with a clue. If they are expecting you to do this extra work, or if you volunteered, the least they could do is supply you with a portable dev machine. Run. Run away from that company.

    6. Re:Let work provide tools for work by mcmonkey · · Score: 1

      Agreed. My first thought was, "If he is doing this for a new job why aren't they supplying him with a laptop so he can use it at home AND at work?" You know, like a sane company would, or at least one with a clue. If they are expecting you to do this extra work, or if you volunteered, the least they could do is supply you with a portable dev machine. Run. Run away from that company.

      Because he told them he could do all this stuff. He's already committed to be an expert with .Net and MS-SQL and Porterzebbi and whatever else they asked in the interview. That's why he can't ask them for help with training.

      I know it's cliche to complain about Ask /., but this one is really bad. If you can't even figure out how to set up an environment where you can teach yourself programming, you shouldn't be telling other people you know how to program.

      The answers here are mind-numbingly trivial. You don't want your kids to access your pr0n...I mean "work stuff," that what user profiles and permissions are for. Don't want your background services (IIS, SQL, etc) to affect performance when you're not working?

      1) They won't. How old is the hardware you have? Are we talking turn-of-century type old? If you need anything, it'll be RAM. And if you livelihood depends on it, you can't afford to NOT buy more RAM, no matter how poor you are.

      2) Set the services to start manually and create 2 batch files--start_work and stop_work--to start and stop those services with a single command.

      Of course another option is VM. But I'll assume since the OP couldn't figure out 1 and 2 above that configuring and using a VM is way above the skill level we have here.

    7. Re:Let work provide tools for work by gabereiser · · Score: 1

      And this, this is what I was getting at. Surely a company who needs a mobile presence wouldn't just throw the job at some guy because he "says" he can do it, he has to prove it. And no one in their right mind would do this on the side, not get paid, unless they loved to do it. Not for some "chance" to get the job that his job may or may not present to him. The older you get, the more you realize that companies exploit tech-level people because they don't understand what's involved. By us tech-level people explaining REALITY, we will continue to be looked at as someone who can just do whatever the hell they feel like giving to us, no questions asked, and are expected to deliver. If he was hired as a .Net engineer, then was asked to build a Java ESB, clearly any professional would say "I'm not qualified to do so" instead of "Let me learn it in my own time, my spare time, and I'll make it for you for the same amount of money I'm already being paid to be a .Net developer even though I still have that role to fill"

    8. Re:Let work provide tools for work by gabereiser · · Score: 1

      Learning new skills is part of being a programmer, I'm not saying that at all. I'm saying learn these skills when your interested in doing so, not because there's a potential for some project through work and you want to be an asshole and take it on yourself without getting professionals who have been doing it a lot longer than you have involved.

      On the contrary, I implore every programmer to learn new skills, especially ones that are job related, but not a completely separate set of skills so you can be there to catch some project contract that your company may need. Its the same as saying "Hey, I've been a developer for 10 years, let me go learn photoshop so I can do graphic design for marketing because they need someone to do it". That is really poor judgement.

  13. Re:haha what? by Anonymous Coward · · Score: 1

    Woah. Question asked and answered. I vote we close this discussion now.

  14. Simple... Cheap. by Anonymous Coward · · Score: 0

    Two removable drives and a drive bay.

  15. What you should get... by Anonymous Coward · · Score: 0

    ... it's a life.

    Seriously, I know this could be unpopular here on ./ , but I think you are waaaaaayyyy over the top and all over the place...

    Myself, I did all this stuffs, multimedia, audio production, programming and so... I and strongly recommend you to NOT DO ALL AT THE SAME TIME.

    Besides, you should not be sharing a PC by now.

  16. hit up craigslist by Anonymous Coward · · Score: 0

    for 3hundred bucks you can get pretty much anything you will need
    im totally serious
    sharing a box with other users is just going to be a lot of trouble

  17. This is a patented recipe for catastrophe by vikingpower · · Score: 1

    Get a dedicated development box. Quickly. Do it now. You will be heading for serious trouble otherwise. And as another use above said: SEPARATE YOUR CONCERNS. You need at least 2 boxes, then. Really.

    --
    Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
    1. Re:This is a patented recipe for catastrophe by Anonymous Coward · · Score: 0

      What trouble, precisely?

      There's really nothing that special about development.

    2. Re:This is a patented recipe for catastrophe by Anonymous Coward · · Score: 0

      What trouble, precisely?

      There's really nothing that special about development.

      Nothing special, except if it is critical that the development environment works all the time. Development tends to be critical more often than the other tasks you might do on a computer.

      Let's say you are working and developing on the same computer you play games on. Your games run somewhat slow, so you decide to install new graphics card drivers. Oops, something went wrong and now the computer fails to boot properly.* At this point you also get a call from your boss that there's [insert some emergency here] and it has to be solved in the next two hours. Now a second development machine would probably sound like a great idea.

      * Note that you don't have another computer to access the Internet for help, and you might also have a dumbphone so no help there either.

    3. Re:This is a patented recipe for catastrophe by m.alessandrini · · Score: 1

      Nothing special, except if it is critical that the development environment works all the time

      Well, that't true when he's at work, not at home, unless he's supposed to work at home too, and this would make for a good Dilbert link...

  18. Just install it? by SatiricComet · · Score: 1

    I don't get it. Just install the development environment. Having Visual Studio installed is not going to make other applications slower. Just don't run Photoshop, Visual Studio, Reason and Crysis at the same time?

    1. Re:Just install it? by Anonymous Coward · · Score: 0

      Installing SQL Server there'll be services running all of the time, and other frameworks are likely to be similar.

    2. Re:Just install it? by Decker-Mage · · Score: 1

      Sorry, but if there's nothing executing in the background, SQL Server Enterprise will see a 3% hit every three seconds on a dual-core Core 2. Even with largish loads it still doesn't spend much time, or effort, just 'hanging-out.' It's when you put it under strain (heavy transactional loads) that it can chew up your resources. And I sure as heck wouldn't be doing load testing on a dual-core Pentium. Load testing should always be done on the target. Anything else just doesn't make sense. In Real Life engineering.

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
  19. Get another PC by Bearhouse · · Score: 1

    Good luck and congrats on your motivation.
    Now, if you have spare time but no cash, get another job, evenings or weekends, and then buy yourself a decent dev box.
    Or a tablet or laptop for the other people who share the machine.
    If you're space and budget constrained, you can share the screen(s) with a switch box.

    1. Re:Get another PC by PetiePooo · · Score: 0

      This.

      Or what about renting a server? For the RAM requirements you're going to need, you'll likely need more than the entry level offering, but the capital expenses are lower than having to buy a new computer...

    2. Re:Get another PC by Billly+Gates · · Score: 1

      You can get 16 gig of ram for $120. The CPU though is not vm friendly

  20. Vagrant by Anonymous Coward · · Score: 0

    Vagrant is a great tool to keep your work organized on a VM. Spend the time to build a nice Windows VM with your base tools on it, then use it as a template (box in Vagrant terms). Unless you are also working off of crappy hardware you should be able to host the VM on your workstation and have it be fast enough for work use. Write a script to take your base tools image and your source control repo and build out a working development environment in one shot and you now have a consistent and repeatable process that can be handed off to someone in the future, is easily backed up to rebuild on a new workstation or can even be moved to "the cloud" using a different Vagrant provider like VMWare, AWS or Rackspace.

  21. Boot off a second hard disk by Marrow · · Score: 1

    It will also make backups easy since you can clone from one disk to the other.

  22. VMWARE workstation all the way by Billly+Gates · · Score: 1

    I couldn't function without it.

    You need IE 6,7,8,9, and w3c compliant browsers all up. You may need node.js to test something that can conflict with Apache? Problem solved create another VM and don't mess with the other one. Need a domain setup like work to test app? Create a server and client to test etc. I would even go as far as saying no real professional would not use them.

    Now in terms of your computer and conversation with the misses. Get a new one. It is pennywise and dollar dumb without one. It is an asset and not an expense. VMWare is not kind for anything under 4 cores and 8 gigs of ram without an ssd. Well ok maybe 1 vm but you will be using many ancient versions of IE and web servers. Get an AMD as for 1/3 the cost has 6 cores with hardware virtualization that only icore7s have. For the moderators, I am not proselytizing AMD as a fan boy but rather had to get it as 1st Gen icore5's did not support virtualization in the bios.

    1. Re:VMWARE workstation all the way by Anonymous Coward · · Score: 0

      Dude, if you're still developing for IE 6 OR 7 *AT ALL*, you fail at life. Those browsers are dead as a doornail, and all existing users need to get a life and freaking upgrade already. Srsly.

    2. Re:VMWARE workstation all the way by Anonymous Coward · · Score: 0

      Dude, if you're still developing for IE 6 OR 7 *AT ALL*, you fail at life. Those browsers are dead as a doornail, and all existing users need to get a life and freaking upgrade already. Srsly.

      The people paying my bills want something made for old people. My personal project is for corps. Guess which browser they use?

    3. Re:VMWARE workstation all the way by Anonymous Coward · · Score: 0

      He is using Windows 8.1, why both with VMWare? honestly VMWare may be a marginally better product but Hyper-V is in the box and performs extremely well, no need to waste extra precious resources on yet another piece of software.

  23. Lots of services? Why? by Karellen · · Score: 2

    I'll be needing to install all of your basic Microsoft developer suites, IIS, SQl Server, ANdroid SDK, Java SDK, device emulators, etc. etc. Plus AMP and finally GIS software. There will obviously be a lot of services running, long build times, and so on.

    Huh?

    Why will there be "a lot" of services running? Yes, you'll have IIS and SQL server, but that's only two services - and if you've only got a small test database and a couple of dev websites, they'll hardly take any resources at all if you're not actually using them. So, if you're not sat in front of the computer actually doing development, and someone else is logged in instead, it shouldn't really affect them at all. Ditto "long build times" - what sort of things are you planning on writing that are going to take so long to build that you'll have to walk away from the computer for long enough that someone else will want to use it concurrently?

    Visual Studio, the SDKs, and the emulators will put extra entries in other people's start menus, but so what? If they don't run them themselves, they won't do anything or get in the way. Presumably not all these other users run your music production and photo editing software either, and that's not hurting them, is it?

    To wit, I wouldn't be able to use my desktop for my other purposes like the music editing.

    Why on earth not?

    --
    Why doesn't the gene pool have a life guard?
    1. Re:Lots of services? Why? by Anonymous Coward · · Score: 0

      SQL Server alone is 10 services. 5 of them are per-instance, which means that installing multiple instances of SQL Server will add more installations of this same service to your system. The other 5 are shared amongst all installed instances of SQL Server.

      - SQL Full-text Filter Daemon Launcher (Per instance)
      - SQL Server (Per instance)
      - SQL Server Agent (Per instance)
      - SQL Server Analysis Services (Per instance)
      - SQL Server Browser
      - SQL Server Distributed Replay Client
      - SQL Server Distributed Replay Controller
      - SQL Server Integration Services [versioned]
      - SQL Server Reporting Services (Per instance)
      - SQL Server VSS Writer

      This is from a full SQL Server 2012 Developer Edition install on my personal dev box. It brings a 3rd-generation i7 (3770K, non-OC'ed) with 16GB of RAM to its knees upon startup. The other performance killer is Steam. Ever since the Linux version came out, the Windows version insists on running an "installer" every time it starts up. A usable desktop from boot-up can take a good 2-3 minutes on this box, which is just sorta wrong.

    2. Re:Lots of services? Why? by Anonymous Coward · · Score: 0

      The express is fine for learning and is light. Only vss writer.

      For a hardcore developers vm like VMware is nice to run that. My phenom Ii shows its age a little but at least it is the 6 core black edition which helps even at 2.6 GHz.

    3. Re:Lots of services? Why? by Anonymous Coward · · Score: 0

      He said Win 8.1, hence no start menu. :-)

    4. Re:Lots of services? Why? by Karellen · · Score: 1

      SQL Server alone is 10 services.

      *boggle*

      Bloody "enterprise" software! So, install a DB server with a reasonable footprint instead. Like PostgreSQL, or even MySQL. They are available for Windows, you know. Also, if IIS is anything like that, then ditto Apache. If no-one's making any connections to it, Apache will happily sit there in the background using almost no resources.

      5 of them are per-instance, which means that installing multiple instances of SQL Server will add more installations of this same service to your system.

      Why would you install multiple instances of SQL server? What's the point? And where would you install them to? "c:\program files\SQL Server 1", "c:\program files\SQL Server 2", etc...? Or...?

      --
      Why doesn't the gene pool have a life guard?
    5. Re:Lots of services? Why? by Anonymous Coward · · Score: 0

      Just to answer your questions, since this thread is getting old and will soon be forgotten...

      Why would you install multiple instances of SQL server?

      There are a couple of reasons for this that I can think of off the top of my head.

      1) Certain (braindead, poorly-written) off-the-shelf apps "require" their own instance of SQL Server so they can have full access to the [master], [msdb], and other built-in catalogs without exposing other apps to the security holes inherent in doing that. By having separate services, they're kept in their own process memory space, so no memory-surfing hackery can jump into another database instance.

      2) Each instance can be a different version. You might install a 2000, 2005, 2008, 2008 R2, and 2012 instance all on the same machine. These can each be given a separate instance name. The newest one's "common" services will take care of them all, and the per-instance services will be separate from each other, allowing the version-specific features of each one to be used as originally intended.

      And where would you install them to?

      They all install to C:\Program Files\Microsoft SQL Server. From there, each instance generates three separate folders:
      - MSAS[version].[instanceName] - This is the Analysis Services folder.
      - MSRS[version].[instanceName] - This is the Reporting Services folder. IIS actually hosts a site out of a subfolder in here once Reporting Services are set up.
      - MSSQL[version].[instanceName] - This is the main database folder, and a subfolder contains the .mdf (multi-user database file) and .ldf (log database file) files.
      These folders are often moved to a "data" drive, but the path remains the same (aside from the drive letter, of course).
      [version] is the version number of the release of SQL Server. 2005 is "9", 2008 is "10", 2008 R2 is "10_50", 2012 is "11". The next release will be "11_50" if they call it SQL Server 2012 R2, or "12" if they call it SQL Server 2014.

    6. Re:Lots of services? Why? by Karellen · · Score: 1

      By having separate services, they're kept in their own process memory space, so no memory-surfing hackery can jump into another database instance.

      So SQL Server is so badly written that an application - already in a separate process - causing the DB to perform unexpected memory accesses and read/write random memory is an expected exploitable attack? Fuuuuuuuu.....

      You might install a 2000, 2005, 2008, 2008 R2, and 2012 instance all on the same machine.

      Hmmmmm....., I can see how this might be useful on a beefy test server that does automatic builds and regression tests of your entire source tree across your entire range of supported dependencies. I think it's a pretty rare use-case, and probably not that likely to apply to the original poster, but OK.

      each instance generates three separate folders

      The datadir is a (possibly junctioned/redirected) subdirectory of the binary installation directory? That's... interesting. And the pathname includes the SQL server version? Doesn't that make upgrading even more of a pain?

      --
      Why doesn't the gene pool have a life guard?
  24. You've got virtualization by Horshu · · Score: 1

    So just use a virtual machine to set all of this up. Set up a VHD in Hyper-V, install Win8.1 and all of your tools to it, and it affects no one else. Alternatively, you may be able to do cloud-based development, since MS has an internet version of VS as well as a cloud DB and storage, but then you may lose the Android stuff.

  25. ESRI development by Anonymous Coward · · Score: 0

    My advice is to remind your new employer that ESRI recommend using the most powerful Xeon based developer workstations in their system design whitepaper. If you are developing server based code your dev and test environments should match the server operating systems, which you'll need licenses for. Last time I fully licenced ArcGIS Server Enterprise it ran to the tens of thousands per environment. You may need to write a business case for all this but your employer may thank you for it in the long run. The ESRI vendor may be willing to help if they think there is a chance of opportunity in it for them. Good luck!

  26. so I can do all this in my spare time by kcitren · · Score: 1

    Stop right there. If this is what your company is going to pay you to do, let them pay you to do it. Also, let them provide the tools you need to do the work. A powerful laptop can handle what you're trying to do.

    1. Re:so I can do all this in my spare time by Anonymous Coward · · Score: 0

      RTFS. They will need things down the road. They're not paying anyone for it right now. Submitter wants to get his skills up to speed now so he can be the guy that gets paid for it when it's needed.

    2. Re:so I can do all this in my spare time by kcitren · · Score: 1

      They will need things down the road. They're not paying anyone for it right now. Submitter wants to get his skills up to speed now so he can be the guy that gets paid for it when it's needed.

      Nope, he says he needs these for his job as it stands:

      I need to learn .NET and SQL for my new job (GIS tech using ESRI software)

      He mentions wanting to learn other things for additional work down the line.

      Down the road they need a PHP website, tons of automation tasks, some serious data consolidation, they want mobile apps in theory.

    3. Re:so I can do all this in my spare time by Anonymous Coward · · Score: 0

      Sentences do not exist in a vacuum. Yes, he needs to learn things for his job, but the primary reason he needs to set up a home development environment is to do the future things that are "not in his job description". In fact most of the things he listed are useful only for said future things.

      "Down the road they need a PHP website, tons of automation tasks, some serious data consolidation, they want mobile apps in theory. This is not my job description, but I'm sure I can do it. Long story short, I need to setup a development environment on my home desktop, so I can do all this in my spare time. "

  27. Virtual Machine by Anonymous Coward · · Score: 0

    Spin up a Virtual Machine. It is already built into 8.1, you just have to enable it. When you are not using it, shut it down. It won't impact anyone else or your other projects if you turn it off. Also by putting it into a VM, you can protect it from everyone else in your family. If you are just getting started with this stuff, I would not expect the built time to be that long. So it only has to be running when you are developing.

    If you don't want to use Hyper-V, there are other options out there. I think you are looking directly at this option, you just have to fire it up. If you run low on disk space, then get a second drive. If you are tight on ram, then get more ram. It really does give you a lot of options.

  28. Subsidizing your employer by radarskiy · · Score: 1

    "I need to setup a development environment on my home desktop"

    No.

    If you are doing it for work then your employer supplies the equipment. Maybe if it is convenient for *you* then some might add something for their personal equipment, e.g. I get my work calendar on my personal phone since it is more convenient for me to see it there than on my employer-supplied computer and the overhead is low. Since you have demonstrated how inconvenient it is to do it on your own equipment, you've proven that it is incorrect to use your own equipment.

    1. Re:Subsidizing your employer by Billly+Gates · · Score: 1

      If he is not specifically working at home but needs to learn it, well good luck with that.

      Just put the money down and tell yourself it is an important investment. A now n hardware accelerated dual core can't run the several VMs required. But the return means steady employment.

    2. Re:Subsidizing your employer by Anonymous Coward · · Score: 0

      Read the summary. His employer will need these things "down the road". This guy wants to develop his skills to be able to do those things once they're needed, presumably so he can be the guy getting paid to do them instead of someone else. He's not doing this for his employer (yet). He's doing it to improve his own skills and bargaining power.

    3. Re:Subsidizing your employer by radarskiy · · Score: 1

      Then learn it in the employer's equipment at the workplace.

    4. Re:Subsidizing your employer by multimediavt · · Score: 1

      "I need to setup a development environment on my home desktop"

      No.

      If you are doing it for work then your employer supplies the equipment. Maybe if it is convenient for *you* then some might add something for their personal equipment, e.g. I get my work calendar on my personal phone since it is more convenient for me to see it there than on my employer-supplied computer and the overhead is low. Since you have demonstrated how inconvenient it is to do it on your own equipment, you've proven that it is incorrect to use your own equipment.

      I would go further and say no on the grounds that it directly benefits the company and that they should supply the dev machine and pay any software costs. That's how unexploitive companies work, anyway.

  29. Don't get too complicated .... by steppin_razor_LA · · Score: 1

    Install Visual Studio.. it has its own built in web server. You can use SQL express. If you are really worried about system resources, manually start/stop SQL server only when you are developing

    --
    Evolution: love it or leave it
  30. Cheaping out. by westlake · · Score: 3, Insightful
    Do yourself a favor and buy a PC that is all your own.

    Work product on a shared home PC? Multiple users? The most brain-dead idea ever posted to Slashdot.

  31. Think long and hard about this by redmid17 · · Score: 1

    Like some of the other commenters, I would really, really think about it before you went down that road. Doing stuff for free is rarely a good idea long term, even if it's "simple" like being the family tech support. If you do go down that path, troll around on craigslist for a cheap C2D SFF desktop. I don't know where you are, but you can find them for around $50 here in Chicago. Maybe throw in a larger HD or some more RAM but that is plenty to run all the development stuff you want. You're not going to get the fastest build times, but it's plenty powerful enough to do what you need. It's also going to be small enough to stick next to or on top of your current workstation. Getting a KVM is probably a good idea as well.

  32. why? by BlackHawk-666 · · Score: 1

    If your current hardware is so crap that it can't run IIS and a SQL instance on idle without causing your recordings to buffer under run, then you really should throw that old Pentium II out and buy a current gen PC.

    You're not going to be doing a rebuild all on 1,000,000s of lines of code while working with your DAW, so it's not even an issue.

    As for background processes...I have 158 of them running right now and the only two who are above 0% utilisation are the system idle process and IAStorDataMgrSvc, which is probably running some long stupid windows task just at this time. Neither SQL nor IIS ever appear above 0% unless I am actually requesting web pages off them that have database queries at the time.

    Finally, the sort of web development that is done with PHP has zero compile time and anything done with Java should happen so fast you barely even notice it.

    I'm currently working on a project using the CryDev FreeSDK, which means I am working with about 300,000 lines of code, a huge amount of which are header files. A full compile of all of that takes about 10 minutes. Incremental compiles are done in seconds.

    It's a storm in a tea cup, just get the tools and try it out before you worry about virtualisation or any extra crap you don't need. If it doesn't work you can uninstall them quickly enough. I typically run Photoshop, Mudbox, 3DS Max, World machine, CryFreeSDK Editor, CryFreeSDK runtime (1+), VS 2012 (up to 3 copies at once), and a host of other software - all without skipping a beat.

    Just make sure your machine has 8GB+ RAM and fast hard drives. Any decent developer machine is going to handle far far more work without dropping frames than you are expecting.

    As for users, make sure they don't have admin access. They shouldn't be able to do anything at all to your work if you don't give them admin on the machine.

    --
    All those moments will be lost in time, like tears in rain.
  33. Re:haha what? by icebike · · Score: 2

    Pretty much this. Not sure who these "other users" are, but if they are children, you're going to regret giving them access to your dev machine

    Wait, has windows 8.1 slipped so far in the security department that you can't isolate one user from another?
    Windows professionals tell me all the time that windows can be protected and locked down just as tightly as Linux. (I don't necessarily believe this, but they get paid the big bucks to do this in their day jobs).

    Normal account control features should provide all the protection you need if used correctly. Children should have a limited account, obviously, but permissions should keep any unauthorized users out of protected areas aren't new, unless someone is saying they have been deleted from windows 8.1. (In which case a swift downgrade to Windows 7 might be in order).

    A big thumb drive for backups might be in order, obviously, but Windows should be able to provide enough protection for a self study project.

    --
    Sig Battery depleted. Reverting to safe mode.
  34. PC by marc252 · · Score: 0

    doesn't PC stand for Personal Computer? I wonder why.

  35. You lose by Anonymous Coward · · Score: 0

    "Trouble is, I share the machine (Win 8.1, 2.7 dual core pentium something or other, with virtualization support.) I want to avoid affecting the other users profiles."

    You want to do technical shit and you don't know your technical shit.

    Don't pass go, don't collect shit.

  36. Qualifications by Anonymous Coward · · Score: 0

    If you can't figure this out on your own perhaps you have no business developing software.

  37. Or boot straight to the virtual machine by Anonymous Coward · · Score: 0

    http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx

    It may be worthwhile encrypting the OS within the virtual machine with TrueCrypt or similar (install the OS, then install TrueCrypt in it, it's very straightforward.)

  38. Take up knitting instead ... by Anonymous Coward · · Score: 0

    Your thinking is not adequate for programming. You are too confused.

  39. Buy a rack server by Anonymous Coward · · Score: 0

    Running all that on a desktop PC with loads of other stuff already installed will be a pemanent trip to purgatory.

    Having said that, if you even manage to get even half of what you are proposing running on a Windows 8.1 machine, you will have a lucrative new career as a consultant available to you. The lack of anything when googling should have told you that.

    However, your wishlist is such a bizarre alphabet soup of available tech that I'm not sure that there is a clear goal here. And if your employer isn't willing to pay for you to learn and implement this, get specialised and properly experienced in a much smaller subset of this stuff and find a new employer.

  40. Re:haha what? by Anonymous Coward · · Score: 0

    The problem is that when you start installing dev tools, you end up with system services installed.

    If you're using a computer for any significant music production you should probably make sure that it's only used for that. You don't want some bullshit printer driver or Java trying to run an update while you're recording & ruining the take.

  41. Buy some RAM. There, you're done by msobkow · · Score: 1

    When idle and not receiving requests, tools like web servers and databases consume virtually no CPU on a Windows box.

    You can even game on a box that's running a PHP server and a database engine or few, provided you have enough RAM to prevent thrashing and swapping.

    You don't need to futz around with virtual environments or any of the rest of it. After the installers place their icons on all the accounts, just remove them from the desktops where you don't need those tools. Or ignore the extra icons -- they won't hurt anything just sitting there.

    My Windows boxen have been multi-purpose for years, including audio encoding, video editing/transcoding, gaming, and software development. I've never had a problem, provided they had enough RAM.

    --
    I do not fail; I succeed at finding out what does not work.
  42. Isn't this what multiple users are for? by hawguy · · Score: 1

    Isn't this type of thing exactly why modern operating systems have multiple users? You install as much software for your user as you want to, and when your wife logs on with her user account to do music editing or whatever, she doesn't see any of your development tools at all.

    I run a LAMP environment + PostgreSQL + Java (Eclipse, Tomcat, Android JDK, etc) on a 6 year old desktop computer with 5GB of RAM and it runs just fine - sure, there are several backup services running (databases, tomcat, webservers), but they run in the background and don't keep me from getting work done.

    When my wife and I were sharing the same desktop computer, I ran a second X server, so she could hit a hotkey to switch over to her desktop without affecting anything on my desktop. Now she uses a Tablet for everything she used to do on the desktop, so I'm the only user.

  43. Re:haha what? by Anonymous Coward · · Score: 0

    Wait, has windows 8.1 slipped so far in the security department that you can't isolate one user from another?

    No. 8.1 continues with the NT-based windows concept of user account separation and has virtually (if not exactly) the same user separation as windows 7

    I don't know how you even read it as a windows 8.1 problem either. I think the implication in parent comment was that children can wreck things in general.

  44. virtualize by smash · · Score: 1

    It's a no brainer. You'll want a development environment, and ideally a replica of the environment your app will be running on in production. You'll want to keep these environments clean of other crap that is not related to avoid introducing dependencies on stuff not in your production environment and to simplify troubleshooting.

    VMs also give you all the benefits of being able to roll back to prior snapshots to help develop/test an upgrade procedure for new versions of your software.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  45. What are the specs on the mini-pc by Anonymous Coward · · Score: 0

    To the OP what are the specs on the mini-pc as that might solve your issues.

  46. Re:haha what? by icebike · · Score: 1

    I don't read it as a windows 8 problem.

    The people I was responding to seem to think you need all separate hardware.
    No way that should be necessary, with any modern hardware if the user understands how to manage the system properly. .

    --
    Sig Battery depleted. Reverting to safe mode.
  47. Visual Studio Online by Christopher_G_Lewis · · Score: 1

    I'd start with Visual Studio Online (http://www.visualstudio.com/products/visual-studio-online-overview-vs) - five user free basic version. Get your coding skills up to date, then work on a new rig.

  48. Re:haha what? by icebike · · Score: 1

    If that's a problem, you haven't got enough computer for EITHER task.
    Watch your processor utilization while messing with music. Its loafing.

    Its just not a problem with modern multi-processor hardware.
     

    --
    Sig Battery depleted. Reverting to safe mode.
  49. MISSION IMPOSSIBLE by Anonymous Coward · · Score: 0

    GIS?
    ESRI?
    PHP?
    Shared Workstation[?] ? A Win 8.1???? IS NOT A WORKSTATION!!!!!

    Likely not a real post.

    But if I were and I would never be bought into such a situation as this, I would sponge the "Company" for at least 3 months (farming my cv out) of salary and claim an injury then bail, on a junket to a convention. But hay this is not a real post so I can .. indulge.

    Ha ha

  50. crap shared environment by Anonymous Coward · · Score: 0

    M$ is crap for a shared environment, you are in for some pain no matter how you slice it.

  51. go virtual on a dedicated box by D1G1T · · Score: 2

    Once you get used to working virtualized with remote desktop access you'll never go back. Fire up a new "machine" for every work-profile. You can tune the number of processors and memory per VM so that big compile or video render won't step on something that needs to be interactive. After seeing http://www.virtuallyghetto.com/p/apple-mac-mini-resources.html I went out and grabbed a mac mini and a thunderbolt ethernet adapter (for dual ports), and downloaded the free vmware esxi package. It makes everything very easy.

    1. Re:go virtual on a dedicated box by Anonymous Coward · · Score: 0

      I wouldn't recommend virtualization for MIDI and Audio production. Even a slight increase in timing delays screws up latency.

  52. VMs... by Anonymous Coward · · Score: 0

    Every project should bare it's own machine.. or better yet, VM.

  53. GIS Project by hackus · · Score: 1

    Why in this day and age, would you pay or even BOTHER with those toolsets when you can almost certainly design and build such a system for far less, and better technology (Eclipse, PostGRES, LINUX, ANDROID) using far less hardware?

    The GIS extensions in Java and PostGRES are fab.

    You can check that out at:

    http://www.postgresql.org/about/news/1387/

    -Hackus

    --
    Got Geometrodynamics? Awe, too hard to figure out? Too bad.
  54. Windows 8.1? by Anonymous Coward · · Score: 0

    I'm kinda disappointed. I was under the impression that businesses were avoiding Win 8.1 out of disgust. The last thing we need is to give creditability to Microsoft's current design trend.

  55. WTF is this garbage? by Anonymous Coward · · Score: 0

    If this guy doesn't know how to use a computer, how is he a developer?

    1. Re:WTF is this garbage? by Zmobie · · Score: 1

      You would be very surprised with that. I've actually known 2 or 3 software devs that had very minimal IT related skills, but they were fairly competent developers (wrote better code than some of the jackasses that thought they were amazing because they spout off how to do cisco console commands...).

    2. Re:WTF is this garbage? by Anonymous Coward · · Score: 0

      About half of the developpers are in the same situations...

  56. Dual boot OS, not virtualization... by bayankaran · · Score: 1

    I share the machine (Win 8.1, 2.7 dual core pentium something or other...

    Do not go the Virtualbox/virtual OS path. Even if you have a good amount of RAM, your machine is not fast enough to seamlessly run two operating systems side by side, and use it for serious development.
    Partition the HDD and install the OS in the new partition, and install the apps/servers/IDEs.
    Do you have an SSD? if not buy a 64 GB cheap SSD...its worth the upgrade and install the OS/apps/IDE on the SSD.

    --
    Tat Tvam Asi
  57. Re:haha what? by dbIII · · Score: 1

    Wait, has windows 8.1 slipped so far in the security department that you can't isolate one user from another

    Assuming different library paths etc, then not easily.
    Sadly, the CP/M I was using on a toy computer at school in 1985 had better user separation than modern MS Windows.

  58. Re:haha what? by fisted · · Score: 1

    Wait, has windows 8.1 slipped so far in the security department that you can't isolate one user from another?

    slipped? has windows /ever/ been there?

  59. Re:Use IIS Express, SQL Server LocalDB, Visual Stu by SQLGuru · · Score: 1

    As a consultant, I run a new VM for each client. This ensures that the software I install for one client (including licensed software) doesn't interfere with any of the software for another client. You should be able to do the same with your development environment at home. Virtual Box works well. I currently use Hyper-V on my Windows 8.1 machine. Whichever you prefer should do. If the machine is shut down, it doesn't really consume any resources.

  60. Huh? Idle Services take zero resources by Blakey+Rat · · Score: 1

    If SQL Server isn't being used (no connections), the OS'll just swap it out and there's no wastage. Ditto all the other things you mentioned. If you're going to be writing software, maybe you should learn the old adage about premature optimization.

    My advice is:
    1) Install everything you need
    2) See if a problem actually occurs
    3) It won't so stop worrying

  61. used laptop by Anonymous Coward · · Score: 0

    A rather decent used laptop can be had off of eBay for under $200. Separate work and personal machines is a good way to go. Also, ask your accountant if such an expense could be tax deductible, since it is related to job education.

  62. Too stupid to be a developer by Anonymous Coward · · Score: 0

    If you have to ask a question like this, you are too stupid to think on your own and to write or develop any kind of a system.

  63. New Hard Drive and Install by Zmobie · · Score: 1

    Assuming the parameters here are that you don't want to buy a whole new PC outright, I recommend getting another hard drive and installing a fresh windows copy to it. Mask it from the other installation entirely so no one messes with it, and if someone asks just tell them its for work and take reasonable security measures (if you can, disk level encryption would probably be good here with your standard account passwords etc.).

    Considering the specs of the PC you probably don't want to try and run VMs for a lot of application development because it is much too resource intensive and if you can help it, you want all resources devoted to the actual development environment (I only run VMs if we need a standard environment for an entire team to test against). Plus it can be a pain in the ass in general running everything in a VM.

    The reason I would say you want a split install, in my experience, you will run a development machine IN TO THE GROUND doing heavy .NET and SQL development. My work laptop has the most jacked up OS settings now because I have to do a number of things in order to test new code correctly. This also has the added benefit of now the other users are not affected by the weird settings you WILL have to configure for development, and they won't inadvertently change some of your settings and not remember what they did (screwing up your known good state). It does make it a little more tedious have to go through a boot menu every time you start up, but worth it considering you have to share the machine and this is making money for you. Soon as you can get the money, I would invest in a new machine entirely and just port your hard drive into that (there are some weird windows commands that let you do this without having to do a clean install, I've done it a couple of times, you should be able to Google it).

    Beyond that, good luck, .NET isn't too bad to catch up on and can actually be surprisingly nice for business level application development.

    1. Re:New Hard Drive and Install by Zmobie · · Score: 1

      As a note here too, to save yourself some money you can probably use the same windows license to do the other install (assuming it isn't OEM) and get around a lot of the validation problems. Since the two installations physically can't run at the same time you should never have to worry about validation issues and I believe you are still within the end users rights since you are using the license on the same machine. Now when you get money and upgrade your set up to be another computer, you will need to update the license from a legal stand point at least.

  64. Re:Use IIS Express, SQL Server LocalDB, Visual Stu by xyourfacekillerx · · Score: 1

    They don't take up resources when they're not running...

    Well, ... now I know...

  65. Re:Dev Machine of the Future by Anonymous Coward · · Score: 0

    ARM Board...

  66. Re: Use IIS Express, SQL Server LocalDB, Visual St by VTBlue · · Score: 3, Interesting

    I agree with this. Hyper-V on windows 8.1 is the way to go for dev environment if you need desktop class OS. If you can get a dev license for Windows Server 2008 or 2012, it will be fine also and help you later on in the configuration management as you approach production level code.

    Either way you should absolutely virtualize and learn how to use Fixed Differencing VMs (base workstation host + base virtual machine + differenced VM). Once you get a baseline virtual machine set up, you make it read-only and have all future modifications go to the differenced VM. This way if you ever need to start over or spin up a duplicate environment using different configuration, you can start a new differenced image or just delete the existing diff image.

  67. Re: Use IIS Express, SQL Server LocalDB, Visual St by VTBlue · · Score: 1

    I'm not sure that this is true. In the default installation the services are configured to run. I could be mistaken though.

    Either way don't install IIS or SQL Server on the host OS, install only on the virtual machine.

  68. Re:haha what? by xyourfacekillerx · · Score: 1

    The problem is that when you start installing dev tools, you end up with system services installed.

    If you're using a computer for any significant music production you should probably make sure that it's only used for that. You don't want some bullshit printer driver or Java trying to run an update while you're recording & ruining the take.

    Right. Getting the machine set up for music production was enough trouble the first time around.

  69. Be a professional by BurfCurse · · Score: 1

    And by another computer.

  70. Re:New Hard Drive and Install (Solved) by xyourfacekillerx · · Score: 1

    Well, parent was about the best post I read. Confirmed my doubts about not splitting up the installations... I guess this is my best option at this moment in time, so here we go. Thanks Slashdot, thanks Zmobie.

  71. Re:haha what? by Tablizer · · Score: 2

    buy another computer

    Seconded. Safer and easier to have a dedicated workstation. Sometimes you have to "invest" in your career.

    I've purchased RAM, communications software, chair mats, thumb (flash) drives, etc. for work to keep things smooth that otherwise were difficult to get procured for various reasons.

  72. Re: Use IIS Express, SQL Server LocalDB, Visual St by Anonymous Coward · · Score: 1

    Of course you could just go into the control panel and point-and-click until the services aren't running by default. But perhaps that's beyond the skills of the average slashdotter.

  73. GIS and .NET by KinkyClown · · Score: 1

    Strange how nobody picked up the more troubling notes from the question. GIS development and .NET do not really mix that well. If the company (and you) are serious about GIS (or it is a large component) consider switching to Python or Java, or be at the (not so merciful and closed sourced) hands of ESRI. I have been developing a extremely large .NET application suite for the Dutch government for the last 5 years. It is still not working. Problems are the use of Oracle and .NET (Oracle being the biggest problem).
    Tooling needed for GIS jobs works with Linux and other open source tooling. Consider PostgreSQL with PostGIS and GeoTools, GeoServer and GDAL/OGR. It's for your own sanity...

  74. Re:haha what? by Immerman · · Score: 1

    Well, depending on the age and responsibility of the children you may well wish to consider separate hardware. Locking down user accounts is relatively easy on any modern OS, but it doesn't do anything to protect from orange juice in the power supply or a head crash from knocking the computer onto the floor.

    --
    --- Most topics have many sides worth arguing, allow me to take one opposite you.
  75. What's the bottleneck? by Fencepost · · Score: 1

    I see a variety of suggestions of getting another PC, but if your physically at the machine usage and other peoples' won't overlap, just get more memory and a second hard drive. Run VMs stored on that second drive - odds are good that you're not really CPU-bound these days unless there's some serious gaming going on.

    --
    fencepost
    just a little off
  76. Re: Use IIS Express, SQL Server LocalDB, Visual St by Anonymous Coward · · Score: 0

    In the default installation the services are configured to run

    Let's learn about about some of the products I was referring to...

    It doesn't run as a service

    LocalDB doesn't create any database services; LocalDB processes are started and stopped automatically when needed

  77. Poor questions! by m.alessandrini · · Score: 1

    I want to avoid affecting the other users profiles

    By definition different profiles exist to not affect each other.

    I wouldn't be able to use my desktop for my other purposes like the music editing

    Why? I'll assume you're talking about hardware limits.

    Would it help to set up all these tools under a different account on the same Win 8.1 install? Or should I virtualize my development environment (and how?)

    Here it seems like you think that adding another user or a VM would magically double your hardware resources.

    I hope you poorly wrote your post, or you'd better figure out those basic things before you want to be a programmer!

    1. Re:Poor questions! by m.alessandrini · · Score: 1

      This, and: why the hell should you do all this work in your spare time?

    2. Re:Poor questions! by m.alessandrini · · Score: 1
      Sorry it's always me, but this post keeps surprising me:

      I've done a lot of googling the last week and haven't turned up anything

      Seriously???

  78. Looks like you've had a few suggestions by Big+Hairy+Ian · · Score: 1

    Can I suggest you activate the Hyper-V Role in W8.1 and create a virtual machine for your dev work. Can I also suggest you take a look at Visual Studio Online (visualstudio.com) as a good free version control system.

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  79. "they want mobile apps in theory" by Anonymous Coward · · Score: 0

    Heh, they want mobile apps in theory - until they realize (1) you have to develop a mobile app from scratch on several platforms (or use a yucky cross-platform toolkit), (2) write the back-end service interfaces for your existing company business logic, (3) pay a mobile developer... then it's not so important any longer. The boss just wants to whip out his iPhone and show people a cool app, and has no idea it is a full development project!

  80. Umm... by Anonymous Coward · · Score: 0

    ...why would you do work for your employer in your spare time?

  81. Re: Use IIS Express, SQL Server LocalDB, Visual St by msim · · Score: 1

    This is a quite clever answer. Thankyou. I'm not the asker (obviously) but still found this answer quite educational, especially when I read up on it a bit more afterwards. I'm surprised I hadn't heard of these kinds of vm's before.

    --

    Life is like a box of chocolates, you never know when your gonna get food poisoning.
  82. Re: haha what? by kenh · · Score: 2

    I just picked up a nice Dell desktop at their off-lease store http://dfsdirectsales.com/ that could easily handle your development work. It is an Optiplex 790 desktop with anIvy Bridge i5 CPU (i5-2400), mfg says it supports 16 Gigs of RAM (web reports show it can take 32 gigs), has a single HD bay and with a coupon it was just about $250 with 2 Gigs RAM and a small HD (80-160 Gig) shipped.

    This is a quad-core CPU, and for an OS I'd suggest looking into the various MS offering to get you a single-use OS license for the software you need (like dreamspark, biz spark, etc.). You can run Win 8.1 Hyper-V or Windows Server 2012 Hyper-V on this type of machine, whichever you have a license for...

    --
    Ken
  83. Re:haha what? by msim · · Score: 1

    The answer I would have gone with is if you wanted to keep the same desk was to use a KVM and have things separated. Others suggested Clever VM ideas which I think are pretty neat. However you're right. There's no separation of systems in case things go to crap on one and you need to use another pc as a plan-b or you need to quickly interrupt your recording session to do something on the Dev environment for whatever reason (say you received an inane phone call at 9 at night from someone you've been waiting all week to hear from, etc)..

    In any case there has to be some form of partitioning between the systems, be it physical or logical. One system configured to do all will find more limits than dedicated equipment/systems for each specific task

    --

    Life is like a box of chocolates, you never know when your gonna get food poisoning.
  84. Re: haha what? by kenh · · Score: 1

    CP/M with user accounts?

    --
    Ken
  85. VirtualBox it by CppDeveloper · · Score: 1

    Just install Oracle VM VirtualBox and create a virtual machine. The development tools and build times will probably not be as big a resource / time hog as you think.

  86. VM devel environment with a few tips by PseudoCoder · · Score: 1

    I wanted to setup my devel environment exactly once and use it on my home desktop, my travel laptop and be able to hand it off to my development partner and have him use the exact same environment.

    Assuming both workstations are adequate resource-wise (RAM, CPU) to host a VM that runs all your devel tools then an external HDD with a VM disk works pretty well in my experience. I setup my repo on the HDD and I can clone the whole HDD and put a copy in my fire safe with my other drives.

    I'd get a USB 3.0 or another fast link that both stations support. And get a big enough disk to host a big enough virtual disk file to make it static. The dynamic virtual disk file seems to slow the VM down too much. And remember that you have to keep enough padding for temp files for things like program setups, etc.

    I like Virtual Box's networking and host/guest sharing options. I setup a host only link to connect to my remote repo to keep another backup of the repo.

    My 2 cents...

    --
    "Now, I doubt any of you would prefer a rolled up newspaper as a weapon against a dictator or a criminal intruder."
  87. Boot from VHD by breid7718 · · Score: 1

    I actually have several installs on my laptop booting with this method.

  88. My answers to your questions by Anonymous Coward · · Score: 0

    Would it help to set up all these tools under a different account on the same Win 8.1 install?

    No, I wouldn't do that if you're having problems with concurrent users.

    Or should I virtualize my development environment (and how?), and run the virtual machine side by side?

    Probably the best idea. Download Virtualbox for free and use your Windows 8 install media to put a fresh version of the OS on it. Start it up when you need to do your development work, close it down when you're done.

    Or should I add a HDD or secondary partition and boot to that when I intend to develop?

    You may eventually choose to go this route, but since the previous option is cheaper and easier, try out Virtualbox first, and then decide if you need to run a bootloader.

    I am poor ATM, but is there a cheap very mini PC I can place next to my desktop and run all my development software off that, remote desktop into it?

    I would recommend this over the previous suggestion. There are many cheap PCs that will do the job, but your best bet is Craigslist. I do not recommend using a remote desktop service to get into it, but attach a physical keyboard and mouse to it so you can use it locally. That way, you're not lagged by the network. Additionally, you have the option of putting the work computer in a different room than the photo editing computer, and multiple users can work at the same time.

    I've done a lot of googling the last week and haven't turned up anything, so I turn to Slashdot. Please help me get organized so I can start coding again."

    Hopefully this helps you. Good luck, buddy.

  89. Why take a performance hit? by Anonymous Coward · · Score: 0

    Use gparted to shorten the Window 8.1 partition and dual boot. You can setup grub to only show up on key press; this means it will essentially be hidden from those who do not know how to find that hotkey. I find this a very effective solution for said issue. I have done the same thing with my family computer

  90. Anyone that does dev knows to separate the environ by Anonymous Coward · · Score: 0

    Everyone will use a virtual machine of some sort of they are sharing a physical box among clients or people. I virtual everything simply because I can backup the entire vm or move it to another box if I need. If you cant afford this, you are probably a shitty, out-of-work dev. Linus with Virtual Box or Windows with VirtualBox/Hyper-V. No one in their right mind dumps everything on the same OS and separate it by user profiles as you imply, so go fuck yourself you nit-wit.

  91. Yes, and stuff always goes wrong when you try to c by Anonymous Coward · · Score: 0

    Yes, and stuff always goes wrong when you try to change something. And you always change something. Even if you know you should not. Then you are screwed. And then there is the deadline. And the deadline just got shortened. And they added a new feature.

  92. Define your requirements more precisely. by mazda_corolla · · Score: 1

    Are you really looking for environment separation? Or is it performance that's the concern?
    i.e. You talk about "... a lot of services running, long build times, and so on. To wit, I wouldn't be able to use my desktop for my other purposes like the music editing".

    So, if what you are trying to ask is: "how can I do two resource-intensive tasks (e.g. music editing/photoshop + development builds) at the same time without affecting each other on the same box?"

    The answer is: you can't. Running virtual machines won't help you. In fact, it will make it worse. Creating virtual machines, or new user accounts doesn't add anymore 'horsepower' to your computer - it just helps you slice up what you already have. The only option is either live with the slowness, or buy new hardware.

    If, however, what you want is truly 'environment isolation', then yes, virtual machines could help you.
    i.e. the other users of the computer have private financial information stored on the computer, and you are worried that installing IIS will accidentally make it available to the universe
    -or-
    you think you are going to be installing / uninstalling a lot of software, monkeying with what services are running, etc. as part of your development, and you don't want that to screw up other folks' software ... then yes, a virtual machine will provide complete isolation, at the cost of some performance. It will help if you have a 64-bit OS, and a lot of memory (more than 4 GB).

    At some point, you could consider using a 'hosted' machine, like Amazon's upcoming 'workspaces' offering ( http://aws.amazon.com/workspaces/ ) but it's only in beta right now.

    Consider that you can be a new desktop/laptop for $200-$300 ..

  93. Re: haha what? by dbIII · · Score: 1

    Microbee has it, which was a nice feature in schools.
    A few others had it too.
    Some time back the writer Piers Anthony wrote a long afterword in one of his novels about the joys of writing on a shared home computer with CP/M keeping his writing stuff separate from other stuff.

  94. Railroaded by intense technical discussion... by aaronb1138 · · Score: 2

    I can't be the only one who noticed a few things that seem amiss with the premise.

    a) This guy has taken a new job and intends to take home an entirely unrelated project to do on his own.

    b) He's not asking his workplace to provision resources for him to do this out of job scope project. Sounds like he hasn't consulted with anyone about taking on this task.

    c) He claims to have the skillset to easily solve their website / application needs, but hasn't been successful enough professionally to purchase reasonable tools for his trade. Even car mechanics in the $18-25k / year range (essentially poverty) manage to save and invest appropriately in quality tools.

    d) He's doing an Ask /. for a question trivially answerable by Google or any modern best practices for development guide.

    e) Many of the tools he will more than likely be pirating are each worth more than the general requirements he has for this endeavor as far as hardware goes. Will his employer be alright with this?

    f) Oh, I see, he's into music production (Reason). Ignore all of my other issues. Sorry, but his request for assistance falls awfully well into certain stereotypes which explain everything.