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

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"?

Saturday, June 30, 2012

Delicious Firefox plugin bug


My Curl Kanji applet was refusing to center itself correctly in Firefox as the window width was collapsed to the applet's width. Mystery padding was fixed to the left of the applet.

The applet resizing and centering behaved correctly in WIndows Chrome, IE, Opera and Safari.

The culprit?  Delicious bookmarking.

Delicious placed its icons left of the address field on the navigation toolbar.  Result: a minimum width of padding left forced into the page.

Turn off the Navigation Bar and the padding vanishes.

Move the tagging icons to the right of the address field and padding vanishes.



Thursday, June 28, 2012

Android 4.1 Jelly Bean for Asus Nexus 7

I linked the version article to the See Also for Android OS on en wp this A.M. - there is the list at the moment:
  • Vsync timing across all drawing and animation done by the Android framework
  • Triple buffering in the graphics pipeline
  • Enhanced accessibility
  • Bi-directional text and other language Support
  • User-installable keyboard maps
  • Expandable notifications
  • Automatically resizable app widgets
  • Multichannel audio
  • Bluetooth data transfer for Android Beam
  • Offline Voice Dictation
Next: the CAEDE (maple) beta ...

( Of course, always painful to see another tool on eclipse - the IDE from the IBM Visual Age team - while that Smalltalk version, VA,  remains unknown at instantiations.com after their great Java tools were sold to ... Google. )

Here's what the SDK lists: (click the PNG below to get a legible view)


Here's the listed ADT changes:

ADT 20.0.0 (June 2012)
Dependencies:
  • Java 1.6 or higher is required for ADT 20.0.0.
  • Eclipse Helios (Version 3.6.2) or higher is required for ADT 20.0.0.
  • ADT 20.0.0 is designed for use with SDK Tools r20. If you haven't already installed SDK Tools r20 into your SDK, use the Android SDK Manager to do so.
General improvements:
  • Application Templates
    • Added Android application templates to allow developers to create specific types of applications faster, using Android-recommended best practices.
  • Performance
    • Improved overall ADT performance and fixed memory issues. Loading SDK data should be up to 30% faster.
  • Tracer for GLES
    • Added new perspective view and tools for tracing OpenGL calls for an application and track the visual results of each call. (more info)
  • Lint
    • Added new Lint rules for manifest registrations, duplicate activity registrations, security checking, correct use of Toast, missing SharedPreferences commit() calls, Fragment class instantiation, and handler leaks.
    • Created tighter integration of lint with the layout editor. (more info)
    • Added execution of Lint tool on save option for Java files. (more info)
  • Layout Editor (more info)
    • Added highlighting (in bold) for important attributes, inline preview of colors and images, including the corresponding resource name.
    • Added display of default values, when available.
    • Added completion of resource values and enum and flag constants.
    • Added support for displaying advanced properties, and nested properties for better categorization, for example, layout params are listed first as a single nested property.
    • Display Tooltips over the attribute names, not values, so they never obscure the value column.
    • Provided checkbox support for boolean values.
    • Added support for switching between alphabetical and natural sort orders.
    • Improved layout editor tool's window management for more usable editing views.
    • Improved the layout editor's configuration chooser header user interface.
  • XML Editing
    • Added go to declaration support for theme references (?android:attr, ?attr:).
    • Improved code completion in style definitions.
    • Improved code completion for the minSdkVersion and targetSdkVersion attributes in manifest files so that version descriptions are displayed for each of the API levels
    • Provided support for code completion of custom attributes for custom views, including current edits to the style files.
    • Improved synchronization of text and graphic editors with the XML outline view, including outline changes and display of current selection.
  • Build System
    • Added automatic merging of library project manifest files into the including project's manifest. Enable this feature with the manifestmerger.enabled property.
    • Added automatic ProGuard support for the aapt -G flag. This change causes the build system to generate a temporary ProGuard keep-rules file containing classes that are referenced from XML files (such as custom views) and pass this to ProGuard at shrink-time. This can make the resulting APK much smaller when using just a small portion of a large library project (such as the Android Support library), since the catch-all rules to keep all custom views from the default ProGuard configuration file have also been removed.
  • Added support building and debugging NDK-based Android projects.
  • Added support to the Asset Studio Wizard for padding and turning off background shapes.
  • Improved LogCat to allow developers to set colors for different priorities.
  • Improved app Run functionality to allow running on multiple devices with a single launch. The target tab in the launch configuration dialog includes an option to allow launching on all connected devices, with the option to further narrow the list to just physical devices or just emulators. (This feature is available only for Run configurations, and not for Debug or JUnit tests.)
