Tuesday, August 28, 2012

Google-Dart / SVG Widgets Released on Github as Open-Source

Dart-Squid UI SVG / Dart Components


SVG / Dart GUI Widgets Initial Release

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.

2018: UPDATE

I removed the Github Repository where I had this code.
I have not had time to update my SVG/Dart Widgets to make use of the latest Dart features, but perhaps sometime in the future I will do so. 

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).

These components work in the Dartium browser (Chromium with Dart VM). To use the normal 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).

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.

Continue to read this Software Development and Technology Blog for computer programming articles (including useful free / OSS source-code and algorithms), software development insights, and technology Techniques, How-To's, Fixes, Reviews, and News — focused on Dart Language, SQL Server, Delphi, Nvidia CUDA, VMware, TypeScript, SVG, other technology tips and how-to's, plus my varied political and economic opinions.

Friday, August 24, 2012

VMware Workstation 9.0 New Features

VMware Desktop Virtualization Products Updated



New VMware Workstation 9 and Fusion 5

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.

Continue to read this Software Development and Technology Blog for computer programming articles (including useful free / OSS source-code and algorithms), software development insights, and technology Techniques, How-To's, Fixes, Reviews, and News — focused on Dart Language, SQL Server, Delphi, Nvidia CUDA, VMware, TypeScript, SVG, other technology tips and how-to's, plus my varied political and economic opinions.

Wednesday, August 15, 2012

Microsoft Office 2013 PDF / Open XML Support

Office 2013 to Finally Support Editable PDFs and Full OpenXML Standards

Open XML : FULL Support

Yes, the keyword of interest here is full. Since MS Office 2007, Microsoft has supported partial Open XML support — a la Transitional Open XML — which still allowed use of "legacy features" within those documents. Well, those transitionally-allowed legacy aspects essentially made true office-software-suite-neutral documents impossible, since proprietary functionality remained in this otherwise "open" standard.

Office 2007 could read such files, but it was not until Office 2010 before you could write these transitional Open XML formats. But, starting with Microsoft Office 2013, you will finally be able to read, edit, and write true strict Open XML document formats. It is about time! I have encountered files from Open Office / LibreOffice that I just could not fully interact with using just MS Word as I would have liked to.

Open PDF files as editable Word documents!

Woohoo! This one is a huge feature for me — the ability to open and edit the contents of PDF files (i.e., Adobe Acrobat Portable Document Format), and then save my changes as a Word document (or save again as PDF), is something I have wanted for a long, long time.

This ability to work more easily with PDF files from within Word 2013 may just be the feature that makes me upgrade to Microsoft Office 2013 when I was otherwise not planning to do so! I currently go through many extra steps to accomplish an approximation of this forthcoming capability, and having such support built into Office will be a big time saver for me.

Microsoft refers to this new feature as "PDF Reflow" and describes it as follows in this blog posting:
“With this functionality, you can transform your PDFs back into fully editable Word documents, rehydrating headings, bulleted/numbered lists, tables, footnotes, etc. by analyzing the contents of the PDF file.” The goal is not to make Word into a PDF reader or PDF editor. The goal is to help you to bring the contents of PDF files back into an editable format using Word 2013.

Microsoft Office File Format Support — PDF, ODF, Open XML

The following table is courtesy of Microsoft (from the above referenced blog posting). I like this visual chart / table / graphic for how simple it is to understand what each version of Office supports when it comes to interchangeability / interoperability by way of standard file formats.

Office 2003 Office 2007 Office 2010 The New Office
("Office 2013")
Binary format
(.doc, .xls, .ppt)
Open, Edit, Save Open, Edit, Save Open, Edit, Save Open, Edit, Save
Transitional
Open XML
Open, Edit, Save Open, Edit, Save Open, Edit, Save Open, Edit, Save
Strict Open XML Open, Edit Open, Edit, Save
ODF 1.1 Open, Edit, Save Open, Edit, Save Open, Edit
ODF 1.2 Open, Edit, Save
PDF Save Save Open, “Edit”, Save

I am now actually looking forward to Office 2013, which is definitely "news".

Continue to read this Software Development and Technology Blog for computer programming articles (including useful free / OSS source-code and algorithms), software development insights, and technology Techniques, How-To's, Fixes, Reviews, and News — focused on Dart Language, SQL Server, Delphi, Nvidia CUDA, VMware, TypeScript, SVG, other technology tips and how-to's, plus my varied political and economic opinions.