Showing posts with label UI. Show all posts
Showing posts with label UI. Show all posts

Sunday, February 19, 2012

Gesture Control


What Westerners, Europeans and others may not appreciate is how often native Japanese-speakers use gestures to disambiguate kanji when speaking due to the great number of homonyms in their morae-based language.

Will gesture-control of devices lead to such combined speech+gesture identification?



Tuesday, June 29, 2010

Visual Prolog 7.3

Prolog Development Center has just released version 7.3 of Visual Prolog.

VIP was once known as Borland Turbo Prolog and was one of my favorite tools alongside Borland C++ for OS/2.

PDC Prolog has its counterpart in the Mercury project: a typed Prolog.

So what is new in 7.3? Well, Visual Prolog is getting ready to go 64-bit.  That and more are detailed at the 7.3 page.

For a while I thought the Prolog would go behind the scenes at PDC as it did when Air Liquide acquired Prologia in France (the home of Prolog IV as CLP.)   Happily PDC now is back to showcasing at least AI and not just smart software applications.

But what will the fate of this Prolog prove to be?  In a decade or two, projects such as Oz and Mercury may be in other hands - but a small commercial venture?

In my experience the strength of Visual Prolog was not the IDE or the GUI-building tools but the debugging.  And that has been further strengthened in the 7.3 release.

There is a "personal version" available for download and extensive examples come with it.

Prolog is part of the Adobe world in the ILOG arena (an IBM acquisition) and in an age of multi-processor 64-bit hardware, Prolog should come into its own in the RDF processing needs of the semantic web (in which regard, see Logtalk and the XSB project as well as http://www.swi-prolog.org/ for alternatives to PDC.)

A typed-Prolog should present no problem to ActionScript Flex developers at home with a typed ECMAScript variant - and "declarative" MXML UI layout.

Other languages superbly suited to processing text: ObjectIcon, Icon 9.5, Rebol, Oz.

Other Prolog implementations of merit: Eclipse-housed AMZI! Prolog.

For OOP for almost any other Prolog than PDC, see http://www.logtalk.org/

When the ICON language was named, Ralph Griswold could not have suspected that computing would come to have an "iconic" interface.  Curl has suffered a similar fate due to haxx.se and cURL.  Sadly, XML has a "prolog" and not a "prologue" so without RDF, searching for news on Prolog and XML is vexing.  So far, Rebol fares best and Oz much better.  As for Mercury and Alice, what's in a name?

http://www.logiquewerks.com/index.html

Monday, September 29, 2008

Curl: what's in a name?

Actually I'm not going to carry on about Curl versus cURL today, but rather about what's optional in a Curl UI.

If you are running the Curl IDE and a Curl applet, you may not be aware that a CTRL-Right-Click gives you a popup from which you can inspect the Curl widget under your mouse pointer. So what's in a name?

Well, all Curl visual objects have options - and one option which you can set is a name. If you have a few applets sharing the same code packages, it can save you some time if you able to track that this widget 'X' in this container is in fact, say, 'the Demo-only custom drilldown label-only-hidden-button'.

Why does this matter? Well, if a widget container was instantiated declaratively, as say,
|| (somewhat simplified for illustration)
{MyContainer
{VBox {HBox {CustomWidget drilldown = anon-proc}}}}

you would have no handy instance variable (field) or local variable or getter method to access this instance of CustomWidget. Whether you are debugging production code or updating an iteration of a prototype, you may wish you had done this:
{MyContainer
{VBox {HBox {CustomWidget name="Demo drilldown here", drilldown = a-proc}}}}

Now when you use CTRL-R-Click to inspect that widget, you can flip open the options and there it is: the name. Want to set a breakpoint? Open the source file and search on that name. There you are.

So it's not so much "what's in a name" as "what useful tag is hidden in that widget ..."