Bug fixes:
  • Fixed a number of issues where Lint incorrectly reported code errors or failed to flag code issues.
  • Fixed several bugs in the layout editor.
  • Fixed compatibility issues with Eclipse 4.x (Juno), including cut/copy/paste functions.



Wednesday, June 27, 2012

Curl versus prototype.js

Here is what the prototype.js site suggests:

var Person = Class.create({
  initialize: function(name) {
    this.name = name;
  },
  say: function(message) {
    return this.name + ': ' + message;
  }
});

var Pirate = Class.create(Person, {
  say: function($super, message) {
    return $super(message) + ', yarr!';
  }
});

Here is my Curl equivalent

{define-class public Person
  field public-get private-set name:String
  {method public {say msg:String}:String
    {return {String self.name, ": ", msg}}
  }
  {constructor {default name:String}
    set self.name = name
  }
}

{define-class public Pirate {inherits Person}
  {constructor {default name:String}
    {construct-super name}
  }
  {method public {say msg:String}:String
    {return {String {super.say msg}, ", yarr!"} }
  }
}

Now here is my naive test code:
{output {{Pirate "Long-John"}.say "ahoy matey"}}
and here is the output:
Long-John: ahoy matey, yarr!

Note the lack of sigil's, var's and strange parenthetical matings.
But Curl also has 3D graphics and 2D paths and db interfaces and an IDE ... and now generates Android app's. Oh ... and a debugging environment with graphical inspectors and color outline  and fill debug inspection highlighters ... and is almost Smalltalk-ish LISP.
And from the same DARPA project as WWW.  SCSK Curl  (formerly MIT Curl).
Did I mention multiple inheritance? Mix-in's ? Anonymous proc's? Async workers?

{after (10s * long-wait) do
   {more-than-HTML-JS-lib for-the-web}
}
|| public classes, library classes, packages, imports, includes, macros, enums, Array-2-of
|| abstract classes, final classes, sealed classes, shared, serializable,deprecated,open ...

Tuesday, June 19, 2012

Kanji of the Day


Because a collection of Curl objects underlies the Kanji by Grade pages at http://www.aule-browser.com/kanji/kanjidic2-grades.html the pages now have a Kanji of the Day feature with only a minimal change (a variable's value replaces a character literal and a procedure is called with two integers to delimit a safe and reasonable range.)

The Kanji character for the session is placed as the default in the search text field. A student clicks the 'Find' button to jump to the definition for that Japanese kanji character.

Within the applet, the kanji character is found by using a factory method on the class Random and a seed from a DateTime instance. The instance of a Random type is likely LinearRandom as Random is itself an abstract  class.

The same class declaration 'scurl' file is included by all of these kanji-by-grade applets.

Note: I also generalized the search function today by using one more instance of GuiMark.




Sunday, June 17, 2012

Find a haiku: GuiMark and TextSearchPattern


It was time to put a search panel into the views of Bashō haiku, so that was done today using the Curl GuiMark facility and the TextSearchPattern class.

What you see below is ぬ夜の雪 entered into the TextField next to the FIND button and the ScrollBox has scrolled down to place that poem at the top of our view.


This will now be the norm for these Curl applets on the web pages at aule-browser.com

Note added June 19: this is now generalized as a search using rotating GuiMark's.


Friday, June 8, 2012

Kanjidic2 Japanese kanji by School Grade

There is a new set of 12 Curl applets for studying Japanese kanji this morning.

They are linked at http://www.aule-browser.com/kanji/kanjidic2-grades.html

Here is a snapshot of the applet for combined Grade 9 and Grade 10 Japanese kanji from kanjidic2 with meanings and both on and kun readings in katakana and hiragana:


These pages require the MIT Curl Surge RTE browser plug-in from www.curl.com

Monday, June 4, 2012

Varying Joyo kanji order of presentation

re: varying the order of presentation of Joyo kanji definitions without edits of the text original

By using the serialization technique of my last note, the pages from Kanjidic2 can be varied in their order without touching the text original or using a DB.

A Curl applet could use SQLite, MySQL or JSON to achieve the same, but this varying order of presentation can also be accomplished using just the one web language, namely, MIT's Curl from www.curl.com

serialization of an off-line text resource


To see the effect of my Curl serialization effort look at the speed of the small daily pages such as http://www.aule-browser.com/kanji/poets/basho-mee-indexed.html

The new daily page generated fast and it loads very fast. I have already cycled twice through the BIN serialization files as I find minor transcription errors in the principal text resource - but that text resource now does not need to reside on the applet web server !

