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.

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.