Jan. 31, 2015, 12:04 p.m.
The experiments of a drunken monkey
This post is about
For the impatient :
At first I wanted to forge a legend, because the principles explained thereafter
deserve a good exposure and a long annotated explanation. Let's just get to it :
After revieweing the works of Raymond Smullyan on self-replication,
a long time ago I decided to implement a self replicating page.
Believe me, self-replication is this blog's important and central point.
Give me something to click on
Have a look at http://sling.migniot.com/Editor/Replicant_v4.html :
- Open it
- Drag and drop files
- Click save
The Replicant page is a zip-like file. Now that you opened it you both have
- The source code of my Replicant project
- A simple HTML document for holding zip entries
As a self-saveable file, this zip Replicant can be your everyday zip & mail tool.
The "Replicant" has the following properties
- It contains a static view of the (required) data
- It is modifiable at runtime
- It contains code to interact with the static view
- It is serializable
Those properties allow such proof-of-concept demonstrations like the original Replicant
Now that we have a "document application", we can imagine
Eclipse and uml diagrams on the fly
- Open the one-liner shortcut http://sling.migniot.com/Uml/editor.html
- Now click on the text icon (3rd one) and enter the name of the class on top, followed by ENTER
- Go in eclipse, select some attributes and functions in the outline view. Press CTRL-C
- Go to the browser and in the textarea, Press CTRL-V
- Finish by a newline with a single DOT at the end (ENTER [.])
- Watch the class appear
- When attributes are of already entered type, the link is materialized
- Now press on the 4th icon to generate
8.1 a zip file
8.2 containing a pom.xml file
8.3 able to start a CRUD server for your model using
8.3.1 mvn clean install tomee:run
8.4 which you unzip in eclipse, run and then go to
- Go to http://localhost:8080/admin/ to begin entering data
- And now write an export template for [REF: ex1]
Such an implementation now exist, see This article
This blog was started
Then exported to a Replicant editor document
- Published as is to the blog address you're reading now
- And sent to a mailing list of involved users.
For reading till the end, thank you:
We are Penguins. Resistance is futile. You will be assimilated.