Here is a snapshot for





Sunday, June 3, 2012

serialization for text source integrity


I now have a Curl applet up using only serialized data as the source - this will make all of the "Learn Kanji" applets faster hereafter and help keep my fingers off my input text source !

The applet uses the {deserialize } macro to load its data and does not reach the original source.

The approach will result in much faster "kanji of the day" applets using the Basho Haiku as their learning resource as no iteration through the data will occur at load time and the applets are one degree away from the vulnerable source.

This will be even more significant when working with no SQL and no JSON for the large JMDict Japanese resource as well as the smaller Kanjidic2 and its Edict2.

Entire arrays are serialized with a simple call to a stream to write one object.  The object classes are declared as serializable and all affected fields have at least a default value.

The result is that my own annotations are kept independent of the source file.

I may turn this same approach to an applet for viewing the tags in my 9000+ Firefox booksmarks so as to avoid both HTML and JSON.

Here is a snap:






Tuesday, May 29, 2012

Basho Haiku as a Curl applet in HTML

Basho's haiku poetry in a Curl apple with hiragana and romaji transliterations/transcriptions.

www.aule-browser.com/kanji/poets/basho-complete.html




Japanese Punctuation in UNICODE


Over at http://www.aule-browser.com/kanji/kana-charts-curl.html there is now  a view of all Japanese punctuation listed at ja.wikipedia.org with UNICODE 16-bit and often also the utf-8 for urlencode.

Unfortunately, my favourite HanaMinA font was not adequate to the task, but neither were any of the default Unicode DejaVu, Lucida or Arial fonts.

Here is a snap of the result:


The font-family selection for punctuation characters required the use of a CharClass - a char-map class in Curl.  A total of 4 font families contributed to forming a complete list - most often with half-width presentation preserved.




Monday, May 28, 2012

Curl data versus JSON data (light-weight markup)

Here is the top of a validated JSON katakana data file for Japanese e-learning:

