Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I've started developing with Delphi on the Mac and thought I would share my observations and see if anyone else had any advice or tips for Mac development with Delphi.
A while back I had some comment discussion about Delphi development on a Mac. It was in the comments of an answer to another question. With the passing of some months, I thought it might be worth writing up a quick summary for anyone thinking about switching VM host.
Overall OS X + VMware makes a very nice development platform for making Delphi apps.
Platform
MacBook Pro 17" 2.93GHz Core 2 Duo. OS X Leopard
VMware Fusion 2.0.5
Vista + Delphi 2007
Observations
moving an existing PC development environment is straight forward. VMware
can build a VM from a physical PC, or as I did, build it from a TrueImage backup. Existing host VMS's can just be copied across.
there is obviously a performance hit using a VM, but it's not really that noticeable. I'd say speed is at least as fast as my previous HP 2.1GHz Core 2 Duo
get plenty of RAM. 4GB or 8 if you can afford it. 4GB is quite usable
Delphi building a fair-sized app goes fine in a 1.5GB VM
allocate only 1 core to the VM - it's faster
use a virtual hard drive for the guest OS. It's much faster than running the guest from a BootCamp partition
the MBP has two video subsystems, NVidia 9400M and 9600M GT. Using the faster 9600M gives a much smoother experience when VMware is running
VMware Fusion doesn't have the WDDM driver needed to enable Aero. If your app has Aero features you want to test, you'll need to make a separate BootCamp Windows installation to try out the Aero features
the ctrl key vs command key of Windows and OS X will probably be quite annoying with the default settings. VMware let's you control key mappings, so you can set it so the Win vs Mac differences are minimised. You'll probably also want to tweak the keyboard and mouse settings in System Preferences
the Mac function keys (Expose etc) conflict step on the Delphi. The Mac function keys can be disabled in the VMware preferences.
if you are using a MBP, there are no PgUp, PgDn, Home and End keys. Apple got a bit too minimalist here. You get these keys using Fn or Cmd modifiers. There are irritating inconsistencies between some apps
two-finger scrolling on the MBP trackpad is a thing of beauty
if you don't have multiple monitors, putting Windows full-screen in a Space works pretty well
if you use Time Machine for backups, it will backup the entire VM (unless you have it broken into smaller files). You can make this more manageable by creating a snapshot. Time Machine will then only backup the much smaller change file. That file will gradually grow - delete the snapshot and make a new one (doing a backup first, of course :-)
Mac is a nice user experience, but it's not magic - they have their wtf moments too
What are you Delphi Development with Mac tips and advice? Thanks!
You can also try wxForms for Delphi from TwinForms.com
For making native Mac apps you might want to check out Lazarus. Its a bit like the older Delphis (which personally i prefer than to the newer Visual Studio looking interface) but its quite good and used in production environments.
Related
So I have a question about what system I should use to do some C# development. In my course this year at least half of my courses require me to be using Windows specific programs i.e visio, MSSQL, C# etc. I know there are alternatives but I would like to stick to these. I'm wondering about two choices and wanted to know what people could suggest - I am more concerned with performance issues. I have a Macbook Pro and I could run windows 7 on it under virtualbox where I could give it 4gb of ram. Remember I would need windows open a lot with potentially multiple programs running. I also have a desktop gaming rig from a year ago which is much more grunty and am contemplating just using that instead where I could run windows natively. I would prefer to use the mac, but really what I wanted to know is if anyone else uses windows under vb with 4gb of ram dedicated to it with no performance issues?
It depends on what type development do you want to do ? If you will develop desktop,web,console application 4gb ram will work fine for you but if you develop mobile projects or games it will be a problem future times. I have co-worker friend who using MacBook Air and developing C# programs he is using two OS one of them is orginal MacBook OS other one W8 if you have 2 section HDD you can create another OS on your notebook. I think best solution for this stuiation is setup Windows 8 to your computer.
I'd like to ask anybody who has built a virtualized VS2010 environment in VirtualBox or VMware, which one was able to work out of the box without too much tweaking? Or both need workarounds to get stuff working?
Both are fine as long as you install the respective tools and drivers provided for the guest OS
If you're using VMWare Workstation, you can leverage even more out of the environment by installing Visual Studio on the Host PC, and using the Guest VM for debugging, if your application crashes you can actually rewind back to before the crash and step through your code with the same heap and stack before it crashed!
Basically, I suggest going with VMWare Workstation. It's pretty cheap (assuming you get paid to program) and has many, many awesome features that you'll come to love. If you're a hobbyist/student programmer however, you'll likely find VirtualBox to be a little more functional than the free VMWare Player.
As far as performance goes, Intel and AMD both have shipped chips with hardware virtualization since 2005/2006 respectively. This is called VT-x or AMD-V, and often has to be enabled in the bios on older machines.
Basically this means that your BIOS handles Memory and I/O virtualization on this chip, while specialist drivers (e.g. VMWare Tools) are installed to improve graphics and mouse performance - effectively this means the resulting VM has near native performance with minimal overhead.
Hope that helps!
You can work with a VS2010/Windows virtualized environment with no problems.
I've worked with such combination and I had no problems. Both VMWare and VirtualBox are stable so far since years and Windows OS virtualization works properly.
Obviously, you can have performance loss, because a virtualized OS has more bottle necked access to resources than a host one, but current CPUs from Intel and AMD have advanced virtualization instruction extensions which accelerates virtualization operations.
So... Just go ahead!
I don't know your requirement but there is also a great alternative using Win 7.
You can create a vhd file and boot on the vhd file.
A few steps more, you can create a base vhd file with everything you need, mark it as readonly and create as many differential disk as you want.
The drawback of this method are these ones :
it's a bit tricky to create the base and diff disk, because you have to do it in the setup console of windows setup (but google can help you)
there is a small performance impact on the disk I/O (but lower than the visualization environment)
you can run only one system at a time. In fact, nothing disallow you to install a virtualization software
you can't have your "host" and it's potential tools (corporate email, etc.)
but at least, the performance will be greatly better than a virtualization software.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 8 years ago.
Improve this question
My windows workstation is pretty well setup. I dislike laptop keyboards because everybody has their own setup of the keys, and since I am a touch typist, I use a standard QWERTY 101 keyboard.
I am just starting Mac development.
What is a good keyboard to get for my shiny new Macbook Pro?
What should I look for in a good monitor for the Macbook Pro?
Is there a KVM switch that I can use to flip between the Macbook Pro and my Windows workstation?
I would get a standard US Layout Apple Wired Keyboard, a Dell 27" ultra sharp monitor... They use the same panels as the Apple plant for a fraction of the price.
as for a KVM switch, no experience with that, you can however install windows on your mac using bootcamp (recommended).
Our setup for developing with a MacBook Pro consists of:
Griffin Elevator (http://www.griffintechnology.com/products/elevator)
Apple Keyboard with Numeric Pad (http://store.apple.com/us/product/MB110LL/A)
A Dell monitor with Display Port such as the UltraSharp U2211H (http://accessories.dell.com/sna/products/Displays/productdetail.aspx?c=us&l=en&s=dhs&cs=19&sku=320-9271)
A Mini DisplayPort to DisplayPort cable from Monoprice (http://www.monoprice.com/products/product.asp?c_id=102&cp_id=10246&cs_id=1024606&p_id=6006&seq=1&format=2)
Any mouse you feel comfortable with
Keyboard: I use the Apple keyboard with numeric pad (wired). I have tried other keyboards, but they tend not to work very well when I run Windows under BootCamp. (It sounds like you have a separate Windows machine, though, so this might not be a problem for you.) I have tried several keyboards and have found that only the Apple keyboards work really well with the Mac. The primary reason for this is the quick key shortcuts
Monitor: I use a Dell Monitor 24" my with Mac. It has multiple inputs including a DisplayPort, which will work well with your MacBook Pro. You just need the displayport adapter from MonoPrice (www.monoprice.com).
As an alternative, you mention the use of a KVM. In my experience, cheap KVMs are cheap and do not work well. I have used KVMs from several manufacturers. The one I have found to be the best is one from Avocent (www.avocent.com). They have KVMs that are called SwitchView Desktop KVMs and they work very well. They have ones that work with DVI ports. You can get a DVI adapter for your MacBook Pro.
If you are looking for a keyboard/mouse combo, I would recommend the Logitech products. I recommend the ones that are NOT Bluetooth. They can be plugged into the Avocent KVM and work perfectly.
Hope this helps!
What do you recommend for quickly creating images for testing a software product (that needs hardware access - full USB port access)? Does virtualization cover this? I need to be able to quickly re-image the system to test from scratch again, and need good options for Windows and Mac OS.
Virtualization may work for you as long as it is only USB access.
VirtualBox is available with USB support either for "private use or evaluation" or commercially and works on Win, Mac and Linux. USB support on Linux and Mac is somewhat sporadical though and does not work with all devices. VBox supports snapshots.
VMWare has one free product called VMWare Server for Win and Linux but I'm not sure how far USB support is included in their server products. For Mac there is VMWare Fusion but that's not available for free. Fusion should work with most USB devices. Workstation products for Windows are more expensive. I think there is a trial version for all of them. All do snapshots.
I don't know how far Parallels (Mac) supports USB devices or snapshots.
You don't need snapshot functionality if you can afford some short downtime between re-imaging. You can shut down the VM and then just copy the disk image (which is nothing else but one or multiple regular files) and start the VM again. Snapshots can be reverted to a lot faster (without rebooting).
If virtual machines will work for you, you can choose between Virtual PC, VMWare and VirtualBox.
Virtual PC supports Win host and Win/linux guests. Although there are some caveats with regards to the X resolution support.
VMWare supports Win, OS X and Linux host. It supports Win and Linux guests.
VirtualBox supports same hosts and guests as VMWare.
None of the three supports OS X as guest officially. The reason is that OS X is licensed only for Apple machines. However, there are some hacks that allow installing OS X under VMWare. It might be also possible to install it under VirtualBox or Virtual PC, although I have not seen specific instructions.
If virtualization is not good enough for you, you can use precreated installation images or a disk imaging program.
For precreated installation images for Windows, you can use the sysprep tool (search for sysprep or system preparation tool). I don't know if there are equivalent tools for OS X from Apple.
For disk imaging programs, I know quite a lot people swear by Symantec Ghost. I personally have not used it, so can't give you much info about it. There's also a list of disk imaging programs on Wikipedia, so you evaluate these as well.
Hope that helps.
If virtualization is right for you depends on how much access direct access you actually need.
But if virtualization works then vmware offers products for Windows and Mac that support a Snapshot feature.
Or there's also VirtualBox which works on Linux, Windows and Mac, also supports snapshots and is free.
I use VMWare Player for this sort of stuff. I've not tested it with the sort of access you discuss (since I mostly do apps rather than driver-level stuff) but the advantages are many, specifically being able to copy the VM when it's shut down for later restore to a specific point (sort of a poor man's snapshot) and being able to have lots of configurations without blowing the hardware budget.
It certainly provides USB virtualization and I would say it's the best bet for providing the full device access. I would suggest testing it since, if it provides the hardware support you need, it's a very good solution for the other reasons given. The only other (non-VM) suggestion I can think of which would match it would be hard disk image backups which can be restored at will.
I've used Virtual PC heavily for this kind of thing in Windows, without ever hitting any issues. It's free, which is always a bonus ;o)
Edit: Just re-read the question - not sure that it has USB support. Should tick all the other boxes though
CloneZilla is a great, free way to reimage machines.
Once I worked for some company where we needed to test our software for various combinations of versions of OS, SPs and some other libraries which our application was dependent on. For each separate identified combination we had a separate partition image created with the help of Norton Ghost (DOS version). All images were put to a server. Whenever a tester got the next version of the system core to test, they would just methodically restore from all applicable images, install the application, test it and report it.
This approach though a straightforward one would allow full access to the hardware and will provide you with 100% native installation.
Nowadays, I still use this approach for my private PC. I'm sure you can try the latest achievements like Hyper-V. We use it nowadays where I work. When we tried to install Team Foundation Server (the process is far from being easy) we also had to drop the process at some point and just restore a virtual machine from an image because we realized we made a few mistakes during installation. Conceptually the same approach that saves a great deal of time. I'm not really sure though how compatible a virtual PC is in the sense of hardware access.
You can try both approaches.
P.S. Today there are two Ghost products, Symantec Ghost (good old one) for corporate use and Norton Ghost for home use (bloatware in my opinion). If you decide to try this option, I would recommend the Symantec Ghost (part of Ghost Solution Suite).
If you can't just use a virtual machine and take snapshots of the fresh install then do a fresh install onto real hardware and use a disk imaging tool (Ghost comes to mind).
If cost is a factor then there's a few Linux live CDs that will do what you want. This comes to mind. Put a second disk in the machine and image from the second disk unless you have fast networks and network storage; it's way to slow to go to and from the network regularly. If you're using a Linux live CD then you can actually set the second disk to EXT3 so Windows won't detect it and assign a drive letter too.
If you have a dedicated workstation for testing then I would highly recommend Symantec Ghost. Simply get the workstation to the clean state, reboot to ghost and 'take a snapshot' of the HD or partition. You can then replace the HD or partition from the image say from CD or multicasted over a network connection from another PC.
I have used it for years now, even to the point of automating the build of 60 test workstations (at the same time).
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I am doing .net programming in addition to c and c++ development and want more flexibility on my home machine. I want to be able to have both Linux (probably Ubuntu) and Windows Vista on my home computer. Is there a way I can install both and on boot be prompted for which one to start? Is there a way to set Windows to default?
I have seen this before in CS labs in undergrad.
Also, I assume there would be no problem if I were to use Windows 32-bit along with Ubuntu 64-bit. Any advise?
The latest versions of Ubuntu include an installer called Wubi, which installs Ubuntu as a windows application (ie: it can be uninstalled from Add/Remove programs) and sets up the dual boot for you! It's great for those who want to give Linux a try without a system overhaul!
You can dual boot, but I would recommend using a Virtual Machine for what you want to do.
Look at VMWare and Virtual PC.
For more information on Virtual PC: http://en.wikipedia.org/wiki/Microsoft_Virtual_PC
For more information on VMWare: http://en.wikipedia.org/wiki/VMware_Workstation
You should note that dual booting Windows and Linux can be a little risky and is a bit permanent. Running in a Virtual Machine means that you can run the Linux install in a window and not worry about it affecting your development machine at all. The software will not know the difference, so your testing is not affected.
Consider that the Virtual Machine is like a sandbox, where you can try new and different things out, without fear of consequences.
Virtual machines do run with a bit of overhead, and therefore you should not expect to be playing games or anything through them. I would say it is very much like logging into a machine through Remote Desktop (good LAN connection) as far as performance goes.
EDIT: There is also VirtualBox that you could check out. Thanks for the helpers in my comments for that one.
I, too, recommend using a virtual machine for this purpose.
I've had problems with Virtual PC on some Linux distros (Fedora Core comes to mind), but no problems with VMWare or Virtual Box.
Think very hard before installing another operating system even as dual boot. It is rarely simple, even with installers like Ubuntu's that don't require you to mess around on a command line. There is a good risk you'll spend days trying to get your usual OS back to normal especially if you're using Vista.
VMWare and Virtual PC are both good options. Do a test install on one of these and use the OS for a while before making the decision to install.
One other great thing about using a virtual machine is that you only have to worry about getting your network settings sorted on your main OS, because VMWare (etc) will borrow those.
Also, try using the operating system on Live CD or DVD to start with if at all possible. You may also find that you can run an OS from a USB stick. This is obviously good for portability - but note that you can also carry your virtual machines on a removable USB drive.
All you have to do is go to http://www.ubuntu.com/getubuntu/download and follow the directions. I downloaded Ubuntu, burned it to CD, and rebooted with the CD in the drive. I did not have to get a second hard drive or worry about it messing with my Vista Home Premium installation.
With Ubuntu (as with most distros with a Live CD install) all you need to do is pop in a disc, boot, and click through the menus. The dual boot is set up perfectly by default, you don't even have to think about it. I've done this with Ubuntu, Debian, PC Linux OS, Freespire, and Xandros on my Vista Home Premium machine and they all worked that way.
If you are paranoid, then you should back up your PC. As cheap as hard drives (USB or internal) are these days, there really is no excuse to not have a full back up of your system. It's too easy. I use Acronis True Image, but I've heard good things about Norton Ghost as well.
Regadless, you don't need Wubi or VMWare, or any virtual anything, a straight install with a dual boot set up is the default on a typical Live CD Linux install and it works even with Vista.
I've done it different ways over the years, and I'd say using a virtual machine is the one that I like best. I've tried both VMWare and VirtualBox, both free, and I like VirtualBox a little better because you can use it with the .iso straight. You don't need somebody to have created a virtual machine image for you.
Another option is to actually run Linux as an application on Windows so you get Linux running at almost full speed but also the ability to run Windows applications along side it. Check it out at http://www.colinux.org/.
I haven't had a chance to play with it yet, but an option that looks promising for me is a tool in Ubuntu to create a bootable USB drive with Ubuntu on it. It has the benefit of a live cd (no effect on your system), better performance than a live CD and the ability to persist your data from session to session. I've used Wubi before, but I can't remember why I uninstalled it.
Have a look at "cygwin".
This istalls a "linux like" windowing application within your windows
environment. It has good support for gcc and most of the standard
gnu/linux development tools.
You dont have to mess with dual boot. Its especially good for testing
windows to/from unix communictions as you can get everything up and
running in one box.
What you're looking for is called 'Dual booting'. it allows one to choose which operating system to boot at the start. It's well supported in Linux, especially Ubuntu. Just install Ubuntu and it will set up dual booting by default.
You could go either way, a dual-boot or use a VM. I think it depends on whether you'll want to use any Windows apps while developing in the Linux environment. If so, I'd go with a VM, otherwise, here's a tutorial for setting up a dual-boot computer. It has a part on installing both OSes, and a part on if you already have Windows installed.
Wubi is a great (Ubuntu specific) solution.. The only problem I've found was installing Wubi on a FAT formatted Windows partition - I had serious problems then. Also, it might run slightly slower, as there is another layer when doing disk acccess, but I can't say I've noticed.
I dual boot Vista Ultimate 32-bit and Ubuntu 8.10 beta 64-bit with no problems. The key thing, in my opinion, is to have a completely separate hard drive to install Ubuntu on. That removes a lot of the risk since you don't have to fuss around partitioning your primary HDD and makes removing Ubuntu very straightforward as well if you decide you don't want it.
Just be careful and pay attention on which drive you select when you do the install. It's easy for me to tell them apart since my Linux drive is a different size than my main Vista and data storage drives.
If you'd rather go the VM route, VMware Player works well, and I've heard good things about VirtualBox.
try a live cd install of ubuntu :D
creating a bootable flash disk is easy - unetbootin from sourceforge.net
I have dual booted Ubuntu and Xp many times with absolutely no problems. I doubt you could do the virtual thing with one OS 32 bit and the other 64. This would not be a problem with a dual boot.
I have had problems using wubi and my boot into windows7 is now unstable at best, so given the choice would favour a VM solution in hindsight. However on other machines I have run Ubuntu Live on USB (installed using pendrivelinux.com) by picking the try ubuntu option at boot and that has worked well and was quite quick to get going.