Software Development, Programming, Technology : News and Extra Insight
Techniques, How-To's, Fixes, Reviews, and News — focused on Software Development, Technology, Programming, 3D CAD, SQL Server, Nvidia CUDA, VMware, Dart Language, JavaScript, SVG, and more. Plus, stimulating discussion — economy, stock market, investing, finance, politics, environment, energy, and other far flung ideas for improving the world.
Install PHP 5.4 (5.x) on Windows 7 IIS 7.5 the EASY way!
Microsoft Web Platform Installer for PHP 5.4 / 5.x to the rescue!
I generally develop my websites in Microsoft technologies: ASPX / DotNet C# with SQL-Server databases. But, I do have a few smaller sites I work on that are build using PHP. Since my normal desktop for website development and software development is a Windows 7x64 Pro machine, I use the built-in Internet Information Services (IIS) 7.5 web server for testing my ASPX sites using localhost (127.0.0.1).
Well, what about testing my PHP Hypertext Preprocessor based applications locally on Windows 7 with IIS 7.5? Thankfully, you can forget all the overly-complex installation instructions that appear all over the web and install PHP 5.4 on IIS 7.5 the SUPER EASY WAY: use Microsoft's very nice "Web Platform Installer 4.0" to do this!
PHP 5.4 on IIS 7.5 step-by-step instructions using Microsoft Web-Platform-Installer 4.0
Here are the basic steps, and I included screen images showing visual feedback you can expect during the process. And, this whole process is only going to take a few minutes (depending on your download speed).
Got the the Microsoft web page for the Web Platform Installer for PHP 5.4 ("WPI"). You will see a large button on that page saying "Install Now"... click it to download a PHP54.exe (small) program that you run to launch the WPI install process. Note: if you already have the MS WPI installed, you should be able to just use that interface directly to add PHP 5.4 -- WPI should be accessible via your start-menu, and you can find it here too: "C:\Program Files\Microsoft\Web Platform Installer\WebPlatformInstaller.exe"
Run that PHP54.exe program you downloaded. This will start the platform-installer and proceed with PHP 5.4 on IIS7.5 installation. The program will download some more content, then present you with this screen:
Initial Screen once ready.
Next, click the "Options" link to see the following screen, from which I chose "IIS" for the "Which Web Server would you like to use?", since I have Win7x64 Pro with IIS 7.5 running (versus IIS Express 7.5). Then, click "OK" to go back to the screen shown in step 2, from which I chose to click the "Install" button...
The IIS / PHP Install Options
You will be presented with the following screen showing what PHP 5.x.x version is going to be installed on your IIS 7.5 setup along with any other supplemental packages for managing PHP on Windows / IIS. I just went with the defaults and chose "I Accept"...
Various Prerequisites : You can opt out of defaults here
The installation for PHP 5.4 on IIS 7.5 will now take place, and when it completes you will see the following screen.
Now, once you are done, you will see the Web Platform Installer's menu system that will display some very interesting additional packages you may want to install this way! There are a lot of very useful packages setup for the super-easy / automatic installation process. See the "Products" and "Applications" tabs for a list. And, you will notice how your "PHP 5.4.9" (or whatever version you just installed) shows up in the list of products as "Installed" now:
Lastly, if you want to see exactly what was installed and see that these WPI-installed products can be removed via the "normal" way (Control Panel, Programs and Features), here is a screen-shot after using the WPI to install PHP 5.4 on Windows IIS 7.5. I clipped the screen to show only those items that were installed with PHP for Windows via WPI auto-installer:
I hope you find this all useful and see how super-simple it can be to run PHP on Windows 7 / IIS7.5 for local PHP website development on a Microsoft Platform! And, this even installs some SQL-Server 2012 drivers and PHP connectivity to SQL-Server.
VariCAD running 20%-OFF 2012 Sale Get additional discount from me...
If you are in the market for an affordable 2D and 3D CAD software package for personal, hobby, or professional use, give VariCAD 2012 a look now while VariCAD corporate is offering a 20% off sale through December 21, 2012. No coupon-code is required, but you will need to contact my company Modern Visions for Technology (MV4T) to obtain our additional reseller-provided discount pricing - go to that link for ordering information; pricing info is discussed here (below).
VariCAD 2012 Sale Prices : from USA Reseller, MV4T
VariCAD is a cross-platform (Windows / Linux) CAD package, so you need to choose which platform you will purchase a license for (price is the same regardless of platform, but license is only good on the platform you choose). Then, choose which included-upgrades-period fits you best:
without any included upgrade period, Varicad list price is currently $650 (USD) which they are offering on sale for $520 (20% off) and MV4T is discounting during this same period (through Dec-21-2012) to only $450,...
or, with a one-year of included upgrades (includes any major and/or minor versions released in the next year - like the soon-to-be-released VariCAD 2013-1.0), Varicad list price is currently $780 (USD) which they are offering on sale for $630 (20% off) and MV4T is discounting during this same period (through Dec-21-2012) to only $550.
VariCAD : High-End Features for Reasonable Price
I have previously written about VariCAD Software (on this blog) explaining my reasons for liking this tool so much after performing a CAD Software Comparison Review prior to making my own choice. This software, even though super-affordable (especially compared to the "big name" 3D CAD packages like AutoCad and SolidWorks), is incredibly robust and still simple enough to use that a novice can pick it up in little time (like I did).
And, in the end, I also became the USA Reseller for VariCAD... which allows me to now further discount the already-on-sale software for 2012. I have used the software for a few years now and continue to find myself incredibly more productive when working on my various ideas ("inventions") as I can fully visualize (in 3D) how my conceptual designs will come to life before I actually invest in building a prototype or such.
If you have read any of my prior blog entries about Google's Dart language, you already know that I am a fan of this fantastic alternative to coding JavaScript (JS) for web-based applications. Dart can be compiled into JS code, and the gory details of writing large-scale JS-based applications are hidden behind the Dart-to-JavaScript compiler (Dart2JS) which enables you to focus on writing your applications in Dart's modern, clean, Object-Oriented, "typed" language implementation that also includes a rather decent base framework (with things like collections built in).
Check out the latest Dart Language information and get a copy of the free Dart Editor and Dart SDK and try things out for yourself. There are quite a few emerging projects on GitHub and elsewhere now, and Dart's "pub" project package-repository has gone live too. If you experience the same web-development productivity gains I have, you will thank yourself for checking Dart out! I find myself incredibly more productive (feature-points implemented per hour of development time) using Dart to write applications as compared to writing native JS code... and, I see enormous savings multiple further as I need to add additional features and functionality to my code. Dart is simply more maintainable, cleaner, etc. You get the idea. Check it out.
Although I am leaning toward using Google's Dart language along with HTML5 / CSS for my applications development needs lately, I find it hard to ignore my 17-year history of using Delphi for native executable desktop applications development. The fact is, Delphi has been an extremely important and productive RAD OOP language and IDE for me, and I find myself longing for the equivalent features and productivity (especially a VCL-like controls hierarchy) on the web side of things.
I previously wrote a review of the new features in Embarcadero Delphi XE2 — with much excitement too — as I was thrilled by the prospect of their new FireMonkey UI controls and 64-bit advancements. But a short time later, I wrote a followup article regarding the fact that more than a few Delphi developers were finding Embarcadero Delphi XE2 / FireMonkey full of bugs and incomplete features and suffering from lack of polish — clearly it was rushed out the door in order to make Embarcadero's annual-release-schedule, whether it was deserving of a label beyond "beta" or not. I personally am very turned off by this experience, as I feel like I am being forced to constantly pay ever-increasing prices for a product that I am forced to continually upgrade in order to keep it "viable" (i.e., pay for what are "bug fixes" and/or feature-completions).
Contrast this XE2 experience to the superb Delphi 7 and Delphi 2006 releases which I could use for many, many years as-released and with only the free included updates/patches, and develop great applications with a very stable IDE and generated-executables. Of course the main "problem" with those super-stable releases are how they stand to impact company cash-flow if product designers cannot otherwise create compelling features to entice me to upgrade to a newer version of Delphi. But, on the flip side (note to lame management at Embarcadero!), you have only driven me away with ever-increasing prices for unfinished products that I know I will have to upgrade every year (for substantial cost) in order to get a (hopefully) "finished" product and to get bug-fixes which should be part of FREE update-packs that will never address them; and, the more time I spend away from Delphi, the less likely I am to have a future "need" for it!
Furthermore, so many Delphi "features" of recent come from including a bunch of third-party crap that I don't need or want , like:
Embarcadero's stripped-down modeling software (whose clear purpose of inclusion is to attempt to generate an "up-sell" opportunity to their full product),
InterBase DB — seriously? I have NEVER encountered a company that uses this database in a production setting, let alone for development settings! Up-Sells are not happening guys, and I find it hard to believe this product is even worth developing in an age of great open-source free database options.
outdated versions of third-party controls,...
utterly useless junk like Intraweb — statistically totally insignificant market-share and again, I have not encountered a client in the past 5 or more years that has used this (let alone even contemplated using this)...
and, all the while, features I need are slow to emerge and/or are being stripped from the "Pro" version and pushed up into the "Enterprise" version.
E.g., where is the support for SQL-Server 2012 in dbExpress controls (does not show in your literature for XE3 yet), should people want that. Next, given Microsoft's push to go ODBC (vs. ADO) for SQL-Server connectivity, I find it detestable that Delphi's dbExpress ODBC Driver is relegated to an "Enterprise" version even as nearly all other development platforms consider ODBC to be an essential entry-level database-connectivity option. I can currently use dbGO™ for ADO connectivity for Windows (MDAC 2.8) in the "Pro" version of Delphi, but what am I to use for SQL-Server's next version when MS says "ODBC is the only way"? Wow, I see being forced to Delphi Enterprise at 2.5-times the price of "Pro" just to keep what I have had for years with "Pro". Perhaps you can blame this on MS, but seriously: ODBC = "enterprise" only?
That said, let me continue with the new Delphi XE3 features for anyone that wants to risk upgrading only to have to upgrade again to get what they want, and/or be forced to move from the "professional" to "enterprise" version in order to get the database-connectivity they need, etc.
New Features in Delphi XE3
Now that the official Embarcadero Delphi XE3 release is available, the first thing I wondered was: is it "ready" this time? Time will tell, but for now, here are the features in XE3 that are supposedly worth pointing out:
Windows 8 "Metro" Applications
The Delphi RAD (Rapid Application Development) IDE and Component-Set framework now targets Microsoft Windows 8 "Metro" applications. New Metro Project Templates and Application Styles for Delphi and C++Builder exist (including VCL Metropolis project templates blank, grid, split layout, plus Office 2013 styling), but there are apparently caveats to all this Windows 8 support with regards to WinRT. Note that Embarcadero® literature regarding what's new in Delphi XE3 states that "Embarcadero® RAD Studio is preparing for full support of the Windows® 8 Metro® user interface".
This conditionalized-wording concerned me, so I went digging, and soon found this very active and lengthy Embarcadero discussion forums topic regarding this issue where Allen Bauer (Embarcadero Chief Scientist) states that, in response to whether Delphi will be able to "support native Metro development using the unmanaged API", the following:
"Yes. We are very keen on supporting WinRT with native Delphi & C++
code. Right now, the issues surrounding the WinRT space center around
the fact that many OS-supplied APIs which are required by anyone
implementing their own language RTL are actually off-limits unless
you're the VC++ RTL DLL. You know, little things like RtlUnwind for
exception processing and VirtualAlloc (et. al.) for memory
management... Any calls to those APIs from your application will
automatically disqualify your application from being an "official"
WinRT application capable of delivering through the MS app store.
Right now the VC++ RTL DLL is given special dispensation since that is
the library that makes the calls to those forbidden APIs and not
directly from the user's app. We're currently rattling some cages at MS
to find out how or if they're going to allow third-party tools to
target WinRT. Until we can get past that, targeting WinRT isn't
actually possible from a deliverable product sense. We are able to
build WinRT applications with Delphi that work with a developer
certificate, however they all fail the application qualification checks
because of the aforementioned (an other) APIs.
Like the APIs I mentioned above, there are lots of changes with WinRT
that make targeting it a little more tricky. For instance, you cannot
merely open any file, access the registry, and even use the loopback
(127.0.0.1) adaptor. LoadLibrary cannot be used to load any arbitrary
DLL; you must call LoadPackageLibrary and only on a DLL that is present
in the digitally signed appx package. WinRT is a seriously locked down
sandbox or "walled-garden" with some extremely high walls.
This is a little known or understood "feature" of Windows 8. I see no
press that even talks about this at all. IOW, it's Windows 8's "dirty
little secret." "
So, I am just not totally sure what to make of all this. I understand where Embarcadero is coming from here and why WinRT applications are a challenge due to Microsoft implementation specifics, but how can one of the more substantial features of XE3 (Windows 8 support) be subject to such conditions yet? All I got out of this was: please wait for Delphi XE4 features that really make WinRT possible. Time will tell, but this is yet again another point of potential concern with regards to a paid upgrade for a feature I may not truly be able to fully exploit.
FireMonkey Changes for Delphi XE3 (aka, "FireMonkey2")
Given the incomplete state of FireMonkey in Delphi XE2, I was looking forward to seeing what the second full incarnation of the FireMonkey controls and technology in XE3 would yield — I essentially expected them to now be worthy of a "version 1.0" designation vs. what I considered an extended technology-preview in what came with the XE2-provided FireMonkey set. Of course, Embarcadero calls them "version 2.0" for maximum marketing effect.
The new FireMonkey2 XE3 features include:
Bindings: TDatasource is no longer required for LiveBindings as you can now simply link a BindSource directly to a dataset like TClientDataset.
Actions: FireMonkey now supports actions and action lists, features that were previously supported only in VCL.
Anchors: Anchored controls "stick to" the sides of containers, and also stretch, if so
specified. I really thought this was a substantial missing feature in XE2, especially seeing that I implemented anchor-support in my own SVG-UI-Widgets quite easily, but what do I know.
Audio-video: FireMonkey offers support for capturing media data (audio and video).
Layout management: new FireMonkey layouts (Flow layout, Grid layout) simplify the arrangement of controls in a FireMonkey application. Text Layout features were listed, but I have yet to see details of what that involves.
FireMonkey 3D enhancements: not that I give a darn, since I am one of the few software developers that care about business applications versus graphical "fluff". But, I guess it is neat to know that a new materials system and shader compiler exist to make better use of modern hardware and graphics frameworks (like DX9, DX10).
Gestures: FireMonkey now supports the gestures that are also supported by the VCL. This is nifty and all, but the fact is, I have not encountered any clients that want a gesture-enabled Windows application: nobody has widely-deployed touch-enabled desktops, for starters.
New styling abilities, including Metro-look styling. And, these same FireMonkey2 components are supposed to be Mac OS Retina display optimized.
FireMonkey Sensor Components: Non-visual components for using device sensors (Location / Motion) have been added, though Motion sensor is Windows-only for now. Virtual keyboard is now supported too.
Other Delphi XE3 Features of Interest
One related (to FireMonkey mainly) feature of significance is the new Visual LiveBindings Designer and LiveBindings Wizard — bringing essentially a drag-n-drop approach to designing bindings. You can now create data sources (TPrototypeBindSource or TBindSourceDBX) from within the LiveBindings Wizard. Using a TPrototypeBindSource, now you can bind multiple properties of different objects to the same data. A set of Quick Binding Components components have been introduced in order to make LiveBindings links seamless — these produce auto-generated expressions for easy linking objects. LiveBindings can now be created from one control to multiple controls, seamlessly via the LiveBindings Designer.
And, by the way, TGrid is now supported by Live Bindings (given the widespread use of this control, that surely was a "need" for this technology to be useful). There is some new ability to group various Live Bindings together to form a "layer", which seems mostly about making complex groups of bindings easier to work with (layer data is saved in .vlb files).
There really was not much else in XE3 that got my attention. There were some changes regarding the Mac OS X builds and such, but I am not experienced at all with deploying Delphi applications to OSX, so someone else will be able to review those features. So many other listed "new features" were simply included "junk" (as mentioned elsewhere in this review) or things I'd expect of any new release: like, updates to a list of supported databases, etc.
Conclusion
I would really like to believe that Delphi XE3 / FireMonkey is making strides toward relevance that could result in a resurgence in Delphi software development, but in an age of mass migration to "web based applications" and many, many alternatives (and much more popular ones at that, not to mention many lower-cost or free / OSS alternatives), I cannot help but think that Delphi will forever remain a niche product relegated to the few. It has potential to be so much more, but until Embarcadero gets over its hangup on including totally irrelevant products (like InterBase, IntraWeb, etc) and calling them "features" while simultaneously crippling the "Professional" version (i.e., the only "affordable" version) this product is destined to further obsolescence and obscurity. Sad. It really had such incredible potential.
This blog is a followup to the VMware ESXi 5.0 New Features posting from just over a year ago. VMware has released to the public the details of new features in VMware ESXi 5.1 and vSphere 5.1 and I will cover those new 5.1 features here, though if you are new to the 5.x series, the prior blog may still be quite interesting also. Spoiler: one huge new "feature" in 5.1 is removal of the vRAM limits! Let's look at all this more...
New Features in VMware ESXi 5.1
vRAM Memory Limits Removed: the biggest non-feature "feature"!
What does it say about a product when the biggest "feature" is simply un-doing / correcting a blunder made by upper-management at a company? If you remember the fiasco surrounding the new vRAM memory limits imposed by ESXi/vSphere 5.0, you know to what I refer. VMware's attempts to squeeze more cash out of customers by imposing what amounted to a RAM-tax upon their robust server boxes backfired (i.e., irked customers, like me). And, they have now un-done that mistake. ESXi/vSphere 5.1 is supposed to now be priced (solely) on a per-CPU-socket basis rather than on a strange and ridiculous combo of sockets/virtual memory used/VMs-being-managed. That is a good thing: I actually stuck with ESXi 4.1 due to the 5.0 vRAM bull@#! So, version 5.1 is on my radar.
Support for Newer Hardware
Not surprisingly, this latest 5.1 release includes support for bigger and more recent computing hardware (both Intel and AMD). In addition, the virtualization hardware-abstraction layer has been upgraded to a new "Version 9 virtual hardware" that includes support for Intel's VT-x with Extended Page Tables virtualization assistance features and the AMD-V with Rapid Virtualization Indexing (RVI) (nee, "nested page tables"). This VT-x/EPT and AMD-V/RVI support is to partially reduce hypervisor and virtual machine (VM) guest operating system overhead imposed on the physical processors (your server's CPUs).
One nice feature that comes along with this latest 5.1 version is, unlike with the 5.0 release, it is possible to allow any VM generated on VMware ESX Server 3.5 or later to continue to run on ESXi 5.1 unchanged (i.e., without being forced to shut down, update to the version 9 virtual hardware, and restart). Of course, if you want the latest features of the VM and hypervisor that come with "version 9 virtual hardware", you will have to update your VMs to get it, but at least you have the option to postpone the virtual-hardware upgrade task until it is convenient.
New Adobe-Flash Web-Based Management Client for vSphere 5.1
Yes, you read right: a new Flash-based management client! (actually, it was written in Apache Flex, which uses Flash to run applications built with Flex). I personally am OK with this as I have worked with some very capable Flash-based applications. The old management client is still able to interact with vSphere 5.1 applications, but features that are new to vSphere 5.1 will only be available in the Flash-based web interface client. Sure, it means that you need Flash installed on whatever machine you plan to manage your virtualization setup from, but such is. I already need Flash for so many other things that this is a given.
The new UI is peppy, stable, and secure from what reviewers are saying so far. And, it offers an advantage of performing some potentially-long-running-tasks asynchronously (threaded) so as to prevent UI lockup that could occur in the previous management UIs. And, the fact is, Flash-based UIs should look and behave identically on any device that can run Flash — which surely cannot be said of HTML-based UIs!
Virtual Machine Hardware-Accelerated 3D Graphics Support
Maybe VMware read my past blog where I stated (how in ESXi 5.0) that I felt "something is amiss: where is the Nvidia CUDA / vGPU support in ESXi 5.0? Well, it turns out VMware is noticing the importance of offloading processing to GPUs after all:
With vSphere 5.1, VMware has partnered with NVIDIA to provide hardware-based vGPU support inside the virtual machine. vGPUs improve the graphics capabilities of a virtual machine by off-loading graphic-intensive workloads to a physical GPU installed on the vSphere host. In vSphere 5.1, the new vGPU support targets View environments that run graphic-intensive workloads such as graphic design and medical imaging.
Hardware-based vGPU support in vSphere 5.1 is limited to View environments running on vSphere hosts with supported NVIDIA GPU cards [well, duh] (refer to the VMware Compatibility Guide for details on supported GPU adapters). In addition, the initial release of vGPU is supported only with desktop virtual machines running Microsoft Windows 7 or 8. Refer to the View documentation for more information on the vGPU capabilities of vSphere 5.1.
NOTE: vGPU support is enabled in vSphere 5.1, but the ability to leverage this feature is dependent on a future release of View. Refer to the View documentation for information on when this feature will be available.
Hmmmm... I am not too keen on that final caveat / disclaimer (about "future release" and timeline), but it sure sounds better than the lack of information about NVidia GPU support in previous releases! I am definitely intrigued by this since I play around a bit with CUDA code, but I am not specifically seeing "CUDA" mentioned here. I wonder how far this "off-loading" goes?
Other New and Enhanced ESXi / vSphere 5.1 Features
In no particular order...
Windows 8 desktop and Windows Server 2012 support. Nothing I personally plan to use in production anytime soon, but support is there for the latest Microsoft operating systems. I do have intentions of trying these latest OS offerings out, and VMs are the only way I would even consider it; so, good thing they are supported.
ESXi 5.1 has improved CPU virtualization methods ("virtualized hardware virtualization", or VHV) that is supposed to allow near-native-access to the physical CPU(s) by your virtualized guest OS's. We all like more speed in our VMs, so this sounds like a plus.
ESXi now has the ability to perform a VM-live-migration between two separate physical servers (running ESXi) without the need for both machines to be attached to the SAN. I need to read up on this and fully understand what that means... like, do I need a SAN at all anymore for this?
CPU counter and hardware-assisted-virtualization information can now be exposed to guest operating systems (useful to developers that need to debug / tune applications meant to run in a VM).
New Storage Features including: read-only file sharing on a VMFS volumes have been increased to 32 (from 8); Space Efficient Sparse Virtual Disks with automated mechanisms for reclaiming stranded space plus a dynamic block allocation unit size (tune-able to storage/apps needs); 5 Node MSCS Cluster (vs. 2 node); jumbo frame support for all iSCSI adapters (with UI support too); and, Boot from Software FCoE.
The reliance on a shared "root" user account (for administrators) was eliminated and support was added for SNMPv3. Local users assigned administrative privileges
automatically get full shell access and no longer must "su" (sudo) to root to run privileged commands. This makes for finer-grained auditing and monitoring, which is a plus in shared environments.
With vSphere 5.1 Guest OS Storage Reclamation feature: when files are removed from inside the guest OS, the size of the VMDK file can be reduced and the deallocated storage space returned to the storage array’s free pool (utilizes new SE sparse VMDK format available with View); but note, this feature carries with it the same disclaimer that the NVIDIA stuff did — i.e., "dependent on a future release of View". Argghh. Wonder how far in the future that may be?
Conclusion
There are a fair number of new features in this latest release of ESXi 5.1 and vSphere 5.1 that are worth checking out, even though some significant ones are "dependent on future releases of View". The timing of this ESX / vSphere release goes along with the latest VMware Workstation, which I discuss here too: VMware Workstation 9.0 New Features of Interest — if you are interested in the desktop-product side of things.
I have written a couple blogs about the potential for Google's Dart language to improve browser-based software applications development. In that previous posting, I also mentioned that I was working on my first open-source software (OSS) Dart language library: a set of Dart / SVG UI Development components, controls, and framework.
Introducing: dart-squid
The moniker I arrived at was simply a pseudo-acronym that pulled first letters from Svg, Quick, User Interface, and Development / design: i.e., "SQUID", or as the new github repository is named, "dart-squid". I have now pushed an initial commit of these open-source widgets to my Github dart-squid SVG / Dart UI Components project site under the MIT license (for freeware). I also have an online dart-squid samples index page available with links to examples of these widgets in action.
Note: currently, you must use Dartium browser to run any samples linked to from that samples-index page I provided — a link to the Dartium download is shown on that index page. To use the Chrome browser (JavaScript version), you would have to have the Dart Editor installed, download the widget code from github, and launch as a JavaScript project (the editor uses dart2js compiler to make this possible). A link to the editor download also appears on my samples page.
These Google-Dart/SVG UI Widgets are my first solo open-source release to Github. They are not quite as far along as my original JavaScript-based ones, but it sure was a lot easier developing the same functionality in Dart vs. JS! Dart allowed me to completely refactor the hideous JS code (prototype-ridden ugliness, etc.) and write rather decent OO (Object-Oriented) code that looks quite a bit like Delphi (i.e., object-Pascal); always a plus for Delphi aficionados like me. And, the widgets are generally pretty functional for a mid-alpha-stage release.
Dart has been rather stable for me during development, and I have worked to keep up with the latest Dart language and VM changes that emerge as Dart moves toward its "M1" release (milestone 1). E.g., today I quickly fixed a few "breaking changes" that just hit the Dart VM including the movement of the Math.(various routines) into their own dart:math library (previously such routine were in core lib). I also renamed the XMLHttpReq to the new non-XML-prefixed version. Getters are all using the latest adopted syntax (i.e., those without parens). I will try to ensure the existing functionality remains able to execute as the Dart language progresses (with, hopefully no more than a few days delay).
Future Plans for these Dart / SVG UI Widgets
As time permits, I plan to continue work on implementing new functionality and additional widgets (sub-classes). I have yet to port all my original JavaScript widgets (that included fully-native-SVG scrollbars and checkboxes), but those should be coming in the future. I am also working on getting some documentation wrapped up (though comments in the code are somewhat in-depth already).
If you happen to try these widgets out and want to ask questions, feel free to post comments here and I will do my best to answer. And, just to be clear up front: I do not expect everyone will find these components to be of use... especially right now; they are as much of a "proof-of-concept" as anything and a demonstration of what is possible in Dart/SVG. I will try to make them useful to as many people as possible, but only time will tell whether they will ever be a logical part of any real software applications. They require optimization and much more testing for sure, and until certain browser bug(s)/issue(s) are resolved (that impact rendering in some instances), they will definitely not be production-quality. Stay tuned.
It has only been barely a year since I wrote a blog about the new features in VMware Workstations 8.0, and now VMware is already releasing a new full-version-number increment of the product when I would have expected a VMware Workstation 8.1 in its place. This has become the norm in the software industry lately — releasing major versions yearly / frequently instead of point-updates — as it forces us to purchase a license for an upgrade instead of getting a "free" included point-release (as we may have expected if the new version was simply labeled Workstation 8.1 instead).
So, one has to ask: is VMware Workstation 9 really worthy of being a new major release, a ".0" release, and worth paying for an upgrade? Well, the answer is going to depend a lot upon your particular needs for desktop virtualization features and supported guest operating systems in your virtual machine libraries. Basically, if you are one of the (un)lucky few that have to begin supporting Windows 8 VMs any time soon, Workstation 9 might be a "must have" release for you, but otherwise, my personal opinion is that Workstation 9.0 really should have been called Workstation 8.1 (of course, I wanted it as a free upgrade since I just purchased an upgrade to 8.0 a mere 11 months ago!)
Given the historical proximity of VMware's related product releases, one has to also wonder how soon VMware vSphere ESXi 5.1 or ESXi 6.0 will emerge onto the scene too. I have not heard anything official, but I am rather certain the next version of ESX / ESXi (i.e., the server-based bare-metal virtualization platform from VMware) is well into its beta stages and will be arriving in the not too distant future. If you want to catch up on things, I also wrote a blog here about VMware ESXi 5.0 New Features and vSphere 5.0 New Features. I will certainly followup with any information I get about a 5.1 or 6.0 release in the future. By the way, VMware Player 5.0 has been released simultaneously with Workstation 9.0.
If you are an Apple user (Mac OSX) and you use VMware Fusion, that product has been updated as well — VMware Fusion 5 — and it includes much of the Workstation 9 features (like Windows 8 guest support) while adding features designed to take advantage of OS X 10.8 (a.k.a., "Mountain Lion"). I will only summarize the Fusion features here, since I am going to focus in detail on Workstation 9.0 instead. They include: performance enhancements (up to 40% faster VM performance over earlier Fusion releases), USB 3.0 support, improved support for Macs with 16GB+ of RAM, using Launchpad to search for Windows programs, using AirPlay Mirroring to stream Windows apps to HDTVs, Mountain Lion notifications center support, and yes...optimization for Retina Displays (if you have one). Oddly, VMware made the new restricted-VMs feature (from Workstation 9) only available in a new "Fusion Professional" product; perhaps they figure most Mac VM users are not using virtualization in a corporate setting or such?
New Features in VMware Workstation 9.0
IMPORTANT NOTE: as with Workstation 8.0, a relatively modern 64-bit x86 CPU is REQUIRED on your host-system for this new version of Workstation! (i.e., EM64T Intel chips or AMD64)
Key New Features: Windows 8 Guest Support, if you care.
Windows 8 Support is one of the headline new features of Workstation 9.0. The product promises an "Easy Install" that simplifies creating Windows 8 virtual machines. I can not help think that MS and VMware conspired to make a new version of Workstation necessary in order to have an "easy install" experience, but what do I know? Since I have zero immediate need for Windows 8, I am not too concerned about Win8 support in VMware. In fact, by the time I am ready for Windows 8, at the current pace of updates, they will have VMware Workstation 9.0 or VMware Workstation 10.0 on the market — i.e., I doubt I will upgrade to Win8 for at least a year or two.
Unity mode has been updated to work with Windows 8 applications. Unity allows applications running in virtual machines to appear on the host desktop as if they were running on the local OS. The Windows 8 "Modern UI" (nee "Metro-style" branding-issue) applications designed for the Windows 8 Start Screen should integrate smoothly with desktop applications on the host OS. I have not tried this (for obvious reasons: I do not have Win8 installed), but sounds like a feature I'd expect from Unity regardless; hopefully it works well. There is now multi-touch support for that "true Windows 8 experience"; again, I don't care -- I am a software developer and I prefer my keyboard and mouse for my primary development machine.
Other New Features and Improvements: Worth the Upgrade?
VMware Workstation 9.0 promises, as do most new releases of the product, to support ever more powerful virtual machines. The list of improvements include:
Faster startup performance — though, by how much I don't know. Personally, I have not had an issue with the VM startup times under Workstation 8. My unencrypted VMs boot nearly instantaneously on my desktop, so I do not really know how much additional performance there is to get.
Intel™ Ivy Bridge compatibility — this sounds nice, but really, am I going to have to update to Workstation 9.0 to get this? I have a desktop with a motherboard that can support an Ivy Bridge processor (I currently have a Sandy Bridge series in it), and I purchased it with the intention of updating once the Ivy Bridge series were out and widely available. But, if updating the processor would force me to upgrade Workstation in order to achieve compatibility, both can wait — my development desktop is peppy enough for now.
USB 3.0 support for Windows 8 virtual machines — great, but do I get USB 3.0 support in my other VMs? Well, it depends. Workstation 9 supports attaching USB 3.0 devices to Windows 8 virtual machines. The latest portable devices use USB 3 (SuperSpeed) to achieve faster transfer rates for data. USB 3.0 devices such as portable storage devices and video equipment can be connected directly to Windows 8 and Linux virtual machines that contain in-box drivers USB 3.0 controllers. So, aside from those situations, the answer is apparently: no. So, this feature's usefulness will depend on your environment.
support for OpenGL 2.1 on Linux and improved 3D graphics performance — OK, this one sounds at least moderately interesting to me. I use VariCAD for some 3D product design and idea development, and it would be nice if the already-peppy product ran even faster in VMs. There is mention of an improved Windows XP graphics driver and fundamental changes to improve performance and enable more advanced graphics capabilities in the future, each of which sounds nice.
Remote desktop type capability via "WSX" — although I personally have no need to access my VMs from my phone or whatever, VMware seems to think this is a big deal. They included a new Web interface called WSX that allows access to virtual machines running in Workstation or on VMware vSphere® from tablets, smart phones, laptops or desktop PCs. They claim to do this through a new high performance, Web-based interface that delivers a native desktop experience and does not require flash or browser-based plug-ins. Again, nothing I care about. And, from their release notes page, comes the following quote of concern: "WSX is currently not supported for production environments" — interesting... even as this is a highlighted key-feature of the release that I am supposed to pay for?
Some of the reason for this not-production-ready situation has to do with device and browser support:
This feature requires a very modern browser that supports HTML5 with WebSockets. VMware recommends using the Google Chrome 17 browser on PCs and the Apple Safari 5 browser on Mac OS hosts and iPads. Currently there are issues using this feature with Microsoft Internet Explorer 10. WSX may work with other browsers and on Android tablets running Ice Cream Sandwich with the latest version of Google Chrome installed, but more testing is required.
Restricted Virtual Machines — finally, a feature I can see value in! Per VMware's release announcement: "IT administrators and instructors can create virtual machines and configure them to prevent employees or students from dragging and dropping files between virtual and physical desktops, attaching devices, or tampering with the virtual machine settings. Once restrictions are configured, the virtual machines can be encrypted and distributed to run on Mac, Windows, or Linux PCs with VMware Fusion® 5 Professional, Workstation 9, or VMware Player™ 5."
This restricted VM functionality only works on the most recent versions of the VMware products, and it is really the only "killer feature" (from my perspective) that would make me consider the upgrade. Being able to configure a virtual machine with one password to launch it and another password to change its settings should allow administrators to distribute VMs to users with much less concern that they will wreak havoc on the VM after it is deployed.
Downloading Virtual Machines from vSphere — OK, this would be my second feature worth considering WS9 for: Workstation 8 enabled customers to (only) upload virtual machines to vSphere, and now Workstation 9 enables downloading virtual machines from vSphere by dragging them from the remote host to the My Computer section of the Virtual Machine Library. Although nice, I can not help thinking that this should have been an 8.1 (i.e., free update) feature.
Disk Cleanup — this feature sounds good to me, as I currently rely on the standalone VMware Converter product to recover / shrink unused disk space. WS9 includes a new management option to easily recover disk space, and I need to play with it and compare to the capabilities of Converter. It sure would be nice to simplify this all-too-often requirement.
Some other miscellaneous features worth noting — views of your virtual machine on the task bar now include controls to change the power state; "quick switch" is back and hosts tabs have been included in the full screen toolbar; nested virtualization improvements allow users to run ESX as a guest OS and run a 64-bit operating system nested in ESX using less system resources.
There you have it. The choice is yours as to whether the upgrade price (around $119) or the full-product price (around $249) is justified by the features in this version of VMware Workstation 9. I am generally in no hurry to acquire the product like I have been with all prior (paid) releases. If I make the move to Windows 8 sooner than I anticipate, I will most likely update my VMware software at the same time, but for now I am just going to enter into a wait and contemplate mode until something pushes me off the fence.