{"katakana": [
{"ucs": "30AB", "utf-8": "E382AB", "kana": "カ", "info": "katakana letter KA"},
{"ucs": "30AC", "utf-8": "E382AC", "kana": "ガ", "info": "katakana letter GA"},
{"ucs": "30AD", "utf-8": "E382AD", "kana": "キ", "info": "katakana letter KI"},
{"ucs": "30AE", "utf-8": "E382AE", "kana": "ギ", "info": "katakana letter GI"},

and here is the Curl:

{let katakana-array:{Array-of Katakana} = {new {Array-of Katakana},
{Katakana "30AB", "E382AB", "カ", "katakana letter KA"},
{Katakana "30AC", "E382AC", "ガ", "katakana
letter GA"},
{Katakana "30AD", "E382AD", "キ", "katakana
letter KI"},
{Katakana "30AE", "E382AE", "ギ", "katakana
letter GI"},

In Curl, both require field definitions for processing - except that the Curl data requres a minimal class definition and a default constructor declaring all fields as being assigned (simple value class).

Of course both could have been reduced to mere arrays of strings, but then the iteration over the data would use no tags or keys.  The Curl version is tagged, but internally:

{define-value-class public final Katakana
  field private constant ucs-code:String || = "0000"
  field private constant utf8-code:String || = "000000"
  field private constant kana-char:String || = {String '\u5B57'} || "字"
  field private constant kana-name:String || = "Ji"
  {getter public {ucs}:String
    {return self.ucs-code}
  }
  {getter public {utf-8}:String
    {return self.utf8-code}
  }
  {getter public {katakana}:String
    {return self.kana-char}
  }
  {getter public {character}:String
    {return self.kana-name}
  }
  {constructor {default ucs:String, utf:String, kana:String, info:String}
    set self.ucs-code = ucs
    set self.utf8-code = utf
    set self.kana-char = kana
    set self.kana-name = info
  }
 }
{include "./katakana-unicode.scurl"}

The iterator block accesses each instance as, e.g., val.ucs and so forth.

In fairness, the JSON could have been

{"katakana-array": [
{"katakana": ["ucs": "30AB", "utf-8": "E382AB", "kana": "カ", "info": "katakana letter KA"]},

but it further complicated iterating over the data.

In the Curl applet the Curl data is processed dramatically faster, naturally.

The JSON data can be used anywhere, e.g., by Pharo Smalltalk or jQuery in web page widgets.

Note: the UTF-8 can be used to urlencode:  "E382B6" becomes %E3%82%B6 for a URL.

Here is one result using the Curl data: (click to view)

 

The applet is located at www.aule-browser.com/kanji/kana-charts.html



Monday, May 14, 2012

joyo kanji

I have added a Curl applet with the joyo kanji from the 2010 revision (that's 2136 dictionary entries from kanjidic2.)


I discuss the features over at my Curl Community blog. Here's the short account: suppose you are at 919; enter 40 and press ENTER.  Once the generic "water" kanji displays, the RIGHT INNER button beside the thin top right-arrow will let you "jump back up" to this 919 "window" kanji.

If you instead jump forward by entering 1926, you can "jump back" with the left "inner" button which is beside of the skinny LEFT arrow at the top.

Why the "jumps" ? The code was needed to add "red" and "green" buttons to a list on which to base "spaced-repetition".

A desktop version for Mac, linux or windows is about 24-hours away.

The list is just a CSV file, so you could move the applet to your own machine if you have a simple script in Rebol or the like - but it will then be a local browser page.  The desktop version will use no browser and store ts state in client-side persistent data instead of cookies.

Saturday, May 5, 2012

Desktop Kanji


While there are a great many useful Kanji webpages for learning, studying and reviewing Japanese, I find that I like my small desktop app.

One reason is that I can flip off English and just leave it sit there on the desktop.  The web browser can close, I can do some programming, and then I give a click and confirm that I recall what that particular Kanji can mean.






Saturday, April 28, 2012

Curl CDK SQLite Library link


Looking for the Curl SQLite CDK ?

Ignore the DOWNLOAD link: the three links at http://sourceforge.net/projects/curl-cdk/files/ here will lead to the zip files -  such as what you want -

 http://sourceforge.net/projects/curl-cdk/files/curl-cdk/

The DOWNLOAD at http://sourceforge.net/projects/curl-cdk/ is JUST what it says it is ( "util" and NOT the "cdk".)

I guess most people just figure this out ... but the link for SQLite library in the Curl docs viewer lands you there and not where you need to be ... where the zip's are.

I posted a note on this over at the Curl community.

As for UNSQL, Curl already had several features to use for structured external information instead of relational data tables.




Tuttle Kanji Flashcard app


At http://www.aule-browser.com/kanji/tuttle-henshall-kanji.html there is now a Curl applet for the Tuttle kanji cards ( I am still on the red flashcard set ! )

I used this card as a reminder of the Bayware "Power" Kanji software for Windows 95 later marketed by Transparent Language as Kanji Power2 or some such.  That software had some real strengths in its visual interactive approach to syntax and post-position particles for Who-Where-When-verb basics and modifier-before-modified.

The strength of the Tuttle cards is that each flashcard includes four 2-Kanji combinations with the Kanji of that card.  At my age, my quarrel is with the small font for these - also an issue with the O'Neill paperback.

Font-size is even an issue in Firefox with the Perapera plugin as using CTRL-+ for the browser window content causes the plugin's popups to explode in size.

The Curl* applet illustrated above includes the UNICODE value and the Henshall number.

Request a variant, and I can produce it in about an hour (skip-code, Nelson etc) so long as the information is in the Kanjidic2 XML file.

I will post a download link for the CSV file for the Tuttle flash card set for anyone using Excel or the like.  Now to go look on-line for the "green" set ...

* Curl requires the Curl browser plugin from curl.com or curlap.com (in Japanese.) Curl is in version 8.0 and is very secure and my preferred alternative to Java as both language and browser plugin.  I will add desktop versions today or soon.



Friday, April 27, 2012

Heisig Remembering Kanji with Curl


The Curl applet is here: http://www.aule-browser.com/kanji/heisig-kanji.html


This one is for the entries in the Kanjidic2 online Japanese-English dictionary which have a number in Heisig "Remembering The Kanji" book (3007 Kanji translations in this set and only a max of 7 variants shown.)

Again, if you only want the CSV file, it is there for download. For other options, visit
http://www.aule-browser.com/kanji/



Curl Kanji Study Applet for Remembering the Henshall Kanji


There is a view of the first version of my Curl Kanji applet at http://kanji.aule-browser.com/



These are the Kanji entries in the Kanjidic2 XML Japanese-English dictionary which correspond to Henshall's "Remembering Japanese Characters" book. I also include the UNICODE UTF-8 codepoint for use in HTML

塦  =  Curl's  \u5866  for our character or U+5866, if your prefer.

The web applet is a few lines in the Curl web programming language from SCSK at curl.com or curlap.com



Wednesday, April 25, 2012

Kanjidic2 as CSV in HTML and text


To aid a neutral party in assessing approaches to digital dictionaries for Japanese, I have posted an HTML file displaying 10,000+ of the first entries in Kanjidic2 at
  http://kanji.aule-browser.com/kanjidic2-m12.html
I have restricted the dump to the Kanji, the UCS code and a max of 12 of a possible 14 meanings.

There are less than 10,200 due to the fact that in the first 12,155 entries, many had no XML meaning content which was not assigned a language attribute.  Those few thousand may have English translations in markup previously used for foreign languages.

The file can be found as
  http://kanji.aule-browser.com/kanjidic2-m12.csv
with a three line header which you may have to alter for your purposes.

The Kanjidic2 XML file was parsed using the Curl XDM library from curl.com (Nihon-go http://www.curlap.com)

As it stands, the HTML file should be useful for building custom Anki flashcards (themselves stored as SQLite.)   I will be using variant CSV output to construct dictionary software with annotations and spaced-repetition options.  Curl has both CSV and SQLite libraries in addition to the XML libraries.



Tuesday, April 17, 2012

Curl to COBOL via server-side Java

A industrial project using an interface for Curl to Cobol is outlined at curlap.com (at this time in Japanese only.)

This seems to be the first major project using the Curl-Java ORB project which can be seen at sourceforge.net in open source.

The various modules were built by a small team using the Curl Visual Layout Editor to produce the UI.

Daido Metal is located in Nagoya and manufactures such things as precision automotive bearings.

Friday, April 6, 2012

Android numbers


The numbers for newly activated Android devices look very good.

Compared to some of the JavaScript frameworks, Curl CAEDE should look very good - but the CAEDE option is getting no press whatever in USA, Brazil, Europe, China, Korea, India, Africa, Malaysia, Indonesia ...


Tuesday, February 14, 2012

HTML5 RIA


The hype is here (preview-version).

I won't repeat the claims made by Microsoft here, but the RIA acronym remains with .NET and Silverlight - but: Visual WebGui (VWG)
is the .NET RIA solution that Microsoft has been trying to achieve with Silverlight but with one significant difference: VWG unlike Silverlight opens the new cross-platform, cross-browsers HTML5 horizons for Microsoft .NET developers
which is another way of saying bye-bye Silverlight.

Curl's CAEDE strategy is to place Curl in the developers' hands but to leave the Curl runtime off the users' device.  Hmmm.


Sunday, January 22, 2012

Kindle PC Reader


I am running the Kindle PC Reader 1.8.3 and it is dreadful.  Hopeless footnote formatting.

My post on this at Global Curl is somewhat polemical and rhetorical, but really - given the lack of features in the iBook 2 Author tool, both Apple and Amazon are inviting competition.

Kobo's new owners?  I'm thinking of the disregard for Toyota back when they were a minor vendor in North America - only now we are talking China, Indonesia, India and many other cultural regions where Amazon, Apple and Google just don't cut it.  And I don't mean "pages".

For an interesting language with a natural bent for such things as flowing footnotes, see co-expressions in Icon, Unicon, Converge or Object Icon (or constraint-handling rule libraries elsewhere post-PROLOGIA IV and CLP.)


Saturday, January 21, 2012

iBook Author Tool

Here are recent comments from the Apple page on the iBook Author tool:

Customer Reviews
No mathematical notation support
     by D. Ernst
This would be great if there was (1) reasonable support for mathematical notation and (2) a way to import LaTeX documents (the standard for typesetting mathematics). Until that happens, mathematically heavy texts are a no go.
And

No way to note "references"
     by Conrad Fischer
There is no way to note "references" or "endnotes". How do you write a textbook without having references?
But I did not validate either.

I link to this post over at the global Curl community.

netstring markdown md2curl

1)  add a Curl class for parsing netstring such as
14:4:this,1: ,9:netstring,,
with docs note on handling true length of utf-8 strings in light-weight markup.  A PEG parser ?

2)  md2curl is available as name for markdown-to-Curl parser.  See Java PEG parser.  Q: what advantages to having Traits for parsers ?

note: true-length of presented string varies also with Unicode composing marks such as accents for presenting Russian as text in e-learning applications.  Given these issues, a parser in Icon, UNICON or Object Icon seems appealing as an alternative to PROLOG. alternative: compiled Red (Rebol-like).

ironic, in a way, that we move to 64-bit while shy of UTF-16 as we get terabyte DASD and higher-speed networks: 16-bit text could have been planned as the markdown delight (we might even have been spared XML.)

I have a link to this post over at the global Curl community.


Friday, January 6, 2012

gwt CAEDA

How does the Java-to-JavaScript Google gwt environment compare to the CURL-to-JavaScript (both are eclipse plugins.)

[to be continued]

Instantiations