on the Curl Web Content Markup Language

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

Tuesday, February 19, 2013

Curl surge-do help FAQ


Here are some valid uses of the Curl executable file named "surge-do" :
 /opt/curl/surge/9/bin/surge-do --edit "%1"

/opt/curl/surge/9/bin/surge-do --launch "%1"

/opt/curl/surge/9/bin/surge-do --browse "%1"

/opt/curl/surge/9/bin/surge-do --open "%1"

Running curl itself in that ./bin as ./curl --help would give you

Usage:
  -h --help                : Prints a Usage message to stdout and exits.
  -v --version             : Prints a version-number to stdout and exits.
  --lazy-compilation       : Requests that certain methods should be compiled lazily (normally the default).
  -l --no-lazy-compilation : Requests that no methods should be compiled lazily (the opposite of --lazy-compilation).
  --lazy-types             : Requests that certain types should be compiled lazily (normally the default).
  -t --no-lazy-types       : Requests that no types should be compiled lazily (the opposite of '--lazy-types').
  --show-gc                : Report GC information to the console.
  --verify-integrity       : Enable extra verifications of internal integrity.
  --host-console           : Force use of the host console.
  --trust                  : Trust all applets.
  --graphics-info          : Show a description of the available graphics driver, then exit.
  --force-graphics-hw      : Force use of the native graphics driver, even if it may be unstable.
  --safe-graphics          : Force use of the software graphics.
  --                       : Halts option-parsing. The rest of the arguments are passed directly on to the application.
  --batch-mode             : Run in batch mode (dialog boxes and such are illegal).
  -D --use-console-debugger: Enable use of the console debugger.
  --no-use-console-debugger: Disable use of the console debugger.
  --resync                 : Force resynchronization of all files as of process start time.
  --tag-console            : Tag each line of console output with the time and thread.
  --debug                  : Activate additional debug code in the given package.
  --debug-graphics         : Activate additional debug code in the graphics system.
  --sse2                   : Enable generation of SSE2 instructions.
  --no-sse2                : Disable generation of SSE2 instructions.
  --cache                  : Enable persistent caching of packages.
  -H --default-heap-size   : Set default starting heap size (e.g. 6M or 3200K).
  -i --redirect-stdin      : Redirect standard-input from a file.
  -o --redirect-stdout     : Redirect (append) standard-output to a file.
  -e --redirect-stderr     : Redirect (append) standard-error to a file.
  --utf8-stdin             : Use UTF8 character encoding for 'stdin'.
  --utf8-stdout            : Use UTF8 character encoding for 'stdout'.
  --utf8-stderr            : Use UTF8 character encoding for 'stderr'.
  --privileged             : Run with 'privilege'.
  --unprivileged           : Run without 'privilege'.
  --preload                : Preload a given file (using evaluate).
  --eval                   : Evaluate a string.
  -s --shell               : Enter interactive shell mode.
  --default-exit           : Default exit value for scripts.
  --do-not-panic           : Do not panic. Just abort instead.

The flag -l is used when running a .xcurl script

[ more to follow] 




Tuesday, December 11, 2012

Japanese vocabulary


The Curl web applet at http://www.aule-browser.com/kanji/jlpt-5-1.curl has a curious property − can you spot it ?

hint: click in vertical slider; resize page; click again.

note: a Curl applet will only run with the Surge RTE browser plugin from www.curl.com installed.



Monday, December 3, 2012

How to enable the Curl plugin in Google Chrome browser

With the latest updates - whether to Chrome or to Curl - my own Curl applets ceased to run in my Chrome browser.

There was no warning and the plugins are not in the Tools list.

The cure is to enter

chrome://plugins/

as a URI in the address bar and then set the Curl Surge RTE plugins to Always allowed.

There was no warning as with either Java or Adobe Flash.

NOTE: on that plugins page, the Curl plugins were NOT listed as DISABLED !

Google has decided that they know what is best for what they view as "little used plugins" - something decidely anti-competitive.

Saturday, December 1, 2012

Curl in Puppy linux

The latest release of the Curl web language browser plugin (8.0.03 for curl9) is now running in my RAM-resident Puppy linux on this old Asus 900A netbook - it boots from an SD chip thanks to grub.

Gettting Curl to run required going into a bin in the path as root and adding a sym-link to surge-do over in /opt/curl/surge/9/bin/surge-do which made possible manually launching the Surge manager, the Curl docs viewer and the development IDE.

What remained was to get Curl applets to run in SeaMonkey and Firefox browsers. That required  visit as root to /usr/lib/mozilla/plugins and the creation of 3 sym-links to the 3 key .so files in /opt/curl/surge/9/lib

EX:

su
cd /usr/lib/mozilla/plugins
ln -s /opt/curl/surge/9/lib/libcurl-surge-8-0.so ./libcurl-surge-8-0.so

and ditto for 7-0 and for the generic libcurl-surge.so


Saturday, October 13, 2012

Thursday, August 2, 2012

factory naming


My plea over at curlap.com is this  Monday-morning on Thursday-morning whine:

I wonder if a Curl engineer has a moment to add from-String to those classes using from-string as that is generally our pattern and as we also only have to-String

Such a small but maddening thing

( yes, I know: "consistency is the ... " ;-)


humor: APL from STSC had "laod" as well as "load" - just as some Smalltalkers need "slef" for "self" ...

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