In preparation for my new application FlexMerge which will go on sale soon (plug: at www.arrow-of-time.com !), I've been investigating Licensing/code protection issues.
This is a windows class library which needs to implement serial number and license based protection using an activation server.
I also wanted the ability to automatically send serials from my ASP .NET website immediately on successful checkout.
I scoured the internet, coming up with a whole bunch of likely candidates:
DeployLX (by Xheo) ($700 +)
CryptoLicensing Professional ($300)
Infralution Licensing System ($170 + $170 license tracker source code)
Eziriz Intellilock ($179)
LomaCons InstallKey ($86 source code edition)
LicenseSpot (subscription)
Soraco Quick License Manager ($400)
Manco .NET Licensing System ($200/$480)
To cut to the chase, I ended up buying CryptoLicensing, as it offered equivalent features to any of the other offerings, along with samples of the serial generator API and an activation server, at a very reasonable price.
I bought it bundled with CryptoObfuscator.
I haven't rolled it out yet: watch this space. But in testing it has performed flawlessly.
Immediately discarded was LicenseSpot, as it offers a hosted, monthly subscription based service which looks great for those looking for a simple, hosted solution, but I was pretty sure the integration with my site was going to be a problem. I'd really rather have everything stored in my own database rather than spread over the internet.
Soraco Quick License Manager was also discarded quickly as its feature set appeared to be smaller than most of the other standard offerings. It didn't appear at first sight to support serial numbers, and I didn't have the time or inclination to go looking further.
Eziriz was an early frontrunner, but then I did run across reports of bugs, particularly with obfuscation, and tardy tech support. That resulted in a knockout too.
Note that price is not much of an object for me - with my hourly rate, it was going to cost WAY more to integrate the software than to buy it.
LomaCons InstallKey looked good, and is so cheap that I bought it to look at the source code rather than stuff around with a demo version. However, there were several bugs in the project which cost me time, and it required IIS Express to work, which I didn't want to install on my Dev machine. In the end I couldn't get it to run, even WITH source.
It had a web based license manager with source code, but this was all written in old school ASP .NET WebForms style, which I have to say makes the gore rise in my throat. I wanted something I could tweak easily, and I would have ended up rebuilding that from scratch.
DeployLX makes a big effort to make their tools user friendly. But this comes with a price tag. This was easily the most expensive option. Since time is money, I was tempted to go with them for a bit, and benefit from a bit of hand holding, but it turned out that the features I wanted would invoke several more license charges over the base charge, and also that their serial generation API has certain license restrictions.
I think they would have worked, but I thought that he licensing restrictions were a bit onerous considering the other offers out here.
Infralution looks like a good solution. Also, pay a bit more for the source code. This one looked comparable to the Crypto product, but had a Winforms based license manager. Since I'll definitely be managing licenses online, this put me off a bit. All their ancillary tools dovetail into this license manager.
That said, they supply source, so rolling your own web based manager would have been doable and supported. I would have chosen these guys had Crypto not been around.
The Roundup
All in all, there were several good players, and a lot of choice. It happens that the CryptoLicensing package was well reviewed, had a complete feature set, and also pairs with CryptoObfuscator which also is a plus.
Where I read of problems with licensing tools in general, it was often during obfuscation that this occurred, so buying a matched license/obfuscation pair (Crypto or DeployLX) makes good sense.
I'd highlight that I think most of these packages perform well for what they do, but being a developer myself, I have fairly demanding requirements.
Also, if you are REALLY short of cash, there are some very cheap solutions out there which I think would perform quite satisfactorily if you were willing to put a bit more time into making them perform.
I think the LomaCons comment that sometimes 'less is more' hits the nail on the head. In the end, I wasn't interested in the fluff of the 'all in one' integrated solutions, I just wanted a good solid bare-metal framework I could use for my own purposes. This meant a good feature set and an easy to use API.
Tuesday, August 14, 2012
Thursday, February 23, 2012
Using USB devices with Oracle VirtualBox
I've had a great experience with Oracle VirtualBox. But like all software it's not perfect. There are two problems I've experienced with it. Here is how to fix them.
(1) Error messages when trying to start the VM after upgrading
This is something that all the VM companies seem to have trouble getting right - I had the same problem with Parallels. When you upgrade, the VM config file format changes and and your old config file may not be successfully upgraded to the new version - it becomes corrupted. There are a variety of errors you can receive.
Just create a new VM image from the start, and configure it to the the same as the old one. It can be a bit laborious, but it does ensure a stable VM.
(2) Trouble attaching USB devices (eg. memory sticks) to the VM
Detection of the specs of a particular USB device is a bit tenuous.
The secret is:
- download and install the VirtualBox Extension Pack matching your installed VirtualBox version
- set USB2 active
- create a 'filter'
- remove ALL details from the filter record apart from the description
This should detect anything that is plugged in.
If you do want to filter for a particular device, I'd advise writing down the specs that it comes up with initially on connecting the device, then clearing them as above and adding back one by one.
Note also that if you want to switch off detection of USB devices altogether, just remove the tick from the profile/filter. That way you keep the profile for turning on again later.
(1) Error messages when trying to start the VM after upgrading
This is something that all the VM companies seem to have trouble getting right - I had the same problem with Parallels. When you upgrade, the VM config file format changes and and your old config file may not be successfully upgraded to the new version - it becomes corrupted. There are a variety of errors you can receive.
Just create a new VM image from the start, and configure it to the the same as the old one. It can be a bit laborious, but it does ensure a stable VM.
(2) Trouble attaching USB devices (eg. memory sticks) to the VM
Detection of the specs of a particular USB device is a bit tenuous.
The secret is:
- download and install the VirtualBox Extension Pack matching your installed VirtualBox version
- set USB2 active
- create a 'filter'
- remove ALL details from the filter record apart from the description
This should detect anything that is plugged in.
If you do want to filter for a particular device, I'd advise writing down the specs that it comes up with initially on connecting the device, then clearing them as above and adding back one by one.
Note also that if you want to switch off detection of USB devices altogether, just remove the tick from the profile/filter. That way you keep the profile for turning on again later.
Tuesday, February 7, 2012
Reinstalling a Tracemaster Server
I've been doing support recently for a few customers whose servers have died.
Reinstalling Tracemaster can be quite an extensive process, especially when using scanners.
The following provides a list of resources and some pointers to help the process along.
Resources:
Install the latest SQL Server Express (at present, SQL Server Express 2008 R2 SP1)
Reinstalling Tracemaster can be quite an extensive process, especially when using scanners.
The following provides a list of resources and some pointers to help the process along.
Resources:
Install the latest SQL Server Express (at present, SQL Server Express 2008 R2 SP1)
http://low-bandwidth.blogspot.com/2011/10/installing-mssql-2008-express.html
Install the scanner software:
www.etracemaster.com/wlstudio_37.exe (Wavelink Server)
www.etracemaster.com/HTM_PDE_221a.exe (latest Tracemaster scanner program updates)
Install Tracemaster from the install CD.
Install the latest version of Tracemaster Software:
www.etracemaster.com/HTMUpdate_Packer_4_223f.exe (for Windows 7/XP)
Install the scanner software:
www.etracemaster.com/wlstudio_37.exe (Wavelink Server)
www.etracemaster.com/HTM_PDE_221a.exe (latest Tracemaster scanner program updates)
Install Tracemaster from the install CD.
Install the latest version of Tracemaster Software:
www.etracemaster.com/HTMUpdate_Packer_4_223f.exe (for Windows 7/XP)
Wavelink Setup:
(1) install wavelink server
(2) go to Start > Programs > Wavelink Studio > Wavelink Administrator
(3) got to Utilities > Authorization and copy the registration information over exactly from the old computer (check both Wavelink Studio NT/95, Wavelink Studio User Pack), or if the old computer is dead you will need the Registration codes which should be recorded elsewhere
(4) click the leftmost icon in the toolbar and start the monitor for 'localhost'
(5) Double click port 2001, remove the tick from 'Initialise Monitor on server startup', and click 'Shutdown'
(6) Click the second-to-left (green) icon in the toolbar to start up a new monitor. Choose TCP/IP, port 1000, in the next screen click 'browse' and select 'C:\Program Files\Harvestmaster\HTM_PDE_Stock_Control.exe'.
Tick 'Reset Monitor upon server startup', then leave the settings as-is and click 'Finish' in the final screen.
(1) install wavelink server
(2) go to Start > Programs > Wavelink Studio > Wavelink Administrator
(3) got to Utilities > Authorization and copy the registration information over exactly from the old computer (check both Wavelink Studio NT/95, Wavelink Studio User Pack), or if the old computer is dead you will need the Registration codes which should be recorded elsewhere
(4) click the leftmost icon in the toolbar and start the monitor for 'localhost'
(5) Double click port 2001, remove the tick from 'Initialise Monitor on server startup', and click 'Shutdown'
(6) Click the second-to-left (green) icon in the toolbar to start up a new monitor. Choose TCP/IP, port 1000, in the next screen click 'browse' and select 'C:\Program Files\Harvestmaster\HTM_PDE_Stock_Control.exe'.
Tick 'Reset Monitor upon server startup', then leave the settings as-is and click 'Finish' in the final screen.
(7) Do the same again, this time using port 2000 and selecting 'C:\Program Files\Harvestmaster\HTM_PDE_PalletPack_IntLabel.exe' or one of the other pallet packer products depending on your packing process.
This completes the Wavelink setup. Wavelink and the two monitors should automatically start up when the computer is started.
If you open Wavelink Administrator and monitor localhost, it shows connections to the server as they happen, which can be useful for troubleshooting.
If you need to test that the Wavelink server is configured correctly (particularly when wireless scanners are not working), you can use the 'Virtual Client' in Start > Programs > Wavelink Studio > Wavelink Virtual Client.
Click 'configure' and create an assignment to a port and IP address ('host' doesn't matter), set it as current, set the screen to 21x16, and then you should be able to use the stock control and pallet packer programs as if you were on a scanner.
Most problems with non-connection are cause by
- firewalls (turn off to test)
- IPV6 being enabled on Windows 7
- incorrect IP configuration of the Wireless network
- Wavelink not being installed, registered properly, or the monitors not being started as mentioned above
This completes the Wavelink setup. Wavelink and the two monitors should automatically start up when the computer is started.
If you open Wavelink Administrator and monitor localhost, it shows connections to the server as they happen, which can be useful for troubleshooting.
If you need to test that the Wavelink server is configured correctly (particularly when wireless scanners are not working), you can use the 'Virtual Client' in Start > Programs > Wavelink Studio > Wavelink Virtual Client.
Click 'configure' and create an assignment to a port and IP address ('host' doesn't matter), set it as current, set the screen to 21x16, and then you should be able to use the stock control and pallet packer programs as if you were on a scanner.
Most problems with non-connection are cause by
- firewalls (turn off to test)
- IPV6 being enabled on Windows 7
- incorrect IP configuration of the Wireless network
- Wavelink not being installed, registered properly, or the monitors not being started as mentioned above
Sunday, October 23, 2011
Installing MSSQL 2008 Express
For an overview of the issues to do with installing and updating MSSQL in general, see Installing MSSQL Express Versions. This post covers downloading and installing MSSSL 2008 Express.
MSSQL 2008 is currently at R2 Service Pack 2 (SP2).
Just to keep things nice and confusing, R2 is a new release of SQL Server, not quite a new version, but a major upgrade (MSSQL 2005 is version 9.0, MSSQL 2008 is version 10.0, MSSQL 2008 R2 is version 10.5), and the service packs start over for it as a release.
The release history is:
Note that if you are installing extra features like ReportBuilder (there are a whole list), you'll need to go the R2 SP2 Feature Pack downloads page here rather than download from the product specific R2 pages (again, there is no indication on these product pages that they are outdated).
Use the x64 files if you have a 64 bit Operating System, or the x86 files otherwise.
The top two 'SQLEXPR' files are the bare bones server. The last two, starting in 'SQLEXPRWT', are 'with tools' meaning the server plus Management Studio and a few other development tools. The two starting with 'SQLEXPRADV' are the whole kit and kaboodle - the server, management studio, business intelligence and reporting services tools.
The SQLEXPR32 file is the 32-bit bare bones server only.
We will follow the installation of the client tools and server version.
(1) Prerequisites - required before commencing installation
The installer will provide you with a download link to the appropriate update.
If you won't be on the internet, then you need to download the files and take them with you.
Installer 4.5 here
There are Windows 6 (Vista), Windows XP and Server 2003 Versions, x86/x64
PowerShell 2.0 here
This download is not clear - the links are about halfway down the page: 'Windows Management Framework Core (WinRM 2.0 and Windows PowerShell 2.0)'
There are Server 2003, Server 2008, Vista , XP, x86/x64 versions
(2) Task Selection
Choose 'New Installation ...' unless you want to upgrade an existing server
(3) Setup files are installed, the welcome screen is shown, acceptance of Licensing Terms
(4) Feature Selection
Unless you are doing development or specifically using replication, you can leave out these options as shown.
For the core server only install, the page looks like this:
(5) Instance Configuration
I usually install as a named instance.
Usually when I upgrade major versions (2005, 2008, 2008 R2) I install the new server as a separate instance, to allow concurrent running of the systems for a time - hence I name the server to identify the version as shown here.
The old server instance can be removed when no longer needed.
However, you may want to keep the server name consistent and generic (eg. 'SQLExpress') so you don't need to reconfigure the server name on any client machines as it is upgraded through various versions.
(6) Server Configuration
The selection of local service or network service is not crucial.
(7) Windows Authentication Mode is regarded as more secure, but it requires a domain controller and proper network administration. For legacy Applications which use SQL Authentication (username and password) or for small sites which don't have a dedicated server, Mixed Mode is appropriate. The password being entered is automatically for the 'sa' (System Administrator) SQL user - you don't have to input the 'sa' username anywhere.
The current windows user should automatically be added to the Administrative users list.
(8) Installation Confirmation and Completion
SQL Server Express 2008 is now installed, but by default it can't be accessed from anywhere but the local computer. To enable remote access:
(1) Go to Start > Program Files > Microsoft SQL Server 2008 R2 > Configuration Tools > SQL Server Configuration Manager
(2) Expand 'SQL Server Network Configuration' and click on 'Protocols for ...' your server instance. Check 'Shared Memory', 'Named Pipes' and 'TCP/IP'.
(3) You can go to 'SQL Server Services' and restart the SQL Server service, but I'd recommend rebooting the machine at this stage instead.
(4) Any other problems connecting from remote machines can be attributed to firewalls. Check for firewalls on both the client and server (the Server is critical), and if need be the port to open is port 1433.
Note that the slammer worm uses this port, so what we want to do is enable access to the server machine via the port from the local network only; NOT from the internet.
Firewalls can cause some very strange intermittent behaviour - not just outright blocking - so disabling them completely is the first step in troubleshooting, then they can be progressively re-enabled with appropriate settings, checking for correct operation at each step.
MSSQL 2008 is currently at R2 Service Pack 2 (SP2).
Just to keep things nice and confusing, R2 is a new release of SQL Server, not quite a new version, but a major upgrade (MSSQL 2005 is version 9.0, MSSQL 2008 is version 10.0, MSSQL 2008 R2 is version 10.5), and the service packs start over for it as a release.
The release history is:
- MSSQL 2008
- MSSQL 2008 SP1
- MSSQL 2008 SP2
- MSSQL 2008 R2
- MSSQL 2008 R2 SP1
- MSSQL 2008 R2 SP2
Note that if you are installing extra features like ReportBuilder (there are a whole list), you'll need to go the R2 SP2 Feature Pack downloads page here rather than download from the product specific R2 pages (again, there is no indication on these product pages that they are outdated).
Use the x64 files if you have a 64 bit Operating System, or the x86 files otherwise.
The top two 'SQLEXPR' files are the bare bones server. The last two, starting in 'SQLEXPRWT', are 'with tools' meaning the server plus Management Studio and a few other development tools. The two starting with 'SQLEXPRADV' are the whole kit and kaboodle - the server, management studio, business intelligence and reporting services tools.
The SQLEXPR32 file is the 32-bit bare bones server only.
We will follow the installation of the client tools and server version.
(1) Prerequisites - required before commencing installation
The installer will provide you with a download link to the appropriate update.
If you won't be on the internet, then you need to download the files and take them with you.
Installer 4.5 here
There are Windows 6 (Vista), Windows XP and Server 2003 Versions, x86/x64
PowerShell 2.0 here
This download is not clear - the links are about halfway down the page: 'Windows Management Framework Core (WinRM 2.0 and Windows PowerShell 2.0)'
There are Server 2003, Server 2008, Vista , XP, x86/x64 versions
(2) Task Selection
Choose 'New Installation ...' unless you want to upgrade an existing server
(3) Setup files are installed, the welcome screen is shown, acceptance of Licensing Terms
(4) Feature Selection
Unless you are doing development or specifically using replication, you can leave out these options as shown.
For the core server only install, the page looks like this:
(5) Instance Configuration
I usually install as a named instance.
Usually when I upgrade major versions (2005, 2008, 2008 R2) I install the new server as a separate instance, to allow concurrent running of the systems for a time - hence I name the server to identify the version as shown here.
The old server instance can be removed when no longer needed.
However, you may want to keep the server name consistent and generic (eg. 'SQLExpress') so you don't need to reconfigure the server name on any client machines as it is upgraded through various versions.
(6) Server Configuration
The selection of local service or network service is not crucial.
(7) Windows Authentication Mode is regarded as more secure, but it requires a domain controller and proper network administration. For legacy Applications which use SQL Authentication (username and password) or for small sites which don't have a dedicated server, Mixed Mode is appropriate. The password being entered is automatically for the 'sa' (System Administrator) SQL user - you don't have to input the 'sa' username anywhere.
The current windows user should automatically be added to the Administrative users list.
(8) Installation Confirmation and Completion
SQL Server Express 2008 is now installed, but by default it can't be accessed from anywhere but the local computer. To enable remote access:
(1) Go to Start > Program Files > Microsoft SQL Server 2008 R2 > Configuration Tools > SQL Server Configuration Manager
(2) Expand 'SQL Server Network Configuration' and click on 'Protocols for ...' your server instance. Check 'Shared Memory', 'Named Pipes' and 'TCP/IP'.
(3) You can go to 'SQL Server Services' and restart the SQL Server service, but I'd recommend rebooting the machine at this stage instead.
(4) Any other problems connecting from remote machines can be attributed to firewalls. Check for firewalls on both the client and server (the Server is critical), and if need be the port to open is port 1433.
Note that the slammer worm uses this port, so what we want to do is enable access to the server machine via the port from the local network only; NOT from the internet.
Firewalls can cause some very strange intermittent behaviour - not just outright blocking - so disabling them completely is the first step in troubleshooting, then they can be progressively re-enabled with appropriate settings, checking for correct operation at each step.
Thursday, October 6, 2011
Installing MSSQL 2005 Express
For an overview of the issues to do with installing and updating MSSQL in general, see Installing MSSQL Express Versions. This post covers downloading and installing MSSSL 2005 Express.
The MSSQL 2005 release history is:
The top file is the core server only, the second file is server + client tools + BI/reporting, and the third is server + client tools.
MSSQL 2005 does not have a native 64 bit installation; but it can be run on 64 bit (it uses the Windows-on-Windows-64 emulation subsystem). The fourth file can be used for native 32-bit-only installs (it leaves out 64 bit compatibility and won't run on 64 bit systems at all).
We will follow the installation of the client tools and server version.
(1) Installing Setup files and welcome screen
(2) System Configuration Check and Registration Information
(3) Selection of Features
Unless you are doing development or specifically using replication, you can leave out these options as shown.
(4) Windows Authentication Mode is regarded as more secure, but it requires a domain controller and proper network administration. For legacy Applications which use SQL Authentication (username and password) or for small sites which don't have a dedicated server, Mixed Mode is appropriate. The password being entered is automatically for the 'sa' (System Administrator) SQL user - you don't have to input the 'sa' username anywhere.
(6) Installation and Finished Screens
SQL Server Express 2005 is now installed, but by default it can't be accessed from anywhere but the local computer. We need to use the Surface Area Configuration Tool.
(1) Start the tool
(2) Choose 'Surface Area Configuration for Services and Connections'
(3) Make the shown changes and click 'Apply'
(4) You will then need to go to 'Database Engine' > 'Service', and click Restart, then go to 'SQL Server Browser' > 'Service' and click Restart.
This should be all that is needed, but experience shows that it is sometimes necessary to restart the machine, so to save time it's probably a good idea to do that rather than bother restarting the services as just mentioned.
(5) Any other problems connecting from remote machines can be attributed to firewalls. Check for firewalls on both the client and server (the Server is critical), and if need be the port to open is port 1433.
Note that the slammer worm uses this port, so what we want to do is enable access to the server machine via the port from the local network only; NOT from the internet.
The MSSQL 2005 release history is:
- MSSQL 2005
- MSSQL 2005 SP1
- MSSQL 2005 SP2
- MSSQL 2005 SP3
- MSSQL 2005 SP4
The top file is the core server only, the second file is server + client tools + BI/reporting, and the third is server + client tools.
MSSQL 2005 does not have a native 64 bit installation; but it can be run on 64 bit (it uses the Windows-on-Windows-64 emulation subsystem). The fourth file can be used for native 32-bit-only installs (it leaves out 64 bit compatibility and won't run on 64 bit systems at all).
We will follow the installation of the client tools and server version.
(1) Installing Setup files and welcome screen
(2) System Configuration Check and Registration Information
(3) Selection of Features
Unless you are doing development or specifically using replication, you can leave out these options as shown.
(4) Windows Authentication Mode is regarded as more secure, but it requires a domain controller and proper network administration. For legacy Applications which use SQL Authentication (username and password) or for small sites which don't have a dedicated server, Mixed Mode is appropriate. The password being entered is automatically for the 'sa' (System Administrator) SQL user - you don't have to input the 'sa' username anywhere.
(5) Error Reporting - tick these if you feel inclined.
(6) Installation and Finished Screens
SQL Server Express 2005 is now installed, but by default it can't be accessed from anywhere but the local computer. We need to use the Surface Area Configuration Tool.
(1) Start the tool
(2) Choose 'Surface Area Configuration for Services and Connections'
(3) Make the shown changes and click 'Apply'
(4) You will then need to go to 'Database Engine' > 'Service', and click Restart, then go to 'SQL Server Browser' > 'Service' and click Restart.
This should be all that is needed, but experience shows that it is sometimes necessary to restart the machine, so to save time it's probably a good idea to do that rather than bother restarting the services as just mentioned.
(5) Any other problems connecting from remote machines can be attributed to firewalls. Check for firewalls on both the client and server (the Server is critical), and if need be the port to open is port 1433.
Note that the slammer worm uses this port, so what we want to do is enable access to the server machine via the port from the local network only; NOT from the internet.
Monday, October 3, 2011
Installing MSSQL Express Versions
You would expect installing the Express version of MS SQL Server to be a straightforward task, but in that you'd be wrong. Firstly, these are the different released versions of SQL Server Express (as of Oct 2011):
What are your chances of getting the correct latest download ? Not good !
This post will provide links to the combinations you want and guide you through the installation process.
The Ins and Outs of MSSQL Updates
MSSQL service packs have the following behaviour
There are essentially three features of MSSQL.
- MSSQL 2005
- MSSQL 2005 SP1
- MSSQL 2005 SP2
- MSSQL 2005 SP3
- MSSQL 2005 SP4
- MSSQL 2008
- MSSQL 2008 SP1
- MSSQL 2008 SP2
- MSSQL 2008 R2
- MSSQL 2008 R2 SP1
- MSSQL 2008 R2 SP2
These are all still available for download, with no warnings on the download page that versions are obsolete.
On top of this, there are three or four different bundles you can download, depending on the features you want - in both 32 (x86) and 64 bit (x64) versions.
The names of features change regularly between versions of MSSQL and sometime even between service packs.
The names of features change regularly between versions of MSSQL and sometime even between service packs.
What are your chances of getting the correct latest download ? Not good !
This post will provide links to the combinations you want and guide you through the installation process.
The Ins and Outs of MSSQL Updates
MSSQL service packs have the following behaviour
- updating from an older to newer service pack level essentially reinstalls MSSQL from scratch, so you really don't want to install an old version and update it. However, the advantage of this way of doing things is that you don't have to apply the service packs in order - you can skip straight to the latest
- as soon as you attach your database (mdf) files to the new server, they will be updated to the new server's version format and from that point on the files will not work with an earlier service pack or version of SQL
- for this reason you MUST get the correct server release (2000, 2005, 2008) AND SP level (0-4). In addition, ALWAYS make a copy of important databases (backups or copies of properly detached mdf files) before installing a Service Pack.
There are essentially three features of MSSQL.
- the core server
- client/developer tools (MSSQL Management Studio or MSSMS and a command line query tool) - these are used during development and/or troubleshooting
- Business Intelligentce (BI)/Anaysis Services and Reporting Services
There will be downloads for (a) core only (b) core + developer tools, (c) core + dev tools + BI/reporting
Checklist
So in summary, you need to decide these points before proceeding:
- which version of SQL Server Express do you want (2005 or 2008) ?
- are you installing on a 64 bit or 32 bit Operating System ? (note: this is not necessarily the same as the hardware, as you can run a 32 bit OS on a 64 bit processor)
- what features do you require from the above list ?
The proceed to the post specific to your version
Friday, September 23, 2011
Macbook Pro as the Ultimate Dev/Media PC
I’ve had a Macbook Pro for about three years now, and I’m a definite convert. I run Windows for all my .NET/COM development work (MSSQL, Visual Studio, etc), but for personal media the Mac can’t be beat: rock solid on video capture and editing (iMovie), photo organisation (iPhoto), and GarageBand is a free multitrack recorder/sequencer with professional quality instrument samples. (And that’s just the start …)
Unfortunately, my old (and first ever) Macbook suddenly died (motherboard), and this experience highlighted the shortcomings of my backup strategy. I was prepared for a hard drive failure – had images and data backups of everything – but when you are forced to get a new machine, you often want to start fresh rather than restoring an old and cluttered OS from a different hardware set.
After spending many hours over the course of a week installing software and settings to my desktop PC to cover me while the old laptop was at the shop (7 day wait!), I knew there had to be a better way.
This is the recipe:
(1) Macbook Pro 15″ (bottom of the range): AU$2070
(2) Solid State Drive
I researched SSDs enough to know that cheap ones are worse than mechanical drives. Then I ran across Jeff Atwood’s first post on SSDs (here is the latest post, with links to the previous two, and a warning). All up, the Intel X25 series (approx AU$350) was the most reliable and appropriate (Crucial make a faster but less reliable model, but it really requires SATA 3 to do its thing).
AU$160 to get the Mac shop to install it to the new MBP without voiding the warranty. Holy cow, these things fly ! I’ll second all the things Jeff said. My ‘fast’ desktop just went to being slow as treacle by comparison. I’m running every dev tool known to humans on the Windows VM and it starts up in about 20 seconds.
(3) Oracle VirtualBox
I was previously running Windows using Parallels for Mac using the Boot Camp partition (the physical disk). I had heard that running off a virtual disk was actually faster. But the initial problem was that I needed to use my Desktop for a week between laptops, and it’s a PC. I could shell out another $80 for Parallels for Windows, but a friend recommended VirtualBox, which runs under OSX, Windows AND Linux. And is free. What’s not to love ?
So I installed Virtualbox on the Desktop (under Windows XP), fired up an XP image and started installing software. After upgrading the RAM to 6Gb, I realised that XP wasn’t going to recognise most of that (the 3Gb 32 bit limit … doh!). But since the action was happening on VMs now, I grabbed a copy of 64 bit Ubuntu, and in about 40 minutes was installed and running windows on VirtualBox happily under Ubuntu with my full 6Gb quota of RAM.
So VirtualBox does not have all the creature comforts of Parallels, but frankly I had found most of that to be window dressing anyway, and had been thru upgrade hell each time I tried to update to the latest Parallels. VirtualBox is stable, fast, and I can use the exact same VM image on Mac, PC or Linux in the time it takes me to copy the 35Gb VM image. Machine dies ? Hard drive dies ? No problem.
(4) Dropbox
Having been using Mozy for a while, and having a free Dropbox account (2Gb) I realised that Dropbox provides effectively the same backup service as Mozy/Carbonite without all the drawbacks. $99 a year will get you 100Gb of space – more than enough for non-media storage (with a few shared photo folders for the extended family).
So I now install Dropbox with the Dropbox folder on the root of the drive, and just store everything in there. Real-time, secure, offsite, web-available, remote-synced backup.
As an aside, when setting up the VMs it pays to use separate virtual disks for data and OS – just create and attach two disk images. That way you can back up the VM once a month or so to capture your latest program installations (by simply copying the image file), but have all your data on a separate drive backed up live with Dropbox or the backup solution of your choice.
There you have it. The ultimate work/media machine, fast as anything, development PC fully virtual, fully backed up. If the machine or drive dies, you can be up and running on a clone of your dev PC VM on an alternate machine within about half an hour, depending on how much data you need to pull down from Dropbox to get the ball rolling.
Unfortunately, my old (and first ever) Macbook suddenly died (motherboard), and this experience highlighted the shortcomings of my backup strategy. I was prepared for a hard drive failure – had images and data backups of everything – but when you are forced to get a new machine, you often want to start fresh rather than restoring an old and cluttered OS from a different hardware set.
After spending many hours over the course of a week installing software and settings to my desktop PC to cover me while the old laptop was at the shop (7 day wait!), I knew there had to be a better way.
This is the recipe:
(1) Macbook Pro 15″ (bottom of the range): AU$2070
(2) Solid State Drive
I researched SSDs enough to know that cheap ones are worse than mechanical drives. Then I ran across Jeff Atwood’s first post on SSDs (here is the latest post, with links to the previous two, and a warning). All up, the Intel X25 series (approx AU$350) was the most reliable and appropriate (Crucial make a faster but less reliable model, but it really requires SATA 3 to do its thing).
AU$160 to get the Mac shop to install it to the new MBP without voiding the warranty. Holy cow, these things fly ! I’ll second all the things Jeff said. My ‘fast’ desktop just went to being slow as treacle by comparison. I’m running every dev tool known to humans on the Windows VM and it starts up in about 20 seconds.
(3) Oracle VirtualBox
I was previously running Windows using Parallels for Mac using the Boot Camp partition (the physical disk). I had heard that running off a virtual disk was actually faster. But the initial problem was that I needed to use my Desktop for a week between laptops, and it’s a PC. I could shell out another $80 for Parallels for Windows, but a friend recommended VirtualBox, which runs under OSX, Windows AND Linux. And is free. What’s not to love ?
So I installed Virtualbox on the Desktop (under Windows XP), fired up an XP image and started installing software. After upgrading the RAM to 6Gb, I realised that XP wasn’t going to recognise most of that (the 3Gb 32 bit limit … doh!). But since the action was happening on VMs now, I grabbed a copy of 64 bit Ubuntu, and in about 40 minutes was installed and running windows on VirtualBox happily under Ubuntu with my full 6Gb quota of RAM.
So VirtualBox does not have all the creature comforts of Parallels, but frankly I had found most of that to be window dressing anyway, and had been thru upgrade hell each time I tried to update to the latest Parallels. VirtualBox is stable, fast, and I can use the exact same VM image on Mac, PC or Linux in the time it takes me to copy the 35Gb VM image. Machine dies ? Hard drive dies ? No problem.
(4) Dropbox
Having been using Mozy for a while, and having a free Dropbox account (2Gb) I realised that Dropbox provides effectively the same backup service as Mozy/Carbonite without all the drawbacks. $99 a year will get you 100Gb of space – more than enough for non-media storage (with a few shared photo folders for the extended family).
So I now install Dropbox with the Dropbox folder on the root of the drive, and just store everything in there. Real-time, secure, offsite, web-available, remote-synced backup.
As an aside, when setting up the VMs it pays to use separate virtual disks for data and OS – just create and attach two disk images. That way you can back up the VM once a month or so to capture your latest program installations (by simply copying the image file), but have all your data on a separate drive backed up live with Dropbox or the backup solution of your choice.
There you have it. The ultimate work/media machine, fast as anything, development PC fully virtual, fully backed up. If the machine or drive dies, you can be up and running on a clone of your dev PC VM on an alternate machine within about half an hour, depending on how much data you need to pull down from Dropbox to get the ball rolling.
Subscribe to:
Posts (Atom)