Tuesday, December 8, 2015

Java Comment Preprocessor 6.0.1

The New 6.0.1 version of Java Comment Preprocessor has been available in Maven Central

Monday, November 16, 2015

IDEA Mind Map pluigin

Published the version of NB Mind Map for IDEA. It is based on the core 1.1.1 of NB Mind Map plugin but without support of re-factoring operations.

Saturday, October 10, 2015

NetBeans MindMap 1.1.0

version 1.1.0 of the NetBeans MindMap plugin has been published in the NetBeans plugins portal update center. Many improvements to  make work easier and more comfortable, improved integration with NetBeans.

Monday, September 7, 2015

Tuesday, August 25, 2015

Catch link clicks in JLabel

The javax.swing.JLabel allows to show a HTML document which contains multiple HTML links but there is not any way to catch click on the links. If such JLabel has only HTML link then you can just catch all clicks and open browser with the link, but if you have several links shown by JLabel then there is no way to separate them. For such case I have written small modification of JLabel which allows to separate clicked links inside JLabel, the Gist cand be found here.

Tuesday, June 9, 2015

JBBP 1.2.0 is out

JBBP 1.2.0 (most comfortable way to work with binary data in Java) has been published in Maven central

Sunday, June 7, 2015

JUte 1.1.0

JUte 1.1.0 has been published in maven central. The New version includes many improvements and now JUte has special annotation provided by jute-annotations artifact to recognize its tests. Now JUte can be used and without JUnit, also full life-cycle for JUnit tests has been supported, it means that test marked by @JUteTest also will be processed with methods marked by JUnit annotations @BeforeClass..@Before..@After..@AfterClass if they presented.

Sunday, May 31, 2015


I have developed and published my new maven plugin to merge maven pom models in project hierarchy. It gives opportunity to split a multi-module maven project to standalone modules and publish them separately without publishing of the parent module.

Sunday, May 17, 2015

Isolation of JUnit tests in external processes

I had some needs to test complex legacy code with JUnit but it was very hard to isolate tests from their influence to each other. It was too expensive to find all internal influence points
 so I wrote small Maven plugin called Jute, which allows to start every JUnit test method in external JVM process, also it allows to start test methods  with different JVM and different JVM options.
The Project sources has been published in GitHub and 1.0.0 version has been published in Maven central

Wednesday, May 13, 2015

Virtual dice has been published in Google play

I have published the "PirateDice" android application in Google Play . The Application is very useful for sea board gaming where a special dice (looked like a compass) is needed, for instance such board games as "Merchants and marauders" and "Pirates". The Application works on Android 2.1+ platforms.

Monday, May 11, 2015

the Battleships game (E3 2001)

    In 2001 I took a part in very interesting project called "Battleships", the project was organized by Swedish company "Gamefederation" and the purpose of the project was to show the power of the GEX platform (multi-user game management platform, a product of the company) in E3 2001. During planned demo game session, a Motorola A008 user would start a game session with a PC  user through interfaces provided by the GEX server. The Well-known paper board game "Battleships" was selected as the base for the demo and we were sure that it would possible to implement demo project for 3 moths.  I didn't have any mobile development skills in that time but the project looked very interestingly especially because it was a client-server project involving a mobile device working through GPRS network (very new experimental technology in that time) and even with touch screen so I agreed my participation.  The Russian team part worked in bounds of RU-SOFT company.

Friday, May 8, 2015

Sunday, May 3, 2015


I had found my old (2009) project of implementation a JVM interpreter in Java to play class files in J2ME (which didn't support class loaders), I made some changes, added tests and added support of long and double processing and moved the project to github, so that now it has been published under Apache License 2.0 and fully accessible
also I renamed the project from M-JVM to J-J-JVM

Saturday, April 25, 2015


Interesting detail about Javassist (as minimum 3.12.1.GA), it doesn't produce optimal Java code and for instance the switch keyword everytime produces lookupswitch instruction even if it is possible to use faster version - tableswitch. The Same situation with conditions, a condition like if (a==0) produces non-optimal code instead of ifeq

Friday, March 13, 2015

Farewell GoogleCode

Because Google Code is going to end its life, I have moved all my pet projects to GitHub and the repository link is https://github.com/raydac?tab=repositories

Wednesday, February 4, 2015

New version of Java Binary Block Parser (JBBP) 1.1.0 is out

The New version of JBBP 1.1.0 is out and accessible in the maven central, now it supports not only parsing of binary data and mapping them to classes but also and back operation - packing binary data blocks from mapped classes and even printing of mapped class  description, take a look at example

class Flags {
      @Bin(outOrder = 1, name = "f1", type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_1, comment = "It's flag one") byte flag1;
      @Bin(outOrder = 2, name = "f2", type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_2, comment = "It's second flag") byte flag2;
      @Bin(outOrder = 3, name = "f3", type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_1, comment = "It's 3th flag") byte flag3;
      @Bin(outOrder = 4, name = "f4", type = BinType.BIT, outBitNumber = JBBPBitNumber.BITS_4, comment = "It's 4th flag") byte flag4;
    final int data = 0b10101010;
    Flags parsed = JBBPParser.prepare("bit:1 f1; bit:2 f2; bit:1 f3; bit:4 f4;", JBBPBitOrder.MSB0).parse(new byte[]{(byte)data}).mapTo(Flags.class);
    System.out.println(new JBBPTextWriter().Bin(parsed).Close().toString());
    assertEquals(data, JBBPOut.BeginBin(JBBPBitOrder.MSB0).Bin(parsed).End().toByteArray()[0] & 0xFF);
the code will parse the byte, then print its values

; START : Flags
    01; f1, It's flag one
    02; f2, It's second flag
    00; f3, It's 3th flag
    05; f4, It's 4th flag
; END : Flags
and again will pack parsed data into byte

New version of ZX-Poly emulator is out under GPL 3

I have reworked and published ZX-Poly emulator under GPL3, also the project contains Z80 emulator as separated block

The Emulator supports .TAP,.SNA,.Z80,.TRD and .SCL snapshots and even allows to generate tape WAV files from TAP snapshots.