Added most content
15
_config.yml
|
@ -6,7 +6,11 @@
|
|||
title: ForwardFire
|
||||
subtitle: ''
|
||||
description: ''
|
||||
keywords: pulsefire,java,vasc,x4o
|
||||
keywords:
|
||||
- pulsefire
|
||||
- java
|
||||
- vasc
|
||||
- x4o
|
||||
author: Willem
|
||||
language: en
|
||||
timezone: Europe/Amsterdam
|
||||
|
@ -27,9 +31,14 @@ public_dir: public
|
|||
tag_dir: tags
|
||||
archive_dir: archives
|
||||
category_dir: categories
|
||||
code_dir: downloads/code
|
||||
code_dir: code
|
||||
i18n_dir: :lang
|
||||
skip_render:
|
||||
- _posts/Emscripten-webgl-imgui-site-demo/test/ff-site.asm.js
|
||||
- _posts/Emscripten-webgl-imgui-site-demo/test/ff-site.data
|
||||
- _posts/Emscripten-webgl-imgui-site-demo/test/ff-site.html
|
||||
- _posts/Emscripten-webgl-imgui-site-demo/test/ff-site.js
|
||||
- _posts/Emscripten-webgl-imgui-site-demo/test/ff-site.js.mem
|
||||
|
||||
# Writing
|
||||
new_post_name: :title.md # File name of new posts
|
||||
|
@ -41,7 +50,7 @@ external_link:
|
|||
exclude: ''
|
||||
filename_case: 0
|
||||
render_drafts: false
|
||||
post_asset_folder: false
|
||||
post_asset_folder: true
|
||||
relative_link: false
|
||||
future: true
|
||||
highlight:
|
||||
|
|
10
source/_posts/Converted-site-to-hexo.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: Converted site to hexo
|
||||
date: 2020-01-03 17:25:50
|
||||
tags:
|
||||
- hexo
|
||||
- website
|
||||
---
|
||||
|
||||
Today converted my website to hexo see; https://hexo.io/
|
||||
Converting the content went without a problem and the themeing was also not complex to modify.
|
127
source/_posts/Cross-Unit-Converter-test.md
Normal file
|
@ -0,0 +1,127 @@
|
|||
---
|
||||
title: Cross Unit Converter test
|
||||
date: 2018-01-18 21:01:43
|
||||
tags:
|
||||
- java
|
||||
- unit-converter
|
||||
---
|
||||
|
||||
### Unit groups
|
||||
![Unit groups](unitxc-groups.png "Unit groups")
|
||||
|
||||
### Building groups
|
||||
|
||||
``` java
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @author Willem Cazander
|
||||
* @version 1.0 Oct 17, 2015
|
||||
*/
|
||||
public class UnitXCModuleKelvin implements UnitXCConfigModule {
|
||||
|
||||
public static final String GROUP_ID = "kelvin";
|
||||
public static final String GROUP_BASE_TYPE_ID = "K";
|
||||
private static final String[] GROUP_QUANTITIES = {"thermodynamic_temperature"};
|
||||
|
||||
public static final String TYPE_KELVIN_ID = GROUP_BASE_TYPE_ID;
|
||||
public static final String TYPE_KELVIN_NAME = GROUP_ID;
|
||||
public static final String TYPE_KELVIN_FLAG = buildFlag(GROUP_ID,TYPE_KELVIN_NAME);
|
||||
private static final String TYPE_KELVIN_WIKI = "Kelvin";
|
||||
|
||||
public static final String TYPE_CELSIUS_ID = "°C";
|
||||
public static final String TYPE_CELSIUS_NAME = "celsius";
|
||||
public static final String TYPE_CELSIUS_FLAG = buildFlag(GROUP_ID,TYPE_CELSIUS_NAME);
|
||||
private static final double TYPE_CELSIUS_OFFSET = 273.15;
|
||||
private static final String TYPE_CELSIUS_WIKI = "Celsius";
|
||||
|
||||
public static final String TYPE_FAHRENHEIT_ID = "°F";
|
||||
public static final String TYPE_FAHRENHEIT_NAME = "fahrenheit";
|
||||
public static final String TYPE_FAHRENHEIT_FLAG = buildFlag(GROUP_ID,TYPE_FAHRENHEIT_NAME);
|
||||
private static final double TYPE_FAHRENHEIT_OFFSET = 459.67;
|
||||
private static final Fraction TYPE_FAHRENHEIT_FRACTION = Fraction.getFraction(5,9);
|
||||
private static final String TYPE_FAHRENHEIT_WIKI = "Fahrenheit";
|
||||
|
||||
public static final String TYPE_RANKINE_ID = "°R";
|
||||
public static final String TYPE_RANKINE_NAME = "rankine";
|
||||
public static final String TYPE_RANKINE_FLAG = buildFlag(GROUP_ID,TYPE_RANKINE_NAME);
|
||||
private static final String TYPE_RANKINE_WIKI = "Rankine_scale";
|
||||
|
||||
public static final String TYPE_ROMER_ID = "Rø";
|
||||
public static final String TYPE_ROMER_NAME = "rømer";
|
||||
public static final String TYPE_ROMER_FLAG = buildFlag(GROUP_ID,TYPE_ROMER_NAME);
|
||||
public static final String TYPE_ROMER_ALIAS_NAME = "romer";
|
||||
public static final String TYPE_ROMER_ALIAS_FLAG = buildFlag(GROUP_ID,TYPE_ROMER_ALIAS_NAME);
|
||||
private static final Fraction TYPE_ROMER_FRACTION = Fraction.getFraction(40,21);
|
||||
private static final double TYPE_ROMER_FRACTION_OFFSET = 7.5;
|
||||
private static final String TYPE_ROMER_WIKI = "Rømer_scale";
|
||||
|
||||
@Override
|
||||
public void configModule(UnitXCConfigBuilder builder) {
|
||||
builder.createUnitGroupBase(GROUP_ID)
|
||||
.addQuantityIds(GROUP_QUANTITIES)
|
||||
.setBaseTypeId( TYPE_KELVIN_ID)
|
||||
.createSIUnitTypes()
|
||||
.setId( TYPE_KELVIN_ID)
|
||||
.setName( TYPE_KELVIN_NAME)
|
||||
.addTypeFlag( TYPE_KELVIN_FLAG)
|
||||
.setWebLinkWiki(TYPE_KELVIN_WIKI)
|
||||
.build()
|
||||
.createSIUnitTypes()
|
||||
.setId( TYPE_CELSIUS_ID)
|
||||
.setName( TYPE_CELSIUS_NAME)
|
||||
.addTypeFlag( TYPE_CELSIUS_FLAG)
|
||||
.setWebLinkWiki(TYPE_CELSIUS_WIKI)
|
||||
.createToBaseConverterSteps().offsetUp(TYPE_CELSIUS_OFFSET).build()
|
||||
.createFromBaseConverterSteps().offsetDown(TYPE_CELSIUS_OFFSET).build()
|
||||
.build()
|
||||
.createSIUnitTypes()
|
||||
.setId( TYPE_FAHRENHEIT_ID)
|
||||
.setName( TYPE_FAHRENHEIT_NAME)
|
||||
.addTypeFlag( TYPE_FAHRENHEIT_FLAG)
|
||||
.addTypeFlag( UnitXCConfigBuilder.TYPE_FLAG_IMPERIAL)
|
||||
.setWebLinkWiki( TYPE_FAHRENHEIT_WIKI)
|
||||
.createToBaseConverterSteps()
|
||||
.offsetUp( TYPE_FAHRENHEIT_OFFSET)
|
||||
.multiply( TYPE_FAHRENHEIT_FRACTION)
|
||||
.build()
|
||||
.createFromBaseConverterSteps()
|
||||
.multiply( TYPE_FAHRENHEIT_FRACTION.invert())
|
||||
.offsetDown( TYPE_FAHRENHEIT_OFFSET)
|
||||
.build()
|
||||
.build()
|
||||
.createSIUnitTypes()
|
||||
.setId( TYPE_RANKINE_ID)
|
||||
.setName( TYPE_RANKINE_NAME)
|
||||
.addTypeFlag ( TYPE_RANKINE_FLAG)
|
||||
.setWebLinkWiki( TYPE_RANKINE_WIKI)
|
||||
.createToBaseConverterSteps().multiply(TYPE_FAHRENHEIT_FRACTION).build()
|
||||
.createFromBaseConverterSteps().multiply(TYPE_FAHRENHEIT_FRACTION.invert()).build()
|
||||
.build()
|
||||
.createSIUnitTypes()
|
||||
.setId( TYPE_ROMER_ID)
|
||||
.setName( TYPE_ROMER_NAME)
|
||||
.addTypeFlag( TYPE_ROMER_FLAG)
|
||||
.setWebLinkWiki( TYPE_ROMER_WIKI)
|
||||
.createToBaseConverterSteps()
|
||||
.offsetUp( TYPE_CELSIUS_OFFSET)
|
||||
.multiply( TYPE_ROMER_FRACTION)
|
||||
.offsetUp( TYPE_ROMER_FRACTION_OFFSET)
|
||||
.build()
|
||||
.createFromBaseConverterSteps()
|
||||
.offsetDown( TYPE_ROMER_FRACTION_OFFSET)
|
||||
.multiply( TYPE_ROMER_FRACTION.invert())
|
||||
.offsetDown( TYPE_CELSIUS_OFFSET)
|
||||
.build()
|
||||
.build()
|
||||
.createSIUnitTypes()
|
||||
.setAliasOfType( TYPE_ROMER_ID)
|
||||
.setId( TYPE_ROMER_ALIAS_NAME)
|
||||
.setName( TYPE_ROMER_ALIAS_NAME)
|
||||
.addTypeFlag( TYPE_ROMER_ALIAS_FLAG)
|
||||
.build()
|
||||
.build()
|
||||
;
|
||||
}
|
||||
}
|
||||
```
|
BIN
source/_posts/Cross-Unit-Converter-test/unitxc-groups.png
Normal file
After Width: | Height: | Size: 224 KiB |
182
source/_posts/Emscripten-webgl-imgui-site-demo.md
Normal file
|
@ -0,0 +1,182 @@
|
|||
---
|
||||
title: Emscripten webgl/imgui site demo
|
||||
date: 2017-01-07 11:11:22
|
||||
tags:
|
||||
- webgl
|
||||
- imgui
|
||||
---
|
||||
|
||||
Created and compiled some c++ code for doing a website in imgui on top of webgl;
|
||||
Launch: [Demo](test/ff-site.html)
|
||||
|
||||
My main.cpp looks like this;
|
||||
|
||||
``` c++
|
||||
//============================================================================
|
||||
// Name : main.cpp
|
||||
// Author : Willem Cazander
|
||||
//============================================================================
|
||||
|
||||
#include "page/PageWindow.h"
|
||||
#include "page/PageController.h"
|
||||
#include "site/FFSiteBackground.h"
|
||||
#include "site/FFSiteDebug.h"
|
||||
|
||||
#include "imgui_impl_sdl.h"
|
||||
#include "SOIL.h"
|
||||
#ifdef __EMSCRIPTEN__
|
||||
#include "emscripten.h"
|
||||
#endif
|
||||
|
||||
extern "C" {
|
||||
void ff_browser_add_resize_handler(void (*handlerFunc)(int newWidth, int newHeight));
|
||||
|
||||
void ff_browser_add_popstate_handler(void (*handlerFunc)(char* hrefHash));
|
||||
|
||||
void ff_browser_pushstate(const char* hrefHash);
|
||||
|
||||
void ff_browser_openlink(const char* url);
|
||||
}
|
||||
|
||||
void onWindowResize(int newWidth, int newHeight) {
|
||||
printf("Browser resized to %dx%d.\n", newWidth, newHeight);
|
||||
#ifdef __EMSCRIPTEN__
|
||||
emscripten_set_canvas_size(newWidth, newHeight); // This probably needs that any extra elements are removed from the default shell.html.
|
||||
#endif
|
||||
SDL_SetWindowSize(PAGE_WINDOW.window, newWidth, newHeight);
|
||||
}
|
||||
|
||||
void onWindowPopState(char* hrefHash) {
|
||||
printf("popstate url: %s\n", hrefHash);
|
||||
PAGE_WINDOW.setPageCurrent(PAGE_WINDOW.findPage(hrefHash));
|
||||
#ifdef __EMSCRIPTEN__
|
||||
free(newUrl);
|
||||
#endif
|
||||
}
|
||||
|
||||
void renderLoop(void) {
|
||||
ImGui_ImplSdl_ProcessEvents(&PAGE_WINDOW.windowRun);
|
||||
ImGui_ImplSdl_NewFrame(PAGE_WINDOW.window);
|
||||
|
||||
PAGE_WINDOW.draw();
|
||||
|
||||
glViewport(0, 0, (int) ImGui::GetIO().DisplaySize.x, (int) ImGui::GetIO().DisplaySize.y);
|
||||
glClearColor(PAGE_WINDOW.backgroundClearColor.x, PAGE_WINDOW.backgroundClearColor.y, PAGE_WINDOW.backgroundClearColor.z, PAGE_WINDOW.backgroundClearColor.w);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
ImGui::Render();
|
||||
SDL_GL_SwapWindow(PAGE_WINDOW.window);
|
||||
}
|
||||
|
||||
|
||||
void initSiteContent() {
|
||||
FFSiteDebug* siteDebug = new FFSiteDebug();
|
||||
PageController* page;
|
||||
|
||||
const char * exampleCode = R"EOS(
|
||||
page = PAGE_WINDOW.addPage("pulsefire","PulseFire");
|
||||
page->buildText("Pulsefire is software for the arduino.");
|
||||
page->buildText("Embedded flash support:")->setFont(SMALL);
|
||||
page->buildImage("data/pulsefire-flash.png")->setSize(300,300);
|
||||
page->buildText("Custom multi output pwm:")->setFont(SMALL);
|
||||
page->buildImage("data/pulsefire-pwm.png")->setSize(300,300);
|
||||
)EOS";
|
||||
|
||||
page = PAGE_WINDOW.addPage("home","Home");
|
||||
PAGE_WINDOW.setPageCurrent(page);
|
||||
page->buildText("Welcome the forwardfire.net website.");
|
||||
page->buildText("Feature")->setFont(HEADER_SUB);
|
||||
page->buildText("Source in C++14")->setBullet()->setColor(ImVec4(1.0f,0.0f,1.0f,1.0f));
|
||||
page->buildText("UI of ImGui webgl")->setBullet()->setColor(ImVec4(1.0f,1.0f,0.0f,1.0f));
|
||||
page->buildText("Compiled by Emscripten")->setBullet()->setColor(ImVec4(0.0f,1.0f,1.0f,1.0f));
|
||||
page->buildText("Frontend by Me")->setBullet()->setColor(ImVec4(1.0f,0.0f,0.0f,1.0f));
|
||||
|
||||
page->buildText("Example page code;")->setFont(SMALL);
|
||||
page->buildText(exampleCode)->setMultiLine();
|
||||
|
||||
|
||||
page = PAGE_WINDOW.addPage("pulsefire","PulseFire");
|
||||
page->buildText("Pulsefire is software for the arduino.");
|
||||
page->buildText("Embedded flash support:")->setFont(SMALL);
|
||||
page->buildImage("data/pulsefire-flash.png")->setSize(300,300);
|
||||
page->buildText("Custom multi output pwm:")->setFont(SMALL);
|
||||
page->buildImage("data/pulsefire-pwm.png")->setSize(300,300);
|
||||
|
||||
page = PAGE_WINDOW.addPage("vasc","Vasc");
|
||||
page->buildText("Old java5 crud lib");
|
||||
page->buildImage("data/vasc-list.png")->setSize(300,300);
|
||||
|
||||
page = PAGE_WINDOW.addPage("test3","Test Page3");
|
||||
page->buildText("YOyo");
|
||||
page->buildImage("data/home-tesla.png")->setSize(200,200);
|
||||
page->buildImage("data/home-pulsefire.png")->setSize(200,200);
|
||||
page->buildText("YOyo2");
|
||||
|
||||
page = PAGE_WINDOW.addPage("404","Page Not Found");
|
||||
PAGE_WINDOW.setPageNotFound(page);
|
||||
page->setMenu(false);
|
||||
page->buildText("Page not found.");
|
||||
|
||||
page = PAGE_WINDOW.addPage("debug","Debug");
|
||||
page->buildText("Experimental debug options.");
|
||||
page->buildLink("http://www.x4o.org");
|
||||
page->addComponent(siteDebug);
|
||||
PAGE_WINDOW.addLayer(siteDebug);
|
||||
PAGE_WINDOW.addLayer(new FFSiteBackground());
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(void) {
|
||||
printf("ff-site: boot\n");
|
||||
printf("ff-site: init video\n");
|
||||
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
|
||||
printf("Error: %s\n", SDL_GetError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("ff-site: init window\n");
|
||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
|
||||
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
|
||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
|
||||
SDL_DisplayMode current;
|
||||
SDL_GetCurrentDisplayMode(0, ¤t);
|
||||
PAGE_WINDOW.window = SDL_CreateWindow("ForwardFire Site",
|
||||
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600,
|
||||
SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);
|
||||
PAGE_WINDOW.glcontext = SDL_GL_CreateContext(PAGE_WINDOW.window);
|
||||
|
||||
// Setup ImGui binding
|
||||
printf("ff-site: init imgui\n");
|
||||
ImGui_ImplSdl_Init(PAGE_WINDOW.window);
|
||||
|
||||
printf("ff-site: init site\n");
|
||||
ImGui::GetStyle().FrameRounding = 6;
|
||||
initSiteContent();
|
||||
PAGE_WINDOW.printDebug();
|
||||
PAGE_FONT.loadFonts();
|
||||
|
||||
printf("ff-site: started\n");
|
||||
#ifdef __EMSCRIPTEN__
|
||||
ff_browser_add_popstate_handler(onWindowPopState);
|
||||
ff_browser_add_resize_handler(onWindowResize);
|
||||
PAGE_WINDOW.platformOpenUrl = ff_browser_openlink;
|
||||
PAGE_WINDOW.platformPageCb = ff_browser_pushstate;
|
||||
emscripten_set_main_loop(renderLoop, 0, 0);
|
||||
#else
|
||||
while (PAGE_WINDOW.windowRun) {
|
||||
renderLoop();
|
||||
}
|
||||
printf("ff-site: shutdown\n");
|
||||
|
||||
// Cleanup
|
||||
ImGui_ImplSdl_Shutdown();
|
||||
SDL_GL_DeleteContext(PAGE_WINDOW.glcontext);
|
||||
SDL_DestroyWindow(PAGE_WINDOW.window);
|
||||
SDL_Quit();
|
||||
#endif
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
```
|
BIN
source/_posts/Emscripten-webgl-imgui-site-demo/test/ff-site.data
Normal file
After Width: | Height: | Size: 2.6 MiB |
244
source/_posts/Emscripten-webgl-imgui-site-demo/test/ff-site.html
Normal file
|
@ -0,0 +1,244 @@
|
|||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Emscripten-Generated Code</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: arial;
|
||||
margin: 0;
|
||||
padding: none;
|
||||
}
|
||||
|
||||
.emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; }
|
||||
div.emscripten { text-align: center; }
|
||||
div.emscripten_border { border: 1px solid black; }
|
||||
/* the canvas *must not* have any border or padding, or mouse coords will be wrong */
|
||||
canvas.emscripten { border: 0px none; }
|
||||
|
||||
#emscripten_logo {
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
margin: 0;
|
||||
margin-top: 20px;
|
||||
margin-left: 20px;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
|
||||
-webkit-animation: rotation .8s linear infinite;
|
||||
-moz-animation: rotation .8s linear infinite;
|
||||
-o-animation: rotation .8s linear infinite;
|
||||
animation: rotation 0.8s linear infinite;
|
||||
|
||||
border-left: 5px solid rgb(235, 235, 235);
|
||||
border-right: 5px solid rgb(235, 235, 235);
|
||||
border-bottom: 5px solid rgb(235, 235, 235);
|
||||
border-top: 5px solid rgb(120, 120, 120);
|
||||
|
||||
border-radius: 100%;
|
||||
background-color: rgb(189, 215, 46);
|
||||
}
|
||||
|
||||
@-webkit-keyframes rotation {
|
||||
from {-webkit-transform: rotate(0deg);}
|
||||
to {-webkit-transform: rotate(360deg);}
|
||||
}
|
||||
@-moz-keyframes rotation {
|
||||
from {-moz-transform: rotate(0deg);}
|
||||
to {-moz-transform: rotate(360deg);}
|
||||
}
|
||||
@-o-keyframes rotation {
|
||||
from {-o-transform: rotate(0deg);}
|
||||
to {-o-transform: rotate(360deg);}
|
||||
}
|
||||
@keyframes rotation {
|
||||
from {transform: rotate(0deg);}
|
||||
to {transform: rotate(360deg);}
|
||||
}
|
||||
|
||||
#status {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
margin-top: 30px;
|
||||
margin-left: 20px;
|
||||
font-weight: bold;
|
||||
color: rgb(120, 120, 120);
|
||||
}
|
||||
|
||||
#progress {
|
||||
height: 20px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
#controls {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
vertical-align: top;
|
||||
margin-top: 30px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
#output {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
margin: 0 auto;
|
||||
margin-top: 10px;
|
||||
border-left: 0px;
|
||||
border-right: 0px;
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
display: block;
|
||||
background-color: black;
|
||||
color: white;
|
||||
font-family: 'Lucida Console', Monaco, monospace;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#status,#controls,#output {
|
||||
display: none !important;
|
||||
}
|
||||
#canvas {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
display: block;
|
||||
}
|
||||
div.emscripten_border { border: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="spinner" id='spinner'></div>
|
||||
<div class="emscripten" id="status">Downloading...</div>
|
||||
<span id='controls'>
|
||||
<span><input type="checkbox" id="resize">Resize canvas</span>
|
||||
<span><input type="checkbox" id="pointerLock" checked>Lock/hide mouse pointer </span>
|
||||
<span><input type="button" value="Fullscreen" onclick="Module.requestFullScreen(document.getElementById('pointerLock').checked,
|
||||
document.getElementById('resize').checked)">
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<div class="emscripten">
|
||||
<progress value="0" max="100" id="progress" hidden=1></progress>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="emscripten_border">
|
||||
<canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
|
||||
</div>
|
||||
<textarea id="output" rows="8"></textarea>
|
||||
|
||||
<script type='text/javascript'>
|
||||
var statusElement = document.getElementById('status');
|
||||
var progressElement = document.getElementById('progress');
|
||||
var spinnerElement = document.getElementById('spinner');
|
||||
|
||||
var Module = {
|
||||
preRun: [],
|
||||
postRun: [],
|
||||
print: (function() {
|
||||
var element = document.getElementById('output');
|
||||
if (element) element.value = ''; // clear browser cache
|
||||
return function(text) {
|
||||
if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
|
||||
// These replacements are necessary if you render to raw HTML
|
||||
//text = text.replace(/&/g, "&");
|
||||
//text = text.replace(/</g, "<");
|
||||
//text = text.replace(/>/g, ">");
|
||||
//text = text.replace('\n', '<br>', 'g');
|
||||
console.log(text);
|
||||
if (element) {
|
||||
element.value += text + "\n";
|
||||
element.scrollTop = element.scrollHeight; // focus on bottom
|
||||
}
|
||||
};
|
||||
})(),
|
||||
printErr: function(text) {
|
||||
if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
|
||||
if (0) { // XXX disabled for safety typeof dump == 'function') {
|
||||
dump(text + '\n'); // fast, straight to the real console
|
||||
} else {
|
||||
console.error(text);
|
||||
}
|
||||
},
|
||||
canvas: (function() {
|
||||
var canvas = document.getElementById('canvas');
|
||||
|
||||
// As a default initial behavior, pop up an alert when webgl context is lost. To make your
|
||||
// application robust, you may want to override this behavior before shipping!
|
||||
// See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2
|
||||
canvas.addEventListener("webglcontextlost", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false);
|
||||
|
||||
return canvas;
|
||||
})(),
|
||||
setStatus: function(text) {
|
||||
if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };
|
||||
if (text === Module.setStatus.text) return;
|
||||
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
|
||||
var now = Date.now();
|
||||
if (m && now - Date.now() < 30) return; // if this is a progress update, skip it if too soon
|
||||
if (m) {
|
||||
text = m[1];
|
||||
progressElement.value = parseInt(m[2])*100;
|
||||
progressElement.max = parseInt(m[4])*100;
|
||||
progressElement.hidden = false;
|
||||
spinnerElement.hidden = false;
|
||||
} else {
|
||||
progressElement.value = null;
|
||||
progressElement.max = null;
|
||||
progressElement.hidden = true;
|
||||
if (!text) spinnerElement.style.display = 'none';
|
||||
}
|
||||
statusElement.innerHTML = text;
|
||||
},
|
||||
totalDependencies: 0,
|
||||
monitorRunDependencies: function(left) {
|
||||
this.totalDependencies = Math.max(this.totalDependencies, left);
|
||||
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
|
||||
}
|
||||
};
|
||||
Module.setStatus('Downloading...');
|
||||
window.onerror = function(event) {
|
||||
// TODO: do not warn on ok events like simulating an infinite loop or exitStatus
|
||||
Module.setStatus('Exception thrown, see JavaScript console');
|
||||
spinnerElement.style.display = 'none';
|
||||
Module.setStatus = function(text) {
|
||||
if (text) Module.printErr('[post-exception status] ' + text);
|
||||
};
|
||||
};
|
||||
</script>
|
||||
<script>
|
||||
|
||||
var script = document.createElement('script');
|
||||
script.src = "ff-site.asm.js";
|
||||
script.onload = function() {
|
||||
setTimeout(function() {
|
||||
|
||||
(function() {
|
||||
var memoryInitializer = 'ff-site.js.mem';
|
||||
if (typeof Module['locateFile'] === 'function') {
|
||||
memoryInitializer = Module['locateFile'](memoryInitializer);
|
||||
} else if (Module['memoryInitializerPrefixURL']) {
|
||||
memoryInitializer = Module['memoryInitializerPrefixURL'] + memoryInitializer;
|
||||
}
|
||||
var xhr = Module['memoryInitializerRequest'] = new XMLHttpRequest();
|
||||
xhr.open('GET', memoryInitializer, true);
|
||||
xhr.responseType = 'arraybuffer';
|
||||
xhr.send(null);
|
||||
})();
|
||||
|
||||
var script = document.createElement('script');
|
||||
script.src = "ff-site.js";
|
||||
document.body.appendChild(script);
|
||||
|
||||
}, 1); // delaying even 1ms is enough to allow compilation memory to be reclaimed
|
||||
};
|
||||
document.body.appendChild(script);
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
13
source/_posts/Engine-Calculator-test.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
title: Engine Calculator test
|
||||
date: 2018-01-29 21:02:41
|
||||
tags:
|
||||
- java
|
||||
- swt
|
||||
---
|
||||
|
||||
Engine calculator demo;
|
||||
<video width="800" height="600" controls>
|
||||
<source src="demo-wec-2018-01-29_21-39-35.mkv" type="video/mp4">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
10
source/_posts/JS-spa-loader-example.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: JS spa-loader example
|
||||
date: 2019-11-11 17:44:37
|
||||
tags:
|
||||
- spa-loader
|
||||
- js
|
||||
- es5
|
||||
---
|
||||
|
||||
Using the npm package; https://www.npmjs.com/package/es5-ff-spa-loader
|
29
source/_posts/Pulsefire-1-0-4-released.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
title: Pulsefire 1.0.4 released
|
||||
date: 2012-07-22 19:57:57
|
||||
tags:
|
||||
- pulsefire
|
||||
- arduino
|
||||
- java
|
||||
---
|
||||
|
||||
Downloads are on http://download.savannah.nongnu.org/releases/pulsefire/1.0.4/
|
||||
|
||||
### Demo setup
|
||||
![Pulsefire setup](home-pulsefire.png "Pulsefire setup")
|
||||
|
||||
### Native flashing
|
||||
![Pulsefire flash](pulsefire-flash.png "Pulsefire flash")
|
||||
|
||||
### Changes
|
||||
* Changed ptc_Xcnt and ptt_cntX to 16bit so mapping works with values above 255.
|
||||
* Enabled cit_0a_com gui dropdown box.
|
||||
* Fixed avr-gcc const warning of pmCmdList array.
|
||||
* Added more variable filters in data tab panel.
|
||||
* Improved chip seconds timing from ~96% to ~99.5% relative to atom time.
|
||||
* Fixed/removed the 50% extra time offset of ptt and ptc 'time' mapping.
|
||||
(now ptt time step of 6000 is 10min but in real 10min and ~24secs)
|
||||
* Redone firmware filter options, speed/type are saved and click column header to filter.
|
||||
* Fixed dial start offset, now relative from start so it is not jumping anymore.
|
||||
* Improved fire dial tooltip editor support.
|
||||
* Improved fire qmap table keyboard handling support.
|
BIN
source/_posts/Pulsefire-1-0-4-released/home-pulsefire.png
Normal file
After Width: | Height: | Size: 742 KiB |
BIN
source/_posts/Pulsefire-1-0-4-released/pulsefire-flash.png
Normal file
After Width: | Height: | Size: 256 KiB |
85
source/_posts/Pulsefire-1-1-released.md
Normal file
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
title: Pulsefire 1.1 released
|
||||
date: 2019-12-05 16:18:43
|
||||
tags:
|
||||
- pulsefire
|
||||
- arduino
|
||||
- java
|
||||
---
|
||||
|
||||
After an long wait and lots of coding today released pulsefire 1.1.0 for the arduino boards.
|
||||
|
||||
Downloads are on http://download.savannah.nongnu.org/releases/pulsefire/1.1.0/
|
||||
|
||||
![Pulsefire 1.1 running](pf-release-1.1.0-running.jpg "Pulsefire 1.1 running")
|
||||
|
||||
### GUI Demo
|
||||
Early demo of 1.1 gui;
|
||||
<video width="800" height="600" controls>
|
||||
<source src="demo-pulsefire-1.1-2018-01-29_22-07-05.mkv" type="video/mp4">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
||||
|
||||
|
||||
### Changes
|
||||
* Made dev_volt/amp/temp variable indexed.
|
||||
* internal PF_VARS inverse nolimit flag.
|
||||
* Added lcd paging and lcd_defp for default page.
|
||||
* Added 4 button support with lcd_mode 3.
|
||||
* Added lcd_plp; programatic lcd page with 4 vars.
|
||||
* Added info_pwm to readout precalculated pwm data.
|
||||
* Changed pwm to precalculated data/time steps.
|
||||
* Dropped pulse_inv/pwm_loop_delta/pwm_tune_cnt options.
|
||||
* Dropped SF_ENABLE_DIC/_DOC/_PPM/_DEV compile flags.
|
||||
* Replaced SF_ENABLE_EXT_* with SF_ENABLE_SPI and spi_mode for hardware spi mode.
|
||||
* Added spi_chips and spi_clock settings.
|
||||
* Added 32 bit variable support.
|
||||
* Replaces chip_name_id to sys_id as 32 bit integer.
|
||||
* Added sys_pass for future login system.
|
||||
* Added req_doc to request doc port output bit.
|
||||
* Dropped LPM from chip code and moved to application.
|
||||
* Dropped experimental GLCD support to free pins.
|
||||
* Replaced mega pin mapping with mega_port_a and mega_port_c.
|
||||
* GUI: Small update for dark-red and black-white color thema.
|
||||
* GUI: Added new yellow-purple color thema.
|
||||
* Added two new pulse_dir modes; LRRL-2 and LRLR
|
||||
* Removed two pulse_modes PPM_ALL and PPM_INTERL.
|
||||
* Renamed pulse_trig_delay to pulse_pre_delay.
|
||||
* Added pulse_pre/post_mul step multiplier.
|
||||
* Added pulse_post_hold to select off or last step.
|
||||
* Added int0/1 variables to fire/hold/trigger/etc on int.
|
||||
* Replaced dev_freq.* to int_0freq/etc.
|
||||
* Dropped CIT (8bit-timer) support.
|
||||
* Changed avr_pin2/3 to input only.
|
||||
* GUI: Added visuals for info_pwm data.
|
||||
* Added dic_mux for mux chip mode select.
|
||||
* Added info_vars to output all variable meta data in one go.
|
||||
* Removed all(5) help arguments, now it only lists the help.
|
||||
* Removed 2 pulse_trig's now its LOOP or PULSE_FIRE.
|
||||
* GUI: Added serial cmd/error counters and improved serial code.
|
||||
* GUI: Added 250,500 and 1000 ms pull data speed.
|
||||
* Redone info_freq from pwm step data.
|
||||
* Renamed: mal_mticks to mal_wait and made 8b.
|
||||
* Redone main pulsefire time loop and removed *_time_cnt.
|
||||
* Added lcd_hcd for speed of hardware command delay.
|
||||
* Added 'info_data np' argument to remove auto push data from pulling.
|
||||
* Replaced SWC with generic stepper VSC on max 20hz.
|
||||
* Changed PTC speed from 10hz to 20hz with ptc_Xmul=0.
|
||||
* Added req_tx_hex for faster cmd rate, so over 1000 cmd/sec is done.
|
||||
* Added sys_uptime and sys_speed indicators.
|
||||
* Removed all but one 168p images which where to big.(>15kb)
|
||||
* Changed adc_jitter to 8bit value.
|
||||
* Removed dev_X_dot meta data for generic mapping.
|
||||
* Added sys_vvl/vvm_map, Variable Value Limit(min/max) and Meta(dot/lock)
|
||||
* GUI: Added initial 32b command variable support for sys_id/pass.
|
||||
* Renamed info_ppm output to info_ppm_a/b(0-15)
|
||||
* Made avr serial send use buffered lines.
|
||||
* GUI: Dropped experimental audio scope code.
|
||||
* GUI: Improved gui performance, so uses less cpu.
|
||||
* GUI: Reworked all tabs layouts.
|
||||
* GUI: Added keys; F3=connect/disconnect F11=toggleFullScreen (only when disconnected)
|
||||
* Dropped "==" was 'get' indicator now all response is single equals sign.
|
||||
* Made adc skip readout if input not enabled.
|
||||
* GUI: Replace serial libary rxtx for jssc.
|
||||
* Fixed main loop time overflow and made sys counters smaller.
|
||||
* GUI: Updated to java 11 with native build images.
|
After Width: | Height: | Size: 290 KiB |
233
source/_posts/VASC-Java-auto-crud-server.md
Normal file
|
@ -0,0 +1,233 @@
|
|||
---
|
||||
title: 'VASC: Java auto crud server'
|
||||
date: 2015-07-02 19:24:59
|
||||
tags:
|
||||
- java
|
||||
- vasc
|
||||
- crud
|
||||
- jsf
|
||||
- swing
|
||||
- swt
|
||||
- ejb3
|
||||
---
|
||||
|
||||
Site: http://vasc.forwardfire.net
|
||||
Status: Need reboot in development
|
||||
|
||||
Video demo; http://vasc.forwardfire.net/vasc-preview-video.ogv
|
||||
|
||||
![JSF listing](vasc-list.png "Vasc Client JSF listing")
|
||||
![JSF editing](vasc-edit.png "Vasc Client JSF editing")
|
||||
![Vasc Client Swing](vasc-client-swing.png "Vasc Client Swing")
|
||||
![Vasc Client SWT](vasc-client-swt.png "Vasc Client SWT")
|
||||
|
||||
All (207) used jars in demo;
|
||||
``` text
|
||||
antlr-2.7.7.jar
|
||||
asm-3.3.1.jar
|
||||
bcmail-jdk14-1.38.jar
|
||||
bcmail-jdk14-138.jar
|
||||
bcprov-jdk14-1.38.jar
|
||||
bcprov-jdk14-138.jar
|
||||
bctsp-jdk14-1.38.jar
|
||||
bsaf-1.9.2.jar
|
||||
bval-core-0.5.jar
|
||||
bval-jsr303-0.5.jar
|
||||
castor-1.2.jar
|
||||
classmate-0.5.4.jar
|
||||
commons-beanutils-1.8.0.jar
|
||||
commons-beanutils-core-1.8.3.jar
|
||||
commons-cli-1.2.jar
|
||||
commons-codec-1.5.jar
|
||||
commons-collections-3.2.1.jar
|
||||
commons-dbcp-1.4.jar
|
||||
commons-digester-2.1.jar
|
||||
commons-io-2.4.jar
|
||||
commons-lang-2.4.jar
|
||||
commons-lang3-3.1.jar
|
||||
commons-logging-1.1.1.jar
|
||||
commons-pool-1.5.7.jar
|
||||
cssparser-0.9.5.jar
|
||||
cxf-api-2.6.0.jar
|
||||
cxf-rt-bindings-soap-2.6.0.jar
|
||||
cxf-rt-bindings-xml-2.6.0.jar
|
||||
cxf-rt-core-2.6.0.jar
|
||||
cxf-rt-databinding-jaxb-2.6.0.jar
|
||||
cxf-rt-frontend-jaxrs-2.6.0.jar
|
||||
cxf-rt-frontend-jaxws-2.6.0.jar
|
||||
cxf-rt-frontend-simple-2.6.0.jar
|
||||
cxf-rt-transports-http-2.6.0.jar
|
||||
cxf-rt-ws-addr-2.6.0.jar
|
||||
cxf-rt-ws-policy-2.6.0.jar
|
||||
derby-10.9.1.0.jar
|
||||
de.tudarmstadt.ukp.wikipedia.api-0.9.1.jar
|
||||
dom4j-1.6.1.jar
|
||||
ecj-3.5.1.jar
|
||||
geronimo-j2ee-deployment_1.1_spec-1.1.jar
|
||||
geronimo-javamail_1.4_mail-1.8.2.jar
|
||||
geronimo-javamail_1.4_spec-1.7.1.jar
|
||||
geronimo-transaction-3.1.1.jar
|
||||
guava-r08.jar
|
||||
h2-1.3.170.jar
|
||||
hibernate-commons-annotations-4.0.1.Final.jar
|
||||
hibernate-core-4.0.0.Final.jar
|
||||
hibernate-jpa-2.0-api-1.0.1.Final.jar
|
||||
howl-1.0.1-1.jar
|
||||
hsqldb-2.2.8.jar
|
||||
httpclient-4.1.2.jar
|
||||
httpclient-cache-4.1.2.jar
|
||||
httpcore-4.1.2.jar
|
||||
itext-2.1.7.jar
|
||||
jackcess-1.2.6.jar
|
||||
jackson-core-asl-1.9.10.jar
|
||||
jackson-core-lgpl-1.7.4.jar
|
||||
jackson-mapper-asl-1.9.10.jar
|
||||
jackson-mapper-lgpl-1.7.4.jar
|
||||
jandex-1.0.3.Final.jar
|
||||
jansi-1.8.jar
|
||||
jasperreports-4.5.1.jar
|
||||
javaee-api-6.0-4.jar
|
||||
javaee-api-6.0-4-tomcat.jar
|
||||
javassist-3.15.0-GA.jar
|
||||
javax.faces-2.1.3.jar
|
||||
jawr-3.3.3.jar
|
||||
jaxb-impl-2.2.5.jar
|
||||
jaxb-xjc-2.2.5.jar
|
||||
jboss-logging-3.1.0.CR2.jar
|
||||
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
|
||||
jcl-over-slf4j-1.7.1.jar
|
||||
jcommon-1.0.15.jar
|
||||
jdtcore-3.1.0.jar
|
||||
jfreechart-1.0.12.jar
|
||||
jgrapht-jdk1.5-0.7.3.jar
|
||||
jldap-4.3.jar
|
||||
json-simple-1.1.jar
|
||||
jsr181-api-1.0-MR1.jar
|
||||
jsr311-api-1.1.1.jar
|
||||
jstl-1.2.jar
|
||||
jul-to-slf4j-1.6.4.jar
|
||||
junit-3.8.1.jar
|
||||
log4j-over-slf4j-1.6.4.jar
|
||||
logback-access-1.0.9.jar
|
||||
logback-classic-1.0.9.jar
|
||||
logback-core-1.0.9.jar
|
||||
mbean-annotation-api-4.5.1.jar
|
||||
MetaModel-access-3.2.5.jar
|
||||
MetaModel-core-3.2.5.jar
|
||||
MetaModel-couchdb-3.2.5.jar
|
||||
MetaModel-csv-3.2.5.jar
|
||||
MetaModel-dbase-3.2.5.jar
|
||||
MetaModel-excel-3.2.5.jar
|
||||
MetaModel-fixedwidth-3.2.5.jar
|
||||
MetaModel-full-3.2.5.jar
|
||||
MetaModel-jdbc-3.2.5.jar
|
||||
MetaModel-mongodb-3.2.5.jar
|
||||
MetaModel-openoffice-3.2.5.jar
|
||||
MetaModel-pojo-3.2.5.jar
|
||||
MetaModel-xml-3.2.5.jar
|
||||
microba-0.4.4.1.jar
|
||||
mongo-java-driver-2.7.3.jar
|
||||
mysql-connector-java-5.1.22.jar
|
||||
neethi-3.0.2.jar
|
||||
opencsv-2.1.jar
|
||||
openejb-api-4.5.1.jar
|
||||
openejb-client-4.5.1.jar
|
||||
openejb-core-4.5.1.jar
|
||||
openejb-ejbd-4.5.1.jar
|
||||
openejb-http-4.5.1.jar
|
||||
openejb-javaagent-4.5.1.jar
|
||||
openejb-jee-4.5.1.jar
|
||||
openejb-jpa-integration-4.5.1.jar
|
||||
openejb-loader-4.5.1.jar
|
||||
openejb-server-4.5.1.jar
|
||||
openjpa-asm-shaded-2.2.0.jar
|
||||
openwebbeans-ee-1.1.7.jar
|
||||
openwebbeans-ee-common-1.1.7.jar
|
||||
openwebbeans-ejb-1.1.7.jar
|
||||
openwebbeans-impl-1.1.7.jar
|
||||
openwebbeans-jsf-1.1.7.jar
|
||||
openwebbeans-spi-1.1.7.jar
|
||||
openwebbeans-web-1.1.7.jar
|
||||
org.ektorp-1.3.0.jar
|
||||
oro-2.0.8.jar
|
||||
poi-3.8.jar
|
||||
poi-ooxml-3.8.jar
|
||||
poi-ooxml-schemas-3.8.jar
|
||||
postgresql-9.1-901-1.jdbc4.jar
|
||||
quartz-2.1.6.jar
|
||||
rewrite-servlet-1.0.6-20120724.065549-68.jar
|
||||
richfaces-components-api-4.1.0.Final.jar
|
||||
richfaces-components-ui-4.1.0.Final.jar
|
||||
richfaces-core-api-4.1.0.Final.jar
|
||||
richfaces-core-impl-4.1.0.Final.jar
|
||||
sac-1.3.jar
|
||||
serp-1.13.1.jar
|
||||
slf4j-api-1.7.2.jar
|
||||
sqlite-jdbc-3.7.2.jar
|
||||
stax2-api-3.1.1.jar
|
||||
stax-api-1.0.1.jar
|
||||
swizzle-stream-1.6.1.jar
|
||||
tomcat-annotations-api-7.0.34.jar
|
||||
tomcat-api-7.0.34.jar
|
||||
tomcat-catalina-7.0.34.jar
|
||||
tomcat-catalina-ha-7.0.34.jar
|
||||
tomcat-coyote-7.0.34.jar
|
||||
tomcat-dbcp-7.0.34.jar
|
||||
tomcat-el-api-7.0.34.jar
|
||||
tomcat-jasper-7.0.34.jar
|
||||
tomcat-jasper-el-7.0.34.jar
|
||||
tomcat-jdbc-7.0.34.jar
|
||||
tomcat-jsp-api-7.0.34.jar
|
||||
tomcat-juli-7.0.34.jar
|
||||
tomcat-servlet-api-7.0.34.jar
|
||||
tomcat-tribes-7.0.34.jar
|
||||
tomcat-util-7.0.34.jar
|
||||
tomee-catalina-1.5.1.jar
|
||||
tomee-common-1.5.1.jar
|
||||
tomee-embedded-1.5.1.jar
|
||||
tomee-jdbc-1.5.1.jar
|
||||
tomee-loader-1.5.1.jar
|
||||
tomee-mojarra-1.5.1.jar
|
||||
trove4j-2.0.2.jar
|
||||
vasc-backend-jdbc-0.4.1-SNAPSHOT.jar
|
||||
vasc-backend-jpa-0.4.1-SNAPSHOT.jar
|
||||
vasc-backend-ldap-0.4.1-SNAPSHOT.jar
|
||||
vasc-backend-metamodel-0.4.1-SNAPSHOT.jar
|
||||
vasc-backend-mongodb-0.4.1-SNAPSHOT.jar
|
||||
vasc-core-0.4.1-SNAPSHOT.jar
|
||||
vasc-core-ejb3-client-0.4.1-SNAPSHOT.jar
|
||||
vasc-core-ejb3-server-0.4.1-SNAPSHOT.jar
|
||||
vasc-demo-server-core-0.4.1-SNAPSHOT.jar
|
||||
vasc-demo-tech-client-swing-0.4.1-SNAPSHOT.jar
|
||||
vasc-demo-tech-ejb3-0.4.1-SNAPSHOT.jar
|
||||
vasc-demo-tech-web-0.4.1-SNAPSHOT.jar
|
||||
vasc-export-generic-0.4.1-SNAPSHOT.jar
|
||||
vasc-export-jr4o-0.4.1-SNAPSHOT.jar
|
||||
vasc-export-json-0.4.1-SNAPSHOT.jar
|
||||
vasc-frontend-cxf-client-0.4.1-SNAPSHOT.jar
|
||||
vasc-frontend-cxf-server-0.4.1-SNAPSHOT.jar
|
||||
vasc-frontend-swing-0.4.1-SNAPSHOT.jar
|
||||
vasc-frontend-web-export-0.4.1-SNAPSHOT.jar
|
||||
vasc-frontend-web-jsf-0.4.1-SNAPSHOT.jar
|
||||
vasc-lib-editor-0.4.1-SNAPSHOT.jar
|
||||
vasc-lib-i18n-0.4.1-SNAPSHOT.jar
|
||||
vasc-lib-jr4o-0.4.1-SNAPSHOT.jar
|
||||
vasc-test-i18n-0.4.1-SNAPSHOT.jar
|
||||
vasc-xpql-0.4.1-SNAPSHOT.jar
|
||||
vasc-xpql-ejb3-client-0.4.1-SNAPSHOT.jar
|
||||
vasc-xpql-ejb3-server-0.4.1-SNAPSHOT.jar
|
||||
velocity-1.6.4.jar
|
||||
woodstox-core-asl-4.1.2.jar
|
||||
wsdl4j-1.6.2.jar
|
||||
x4o-core-0.8.5-SNAPSHOT.jar
|
||||
x4o-meta-0.8.5-SNAPSHOT.jar
|
||||
xbean-asm-shaded-3.12.jar
|
||||
xbean-bundleutils-3.12.jar
|
||||
xbean-finder-shaded-3.12.jar
|
||||
xbean-naming-3.12.jar
|
||||
xbean-reflect-3.12.jar
|
||||
xml-apis-1.3.04.jar
|
||||
xmlbeans-2.3.0.jar
|
||||
xml-resolver-1.2.jar
|
||||
xmlschema-core-2.0.2.jar
|
||||
```
|
BIN
source/_posts/VASC-Java-auto-crud-server/vasc-client-swing.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
source/_posts/VASC-Java-auto-crud-server/vasc-client-swt.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
source/_posts/VASC-Java-auto-crud-server/vasc-edit.png
Normal file
After Width: | Height: | Size: 303 KiB |
BIN
source/_posts/VASC-Java-auto-crud-server/vasc-list.png
Normal file
After Width: | Height: | Size: 347 KiB |
92
source/_posts/X4O-Java-xml-library.md
Normal file
|
@ -0,0 +1,92 @@
|
|||
---
|
||||
title: 'X4O: Java xml library'
|
||||
date: 2015-07-01 19:24:59
|
||||
tags:
|
||||
- java
|
||||
- x4o
|
||||
---
|
||||
|
||||
Site: http://www.x4o.org
|
||||
Source: http://git.savannah.gnu.org/cgit/x4o.git
|
||||
Status: Discontinued development
|
||||
|
||||
Framework to define your xml languages with full scheme and namespace support.
|
||||
|
||||
Small example of parsing a simple example language;
|
||||
|
||||
``` xml
|
||||
<root:JFrame
|
||||
xmlns:root="http://swixml.x4o.org/xml/ns/swixml-root"
|
||||
xmlns="http://swixml.x4o.org/xml/ns/swixml-lang"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://test.x4o.org/xml/ns/test-root test-root-1.0.xsd"
|
||||
name="mainframe" size="800,600" title="SWIXML-X4O" plaf="com.sun.java.swing.plaf.windows.WindowsLookAndFeel" defaultCloseOperation="3"
|
||||
>
|
||||
<JMenubar name="menubar">
|
||||
<JMenu name="filemenu" text="File">
|
||||
<JMenuItem name="mi_new" text="New" icon="icons/new.gif" mnemonic="VK_N" accelerator="control N" Action="newAction"/>
|
||||
<JMenuItem name="mi_open" text="Open" icon="icons/open.gif" mnemonic="VK_O" Accelerator="control O" ActionCommand="open"/>
|
||||
<JMenuItem name="mi_save" text="Save" icon="icons/save.gif" mnemonic="VK_S" ActionCommand="save"/>
|
||||
<JMenu name="propmenu" text="Properties" icon="icons/new.gif" >
|
||||
<JMenuItem name="mi_prop_edit" text="Edit" icon="icons/new.gif"/>
|
||||
<JMenuItem name="mi_prop_clear" text="Clear" icon="icons/new.gif"/>
|
||||
</JMenu>
|
||||
<JMenu.Separator/>
|
||||
<JMenuItem name="mi_exit" text="Exit" icon="icons/exit.gif" mnemonic="VK_X" Accelerator="control X" ActionCommand="exit" Action="exitAction"/>
|
||||
</JMenu>
|
||||
<JMenu text="Help">
|
||||
<JMenuItem name="mi_about" text="About" enabled="true" icon="icons/info.gif" Accelerator="alt A" Action="aboutAction" />
|
||||
</JMenu>
|
||||
</JMenubar>
|
||||
<JDesktopPane>
|
||||
<JInternalFrame title="Flow Layout (right aligned)" bounds="10,10,150,150" layout="FlowLayout(FlowLayout.RIGHT)" visible="true" resizable="true">
|
||||
<JButton text="1"/>
|
||||
<JButton text="2"/>
|
||||
<JButton text="3"/>
|
||||
<JButton text="4"/>
|
||||
</JInternalFrame>
|
||||
<JInternalFrame title="Grid Layout" bounds="200,10,170,170" layout="GridLayout(4,3)" visible="true" resizable="true">
|
||||
<JButton text="1"/><JButton text="2"/><JButton text="3"/>
|
||||
<JButton text="4"/><JButton text="5"/><JButton text="6"/>
|
||||
<JButton text="7"/><JButton text="8"/><JButton text="9"/>
|
||||
<JButton text="*"/><JButton text="0"/><JButton text="#"/>
|
||||
</JInternalFrame>
|
||||
<JInternalFrame title="Border Layout" bounds="390,10,150,150" layout="borderlayout" visible="true" resizable="true">
|
||||
<JButton constraints="BorderLayout.NORTH" text="1"/>
|
||||
<JButton constraints="BorderLayout.EAST" text="2"/>
|
||||
<JButton constraints="BorderLayout.SOUTH" text="3"/>
|
||||
<JButton constraints="BorderLayout.WEST" text="4"/>
|
||||
</JInternalFrame>
|
||||
<JInternalFrame title="Tree Window" bounds="10,170,350,360" layout="borderlayout" visible="true" resizable="true">
|
||||
<JPanel layout="borderlayout" constraints="BorderLayout.CENTER">
|
||||
<JSplitPane oneTouchExpandable="true" dividerLocation="200">
|
||||
<JSplitPane oneTouchExpandable="true" dividerLocation="140" orientation="VERTICAL">
|
||||
<JScrollPane background="blue" >
|
||||
<JTree name="tree"/>
|
||||
</JScrollPane>
|
||||
<JPanel layout="borderlayout">
|
||||
<JPanel constraints="BorderLayout.NORTH">
|
||||
<JButton name="btn_copy" toolTipText="JPanel" enabled="true" borderPainted="false" focusPainted="false" icon="icons/copy.gif" size="24,24"/>
|
||||
<JButton name="btn_paste" toolTipText="JJButton" enabled="true" borderPainted="false" focusPainted="false" icon="icons/paste.gif" size="24,24"/>
|
||||
<JButton name="btn_cut" toolTipText="JLabel" enabled="true" icon="icons/cut.gif" borderPainted="false" focusPainted="false" size="24,24"/>
|
||||
</JPanel>
|
||||
<JScrollPane constraints="BorderLayout.CENTER">
|
||||
<JTable name="table"/>
|
||||
</JScrollPane>
|
||||
</JPanel>
|
||||
</JSplitPane>
|
||||
<JPanel name="preview" border="LoweredBevelBorder">
|
||||
<JTextArea name="ta" text="Tree Status Log....." background="red"/>
|
||||
</JPanel>
|
||||
</JSplitPane>
|
||||
</JPanel>
|
||||
<JPanel constraints="BorderLayout.SOUTH">
|
||||
<JLabel text="Status:"/>
|
||||
<JTextField text="OK"/>
|
||||
</JPanel>
|
||||
</JInternalFrame>
|
||||
</JDesktopPane>
|
||||
</root:JFrame>
|
||||
```
|
||||
|
||||
![X4O swixml example](x4o-swixml.png "X4O swixml example")
|
BIN
source/_posts/X4O-Java-xml-library/x4o-swixml.png
Normal file
After Width: | Height: | Size: 55 KiB |
|
@ -11,9 +11,9 @@ Menu:
|
|||
# Search:
|
||||
# url: /search
|
||||
# text: Search
|
||||
Pulsefire:
|
||||
url: /pulsefire
|
||||
text: Pulsefire
|
||||
# Pulsefire:
|
||||
# url: /pulsefire
|
||||
# text: Pulsefire
|
||||
|
||||
Icon:
|
||||
Favicon: /images/favicon.ico
|
||||
|
|