on the Curl Web Content Markup Language

on the Curl Web Content Markup and Programming Language from www.curl.com and www.curlap.com

Saturday, July 21, 2012

{value } and {example }


Here is some code from the {stringify } docs in Curl using the {example } macro

{value 
  let str:String = {stringify 
  {define-proc public {foo}:void {output "hi"} || a comment } } 
  {pre {value str}} 
}

The equivalent in the {example } macro or within an applet is
  
{let str:String = {stringify 
   {define-proc public {foo}:void {output "hi"} || a comment } } 

{pre {value str}}

which I find strikes many first time users as not obvious.

Where {value } is required is in cases such as within an applet

  {applet name="our value example"}

  def str = "some text" 
  {Frame height=20pt, width=200pt,
    {text {value str} and some more text} 
  }

to avoid the result without the embedded  {value } expression which would be

str and some more text

so as to obtain the intended

some text and some more text

The remarkable thing about the Curl docs is that you can experiment with the code changes within the documentation example page, run the code, save the code or restore the original code (and even go into the applet manager and exit misbehaving code.)

Here is a snapshot: (we have clicked execute and the applet is running)


 If you click on the image you will see the {example } macro has buttons for execute, revert, save and to close the popup  (applet) {View }.

Friday, July 20, 2012

Save Knowtes

I was force to add a SAVE button to my web page notepad and its for scratch note areas.

The details are posted over at the Curl Community.

The local web app on my PC now has these before and after:

and

Thursday, July 19, 2012

alpha testers


I am looking for alpha testers for a Curl app (www.curl.com) - just a utility.

Would you consider ?  It is intended to help recall secure multi-word passphrases used as alternatives to passwords. It is web browser based in this alpha (no JavaScript but does use Curl )

There is a snapshot view at passphrases.aule-browser.com

I have committed to moving this to Pharo Smalltalk 2.0 for Android.  Curl also has an Android app generator called CAEDE at curlap.com

And then there is Mobl ...

( I sometimes generate Curl markup with Seaside in Pharo or VW Smalltalk but Seaside remains very tied to SGML in some base classes.)




Tuesday, July 17, 2012

Minimalist Web Notes

Here is my minimalist web notes app without tables, SQL, JavaScript or HTML5:


This runs against local binary files using Curl 7.0 or Curl 8.0 from curlap.com

I am running the current Curl beta for the Caede Android app builder.

Monday, July 16, 2012

Two Kanji Day


It is another 2 kanji day at the new 400+ frequent non-jōyō Japanese kanji page at aule-browser.com's kanji home page.

There is one "kanji of the day" in the Curl applet's search pane and the list of kanji is randomized each session so that at least the top character in the list may also strike you as yet another "kanji of the day".

Many of the kanji pages are now using randomized lists, although this will soon be an option for the user to select as a CSPD preference.

The webpage requires the Surge® RTE Curl browser plugin from www.curl.com

The Curl applet is fully packaged with a super-package for AULE and a sub-package for "KANJI" but required some attention to avoid having to use a {define-alias } macro in the applet itself.

The kanji are loaded from a serialized array placed in a bin file and the applet uses a pre-sized FastArray for the content to be displayed.


Sunday, July 15, 2012

Difference Proc


Over at http://kanji.aule-browser.com/ I have added a page with the Japanese kanji listed in the top 2500 in kanjidic2 but not in the Joyo kanji list.

This Curl applet is based on serialized array generated from a set-set difference.

The problem that I encountered generating this was that the {value-hash } and {equal } proc's to specifiy element identity in these parameterized sets could not be anon proc's and indeed could not even be class proc's due to a Curl compiler non-compile-time constant complaint.

Contrary to the docs, the proc's must be locally defined and named in the applet with simple {define-proc } macros.

The kanji Curl applet is in an HTML wrapper at http://www.aule-browser.com/kanji/kanjidic2-non-joyo.html and looks as follows:


Thursday, July 12, 2012

applet resync redux


As I noted over at the Curl forum, nothing forces a resync on an applet using a resync file ( Curl 7.0+ ) without

{on-applet-suspend do
  {exit 0}
}
in the applet.  No amount of work on the Surge RTE settings, the browser settings or the HTML wrapper's meta tags has any effect in a browser caching nothing.

That places the issue in Surge: when it says it has purged a suspended applet, it has not.



Wednesday, July 11, 2012

Curl Knowtepage


This is the Curl equivalent to our Knowte Firefox re-sizable text areas:


And compared to the Knote TiddlyWiki's EXE, this applet has a tiny footprint.

Here is an HTML wrapper for the Curl applet: http://www.aule-browser.com/knowtepages/index-curl.html.

You can install the Curl browser plugin at curl.com (English) or curlap.com (Japanese.)

Pale Moon browser


I am very happy with Pale Moon as a Firefox browser build for 32-bit Windows.

This looks to be a great way to run Curl applets on an Atom netbook with Windows.  There are also 64-bit versions.

I have been running 12.1.2

Sunday, July 8, 2012

Applet Resync


I have placed a post on Curl applet resync at http://communities.curl.com/showthread.php?tid=555

The comments on version control versus release management may trigger a response ....

The virtual filenames available in Curl manifests ( mcurl files) are one of the great strengths of Curl projects - but that geat feature can trip you up by confounding VC, CM and RM.

At least in my experience.

I am not aware of any public documentation of gotcha's in this Curl PM area.



Thursday, July 5, 2012

SCSK Curl and Beta Etiquette

SCSK's Curl team disabled my local PC applets.

How? By expiring the runtime engine for their Andoid development CAEDE beta IDE.

So I reinstall the old 8.0 runtime Surge® engine.

Nope. No applet will run under that 8.0.0 browser plugin until the NON-browser 8.0.1 IDE is uninstalled ( a separate selectable/optional step in the uninstaller itself !! )

My Smalltalk vendor did something like this back in the big merger that killed Smalltalk (it was years before I was willing to buy another professional Smalltalk IDE license.)

Now Instantiations owns the VA code and Pharo may get onto Android devices.  And there is the Mobl language - and Red may replace Rebol.

In its day, Borland could be outrageous as could IBM and Microsoft and Oracle.  But we are now in the post-Java manager-gotta-buzzword era -  are we not?  Don't managers now talk about "open-source methodology" as if that meant something? JavaScript is no longer a bad ECMA joke?

But here I am - hung out to dry again by a language vendor.

Challenge: name one web app framework that generates non-HTML markup such as Curl without significant revisions which break updates. No, it is not yet Seaside 3.0.x - that future must wait a little longer.

Remember when XHTML was declared by committee to be the future of web  markup?  Ahem.  How long can it take me to start calling HTML5 simply 'HTML' ?  By 2014?

At least I never fell for Google Gears ... just DBX, Nuon, OS/2 SOM/DSOM, Rebol 3 ...

Sunday, July 1, 2012

Android app for passphrase mnemonics


How quickly can CAEDE take the Curl desktop passphrases application to running as an Android app on 4.1 "Jelly Bean"?