We described and demonstrated new additions to the Water language that further simplify Water software development and debugging. These new incremental development features provide an enhanced means to test your code as you develop it.
This month we went through a comprehensive eCommerce Water application and discussed its user interface elements, shopping cart capabilities and multiple payment options.
This month we continuee with Part II of how to deploy Water applications. We continued stepping through the process of creating Water applications from concept to deployed reality, including designing, testing, setting up the software on a server, and analyzing performance. It is now possible to deploy Water applications on the Amazon Elastic Compute Cloud (Amazon EC2), a web service that provides resizable compute capacity in the cloud. We showed how the Water Connected Content Server (CCS) runs on the Amazon cloud. The Connected Content Server is a large Water application developed by Clear Methods for finding and linking concepts, rather than strings, contained in news feeds, documents, and web pages. The CCS will include an alert feature to notify users when new sources are published that meet the user's profile. The CCS running on the Amazon cloud can be easily accessed by simply pointing your browser to a URL.
We covered part I about how to deploy Water applications: stepping through the process from concept to deployed reality, including creating, testing, setting up the software on a server, and analyzing performance. It is now possible to deploy Water applications on the Amazon Elastic Compute Cloud (Amazon EC2), a web service that provides resizable compute capacity in the cloud.
We discussed and demonstrated new uses of Water for helping business and government analysts stay on top of critical intelligence information. Water enables a new profile- and concept-based search capability. We also talked about the latest enhancements to the Water language and share status on the Water compiler project.
We took a look at the early prototype of Water in the Browser and initial performance test results. Water in the browser is a compiled, high performance client-side version of Water.
We received a comprehensive demo of the Connected Content Server, an application of the Water language being developed by Clear Methods for finding and linking concepts, rather than strings, contained in documents and web pages. The CCS will include an alert feature to notfiy users when new sources are published that meet the users' profile.
We took a look at the concept browser of the forthcoming Connected Content Server. The CCS is an application of the Water language being developed by Clear Methods for finding and linking concepts, rather than strings, contained in documents and web pages. The CCS will include an alert feature to notfiy users when new sources are published that meet the users' profile.
The topic this month was preview of the Connected Content Server. This Water-based application will provide a highly efficient means for time-critical information content discovery and distribution. The product finds and connects concepts (rather than simply strings) across data and information sources and notifies users of the information based on their dynamically-updated profiles. The information sources may include a variety of media including text, web pages, RSS, emails, and blogs. Connected content is presented to the user via a web browser, along with a concept map, geographical map, important images, and a timeline.
The topic this month was inferencing. We'll show you an application called FramerD that uses Water for managing very large knowledge bases.
We'll also go into more detail on Multiples, including examples of how to use this powerful Water feature.
This topic this month was Autoforms, the newest Water language feature. Autoforms is simple a way to automatically generate Ajax-enabled forms for calling a method or editing an object. The automatic UI controls of Autoforms optimally create the form based on the context provided in the program. We’ll show you how Autoforms work and go through a series of examples.
The meeting topic was Water-related databases, including the details of the latest developments, updates, and demos of ICE and the high speed Water Database.
This month discussed and demonstrated Water Database and Water Query, an extraordinarily simple way to store and retrieve business objects. The features of this new software include:
The following is a complete example that defines a person business object, creates an instance that is persisted in a database, and retrieves a record via primary key.
<biz.data person id=req/>
<person "mplusch"/>
person.of.mplusch
The following is Water Query example that returns one matching record.
<find_x where=x.id.<starts_with "m"/> max_results=1/>
Here is the same call by URL
http://localhost:8080/find_x.xml?where=x.id.<starts_with "m"/> &max_results=1
Limitations of version 1.0:
The topics of the meeting included demonstrations of new components of the Clear Methods X-Spec project, including creating software by describing your problem in English language sentences and outlines. X-Spec is written in Water and creates service-oriented architecture applications without traditional programming.
The primary topic of this meeting was the new WaterWiki, based on a general-purpose Wiki written in Water and integrated with Subversion (SVN). The WaterWiki is the means for implementing the collaborative documentation of the Water language. It also makes use of some of the forthcoming functionality of X-Spec, built on top of Water.
During this meeting we went into more detail on Water's natural language processing capabilities and show examples of this in action. We also showed the latest demonstration of X-Spec, a business modeling and application development tool that enables business managers without programming experience to create working software by simply describing their requirements in natural language prose. X-Spec is built on Water and is under development by Clear Methods.
This meeting included a demonstration and discussion of Water for deployment in a Grid Computing environment. Water has been used with GridServer software from Data Synapse for high performance and high reliability applications. We'll also show a natural language parser written in Water, enhancements to Water's capabilities in the areas of SOAP, debugging, database, email, dynamic HTML menu-ing, and image serving. Fry has also written a music generation program which he will demonstrate.
Planned for the agenda are demonstrations of new Water capabilities including database, sending email, dynamic HTML menu-ing capabilities, image serving, and additions based on Ajax for rich Internet applications.
I'LL HAVE MINE ON ICE
Ken Haase will discuss some new additions to Water around object life cycle and persistence. These include "uniquaries" for guaranteeing object uniqueness with respect to particular properties, a facility for registering and retrieving object instances, and (most significantly) facilities for mapping Water objects into SQL databases, allowing for both persistence and inter-operation with other applications and legacy code.
Topics will include Water database capabilities and new features of Water V5. We may wade into a new Water application known as the Liquid Browser. Time permitting, we'll look at some of the newer Ajax capabilities that have recently been incorporated into Water for easily creating browser-based user interfaces. We’ll also show some new examples of Water use.
Topics included an extended look into Water V5. We also took look at Ajax capabilities that have recently been incorporated into Water for easily creating browser-based user interfaces. We saw some new examples of Water use. This includes a new data base application and an employee timesheet program that simplifies recording time spent by employees on their projects. This is especially useful with government-related business.
Fry and Plusch demonstrated some new capabilities of Water, including new ways to access operating system commands through Water.
Topics included: demonstration of a new Water project called the Connected Content Server. This is part of a Clear Methods SBIR project based on Water to speed information content discovery and distribution, as well as content creation. The system automatically prioritizes and formats news content to link keywords to other appropriate related articles. This enables information discovery and sharing regardless of location, operating system and programming language.
Plusch will be describing and demonstrating the new Water documentation system, as well as continue his look into upcoming enhancements of the Water language.
Remember to bring your Water programs to the meetings! We provide time for users to present or discuss their active programs and receive expert help.
No meeting
Fry demonstrated some of his recent projects.
- Similarity
Water can compare objects:
"is" determines if the objects are THE SAME object, and
“equal”, determines if they are close to the same. For
example, "a" and "A" are equal since equal ignores
case, unless you change that by setting options. These return just
true or false. What if you wanted a continuum of similarity? How we
can quantitatively show that two objects are the same? For that there
is a new method named "similarity" that returns a double
number between 0.0 and 1.0 that can be passed any two objects.
- Connections
Finding relationships in documents through proper nouns.
Topics included Water programs for machine learning, new debugging menu and code editing aids in the Steam XML IDE, Java array programming, and a preview of SVG capabilities of Water.
SOAP and Water
We will take an inside look at the new SOAP support in the forthcoming
Water v5. SOAP requests on a Water Server are automatically supported
in Water v5. The SOAP requests return a Water object formatted in
SOAP encoding. A Water client can easily make remote SOAP requests.
You can also make simple URI requests with query arguments and a .soap
extension to return the result in SOAP.
This promises to be an especially useful meeting for both SOAP experts and those new to SOAP. You will see how Water enables you to directly execute SOAP tags in the editor. We'll show how you can directly work with SOAP and use Water to hide the complexity.
Here are some of the topics discussed this month.
The main topic this month was a demonstration of
the new Water-Java integration, which improves calling
Water from Java, and Java from Water.
The other topic is XML-object conversions. Because
there are many different ways to encode data in
XML, it is hard to know how best to convert XML
into objects and how to precisely output data in
XML. Water adds new capabilities for XML-object
conversion. You can convert one style of XML encoding
into objects, then output the data in CSV or another
XML style.
The topics this month include a look into the new features of the upcoming release of Steam XML V5. Fry will go into the new error message system and even show how to "program by error message". There are new math menus and a backward parser to name but a few of the features to be discussed and demonstrated.
We will also give a hands-on look at Clear Method's new XML Framework for Algorithm Innovation, which enables remote access to servers running MatLab and Octave for large-scale simulation applications
We will be demonstrating enhanced features for Java interfacing with Water in both directions; that is, how to call Water from Java and how to call Java from within Water.
Water has recently been used with Octave. GNU Octave is a high-level language, for numerical computations. It offers a means for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is compatible with Matlab. We will demonstrate how a Water program running on a client can remotely call Octave running on a server.
Fry will also demonstrate a new Water program that expeditiously creates a quick reference guide.
We will be taking a look at the new math libraries that have been recently added to Water. Water now has a full complement of built in math functions.
As time permits, we'll go over a new application example of Water -- using Water to prototype an on-line service that sends customized greeting cards through the US Postal Service.
A number of enhancements are being built into the forthcoming release of Water to refine its compatibility with traditional XML, while maintaining dynamic data handling capabilities. Come learn about these developments and see how they work in a series of code examples.
Water Server is a fully customizable HTTP server. Learn how it works and
how it can be customized. User sessions and use of HTTP cookies will be covered.
Water has built-in support for standardized documentation, testing, and debugging.
Examples are automatically tested, and tests can be easily integrated into
documentation. Doc pages are automatically generated on-the-fly for new objects.
Individual parameters can be documented and tested. Come see how you can take
advantage of these powerful features.
We will show larger-scale Water programs and their design. We will work through
Water programs that include a user interface, business logic, data integration
and server code. We plan to delve into practical applications like spreadsheets,
medical applications, and translating files into XML. You will see how Water
makes even the larger applications much more intuitive and manageable.
Looping and iteration provides the key control structure for algorithms. Water's for_each method has been extended to offer dramatic new powers, so much so that all of the other looping constructs in Water have been deprecated to give the user both easier access to the old functionality as well as increased flexibility overall. We'll show lots of practical examples of writing complex loops.
Cancelled due to major road closings from the Democratic National Convention.
June's meeting will be a hands-on tutorial for teaching
people Water who know another object-oriented (OO) language.
We'll cover the core of Water's object
system, creating methods and classes, and flow-control including
error handling. We'll describe the differences between
Water's object model and other popular object models.
We'll be doing hands-on training, so please
bring a laptop if you have one and install a Water development
environment.
Namespaces were added in XML 1.1, but have been difficult
for a lot of people to understand and use. Water is not
only the first general-purpose
language to completely integrate support for XML Namespaces
into the base language, but Water makes namespaces easy to
understand and use.
Concurrent programming is usually quite tricky and difficult
for most developers.
Java's standard thread library simplied concurrent programming,
but even that threading model can be frustrating
to understand and use. Water Threads is Water's standard
library for concurrent programming. It offers some useful and
interesting simplfications that gives you the power and flexibility
of traditional threading models, but provides abstractions to
support common patterns in concurrent programming.
Due to the late notice for this meeting, we'll have the
opportunity to work closely with a few people on their
Water projects. Plusch and Fry can go over the design
and architecture of large Water applications and help
people think through how to approach their design and
implementation.
Christopher Fry and Mike Plusch will show the latest
version of Water and Steam XML.
MIT's Engineering System Division is using Water for
advanced modeling and simulation. They were looking to
create a language to formally represent the domain of
system engineering and architecture. A graphical modeling
language was extended into a completely executable modeling
language. In partnership with
Clear Methods, a simulation and modeling engine was built
that could serve as a platform for the development of many
different modeling and simulation engines. Ben will show
the formal models and a discrete event simulator integrated
with a probabilistic network reasoning model.
Water Pattern provides a readable Regex language for string processing.
Regular expressions (Regex) is a special purpose language for
analyzing and manipulating strings. Although the Regex language
is quite powerful, it is considered very dense and hard to read.
Water Pattern is a Water solution that supports the functionality
of Regex, but it uses easy-to-read names and has the ability to
create pattern abstractions for reuse. If you like Regex or
want to use Water for advanced string processing, you'll want to
attend this meeting.
Water Mail is used for creating and sending email messages
using the SMTP protocol. It includes a Water Mail Server
which can receive SMTP messages and use flexible routing
rules to either add messages to mailbox objects, or to
call any method. The processing pipeline is fully configurable
from Water. Water Mail can also be used to support
standards-based asynchronous method calling.
Water Mail will be introduced in the Summer of 2003.
Water Request is a Water standard that provides a superset
of SOAP and HTTP. Water can automatic support standard SOAP and
WSDL interfaces on a Water Server. The Water Server can also
auto-detect a SOAP request, and format the result as a SOAP
response. It is also possible to use a standard URI request
that returns a SOAP response by the addition of a .soap
extension. WSDL interfaces are automatically generated from
a Water Web or Water Server object. These new capabilities make it possible
to build a flexible, simple system in Water, but automatically
support the standard interfaces of the WS-I Basic Profile.
Utilities to convert between Water Types and XSD/XML Schema will be
shown.
Christopher Fry will explain how you can easily understand the
core workings of Water. When you understand the execution model,
you'll be able to 'Think in Water'. Fry will cover Water's Multi-role
Object System including multiple inheritance. Fry will also show
the flexibility of 'for_each' and 'do-while'. Did you know that
you can have multiple 'while/until/try' statements in Water's 'do'
loop? 'Execution Kinds'
give you incredible power for building complex abstractions and
custom flow-control structures. Active Values and Meta-fields give
you flexibility that is not available in other major languages.
If you have been programming
Water, you won't want to miss this meeting!
Mike Plusch will lead new Water developers through the basics
of Water programming. He'll cover the core of Water's object
system, creating methods and classes, and flow-control including
error handling. We'll be doing some hands-on development, so please
bring a laptop if you have one and install a Water development
environment.
If you ask 12 different developers to create an XML representation
for some well-defined business object (i.e. a purchase order), how
many different XML representations will you get? If you ask people
using XML, they will often respond with 12 -- each developer will
use a different XML encoding style. They might say you get 24
variations because each
developer will give you a choice between a version that is 'better'
and one that is easier to work with! This is the ambiguity problem
that causes a lot of frustration when working with XML 1.0, and
the ambiguity is something that is fixed in ConciseXML. ConciseXML
is a new syntax that is compatible with XML 1.0, but offers both
precision and a concise form. The Water language uses the ConciseXML
syntax and several recent innovations have taken place. 'Normalize'
is a new Water method that uses heuristics to transform any XML 1.0
encoding style into a normalized ConciseXML form. Water also
introduces 'Derive Classes' which can take any XML data structure
and automatically derive a full XML schema using the schema language
of Water Contract.
If you have seen
people struggle with the element vs. attribute quandry, or face other
problems with XML, you'll certainly want to attend this monthly meeting.
This meeting will also be the launch event for ConciseXML.org.
ConciseXML.org is an open community for the adoption, evolution, and
standardization of the ConciseXML syntax.
Water's database library has gone through some significant
changes to make it much easier to access and manipulate
data in relational databases. Water's new 'db_resource'
makes any relational database seem like a regular Water object. New Water users are always welcome. The first
30 minutes will be Q&A and an overview of Water for new users.
We'll show some techniques for working with graphics from Water.
SVG is an XML-standard for vector graphics, and Steam can
create SVG servers that output SVG documents. We'll also show
how you can add drag-n-drop layers to Water programs. A preview
of the new graphical 3-D zooming inspector will also be shown. New Water users are always welcome. The first
30 minutes will be Q&A and an overview of Water for new users.
Water has been designed to accomodate rapid, interative development.
The IDE and libraries such as Water Test and Water Doc are important
pieces for supporting incremental development. This development
style is commonly referred to as Extreme Programming (XP).
The first 30 minutes will be Q&A and an overview of Water for new users.
Many companies are now starting pilot projects using XML and Web Services.
During the evening, we'll be creating several Web Services including composite
Web Services that combine the functions of multiple Web Services. The first
30 minutes will be Q&A and an overview of Water for new users.
New Water users welcome. We'll be showing Water tools which simplify importing non-XML data, transform XML data, and export data in different formats.
New Water users welcome. We'll be showing the new capabilities
of Water 3.0 including Water Type and Water Contract.
New Water users welcome. We'll be talking about Water App -- a new
framework for building Web-based applications in Water.
We'll spend the first hour introducing the Water language to new users. The second half
of the meeting will be showing Water Viz.
Water Viz lets you represents every Water concept in graphical form.
Water supports both strong and weak type checking as well as assertion, precondition, and postcondition type checking.
Through static caching, dynamic caching, buffering, and multi-tier distribution, a Water system can provide
great performance for distributed systems.
Clear Methods is providing three days of training on XML and Web services.
Water will be used as the primary implementation language. Registration required.
http://www.careerplacejobs.com/seminar.htm
We'll start with showing some small Water examples and then show how multiple servers can communicate.
Peter Carmichael showed a data-driven HTML resume.
We showed new documentation, testing, and debugging tools for Water and how you
can build reliable web services that are self-testing.
During one day, fifteen services were developed from requirements
to deployment. The lecture notes are available at www.waterlanguage.org
www.gbcacm.org
The user group meeting went over the scheduled 9:00 pm ending time.
We had to end the meeting at 10:20 pm because several folks
hadn't eaten dinner. The members wanted to see more
examples, Java integration, deployment scenarios, and to review
syntax. They got what they wanted. We showed
about 4 fully working examples, including creating a simple
color datatype from scratch. We described 10 different deployment
options covering local server to remote HTTP server to SMTP server deployments.
Syntax was covered in detail as was the integration of Java --
calling Java methods from Water as well as Java calling Water.
Mike Plusch will show an in-production system that receives data feeds from multiple partners and converts
the data into a single normalized form that can be processed.
Post-meeting info: Very successful first meeting where all BostonWater.org attendees
remarked on the amazing simplicity and power for building web services. We looked at
the code of over 10 in-production applications to see how Water works.
