during this weekend I have released pair of my pet projects:
Mvn-Golang now can not only install artifacts into Maven repository but also use them as dependencies. SciaReto distributives have been reworked and now including JDK image, so that user doesn't need preinstalled JDK.
Sunday, March 3, 2019
Monday, January 14, 2019
mvn-jlink 1.0.0
Java provides some modularity since Java 9 (project Jigsaw) and it provides way to build JDK images containing only needed modules. There are two nice tool in JDK called jdeps and jlink which helps in build new JDK image but I use maven to build my own OSS projects and I wanted some way to automate process. So I have developed and published maven plug-in MVN-JLINK which can call jdeps and jlink (and any tool provided by JDK) and even it can load and unpack OpenJDK builds from Adopt and Bellsoft (Liberica).
Sunday, December 2, 2018
DOSBox as container
During development of test ROM for ZX-Poly I had to use some compressing utility written by Vyacheslav Mednonogov in 1993, unfortunately I could not find any sources of the utility and it is presented only as executable file for MS-DOS. I wanted some more or less cheap solution to start the utility under Linux (Ubuntu), to get it working over some external file and get result of processing. I found some solution with DOSBox which is provided in standard Ubuntu repository. If you have not installed the emulator, you can use
In my case I use such command line to execute utility xlpz.exe:
where:
Unfortunately there is not any directive for DOSBox to not show its UI part but it is not big evil in the business.
sudo apt-get install dosbox
In my case I use such command line to execute utility xlpz.exe:
dosbox -c "cycles max" -c "MOUNT E $XPLZDIR" -c "MOUNT D $DIR" -c "d:" -c "e:\xlpz.exe $FILENAME" -c "exit"
where:
- $XPLZDIR - directory where xlpz.exe is situated in host OS, it will be mounted in DOSBox as drive E
- $DIR - directory where data for processing is situated (it will be mounted in DOSBox as disk D), the result will be written in the same folder
- $FILENAME is the file name of file to be processed but without folder path because for the utility it is situated directly in the root of D drive
Unfortunately there is not any directive for DOSBox to not show its UI part but it is not big evil in the business.
Sunday, February 18, 2018
GWT+GoLang
I made some experiment how to use GWT technology as GUI for Golang
applications and formed it as a some easy small example project on GitHub. It shows very simple example of communication between GWT
front-end and Golang back-end.
Thursday, January 18, 2018
how to create Golang project with maven archetype
I have made small GIF which shows how to make a GoLang project with maven archetype and build it
mvn archetype:generate -B -DarchetypeGroupId=com.igormaznitsa -DarchetypeArtifactId=mvn-golang-hello -DgroupId=HiGo -DartifactId=hello
Tuesday, December 19, 2017
Conway's law
I guess the Conway's law is one of the most important ones in software development:
"Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure."
http://www.melconway.com/Home/pdf/committees.pdf
"Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure."
http://www.melconway.com/Home/pdf/committees.pdf
Thursday, September 21, 2017
JDK 9 + JEP-238 + Maven + Preprocessor
I have made small example project to show how to use Java preprocessor and Maven to build multi-release JAR (as described in JEP-238) which is supported in JDK 9.
https://github.com/raydac/jep-238-jcp-example
https://github.com/raydac/jep-238-jcp-example
Sunday, September 3, 2017
JBBP 1.3.0
Java Binary Block Parser 1.3.0 is out and accessible in the Maven Central. The Main feature of the version - to generate Java class sources from JBBP scripts, the feature allows to use the framework for more or less high-load systems. The Library still has size less than 200 kBt but since the version it needs Java 1.6+ (minimal Android version is still 2.0). Also there are published two plugins for Maven and Gradle which allow to generate Java classes from JBBP scripts on fly during project build phase.
Also of course minor refactoring and bugfixing.
p.s.
The Library is used by Orange for its Datavenue Live Objects service
Also of course minor refactoring and bugfixing.
p.s.
The Library is used by Orange for its Datavenue Live Objects service
Sunday, February 12, 2017
JCP 6.1.1 is out
New version of Java Comment Preprocessor 6.1.1 is out. In the New Version mainly improved maven options and improved some text functions to make it more compatible with GoLang.
Now it is possible preprocess GoLang and it is possible to load a binary file and represent it as a byte array through just only line command (see example)
Now it is possible preprocess GoLang and it is possible to load a binary file and represent it as a byte array through just only line command (see example)
var imageArray = []uint8{/*$binfile("./image.png","uint8[]")$*/}
Monday, November 7, 2016
mvn-golang plugin 2.1.2 is out
Maven plugin to work with GoLang in maven is out and accessible through the Maven central. Also I made some example of project with multiple modules and shared sources, it can be downloaded as zip or investigated in github
Sunday, October 9, 2016
How to compile Prolog with GProlog and SWI-Prolog (Linux)
GProlog
Application must contain such piece of code
Then executable file can be built with
SWI-Prolog
Add some main goal into Prolog application
Application must contain such piece of code
:-initialization(Goal).
Then executable file can be built with
gplc --min-size PrologFile.plTo decrease size of resulted file just use upx utlity
upx --all-methods exeFile
SWI-Prolog
Add some main goal into Prolog application
main :- Goal, Goal, Goal.Compile with string
swipl -O --foreign=save --toplevel=halt --goal=main --stand_alone=true -o exeFile -c PrologFile.plCheck usage of system libraries with
ldd exeFileIt will show something like
linux-vdso.so.1 => (0x00007ffcdc3f8000)libswipl.so.X.X is used by the executable file and must be bundled together with compiled file
libswipl.so.7.2 => /usr/lib/libswipl.so.7.2 (0x00007febe1ec8000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007febe1cab000)
Sunday, August 7, 2016
added one more example for JBBP
Added one more example for JBBP to show how to add a custom type into parser, as example I have written a parser for three byte non-signed integer value with "int24" as name of the type . The Example formed as a JUnit test and published in the GitHub.
Sunday, July 3, 2016
Java Comment Preprocessor 6.1.0
The New 6.1.0 version of Java Comment Preprocessor is out and published in Maven central. From main features of the new version I can distinguish
added option to enable whitespace between comment chars and directive, it 1) makes possible to write in such style
// #local VAR="hello"
also spaces will be allowed in //$$, //$ and /*-*/ directives
2) fixed bug in work with absolute path files
3) added function binfile(STR,STR) which converts binary files into text representation
Example:
byte[] TEXT=byte[]{/*$binfile("./file.bin","byte[]")$*/};
will be converted into
byte[] TEXT=byte[]{(byte)0x89,(byte)0x50,(byte)0x4E,(byte)0x47,(byte)0xD,(byte)0xA,(byte)0x1A,(byte)0xA};
it supports "base64","base64s" (it splits text to 80 char lines), "byte[]" and "byte[]s"
added option to enable whitespace between comment chars and directive, it 1) makes possible to write in such style
// #local VAR="hello"
also spaces will be allowed in //$$, //$ and /*-*/ directives
2) fixed bug in work with absolute path files
3) added function binfile(STR,STR) which converts binary files into text representation
Example:
byte[] TEXT=byte[]{/*$binfile("./file.bin","byte[]")$*/};
will be converted into
byte[] TEXT=byte[]{(byte)0x89,(byte)0x50,(byte)0x4E,(byte)0x47,(byte)0xD,(byte)0xA,(byte)0x1A,(byte)0xA};
it supports "base64","base64s" (it splits text to 80 char lines), "byte[]" and "byte[]s"
Sunday, June 26, 2016
Standalone Mind Map editor
I have published standalone Mind Map editor based on NB MindMap plugin. It is a small standalone Java application (about 3 Mb) needs Java 1.7+ and can be started as regular JAR or EXE file (under Windows), it can be downloaded from the folder
Saturday, May 28, 2016
GoLang maven wrapper 2.1.0 is out
the new 2.1.0 version of the maven golang wrapper has been published in the maven central. Main new feature - support for branches and tags for dependencies and creating of new artifact with packed project folders in local maven repository. Also fixed bug in test command and minor refactoring.
Tuesday, April 19, 2016
"Hello World!" in GoLang with Maven
if you have installed maven on your machine and would like to try GoLang then now it is possible in just two terminal lines:
$
mvn archetype:generate -B -DarchetypeGroupId=com.igormaznitsa
-DarchetypeArtifactId=mvn-golang-hello -DarchetypeVersion=2.0.0
-DgroupId=com.go.test -DartifactId=gohello -Dversion=1.0-SNAPSHOT
$ mvn -f ./gohello/pom.xml package
The First line creates a simple GoLang project from a maven archetype, the project is based on usage of the mvn-golang-wrapper, and the second one build and run the project.
Monday, April 4, 2016
How to start Dropbox under KDE
if Dropbox application icon is invisible in KDE tray then it can be started with command line below:
dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
Saturday, March 26, 2016
Released mvn-golang-wrapper 1.0.0
I has been published the initial 1.0.0 version of the mvn-golang-wrapper plugin in the maven central. The Example "Hello World" for the plugin can be cloned here.
Thursday, March 24, 2016
GoLang with Maven
I very like the Maven build tool and decided to make some plugin to wrap main GoLang commands and provide possibility to build GoLang applications directly with Maven. For that I have started OSS project https://github.com/raydac/mvnGoLang
It wraps commands:
It wraps commands:
- clean
- get
- build
- install
- test
Saturday, February 20, 2016
Subscribe to:
Posts (Atom)




