Tag Archives: java

Linux beginnings & straight into Docker containers

Now my friend Ed (see link below, no sponsored links so far), has been encouraging me to get on with Linux for a while.

Link to Ed’s Yeti tool, a portable CNC router here: https://www.yetitool.com/products/product-details/smartbench

Last night, I was letting him know I was making progress… my wife, Ed and I all shared the easy joke that Linux looks like the Matrix. It’s also the future, and free.

19 10 01 BLOGGED Docker-Logo-White-RGB_Vertical-BG_0

Ed gave me a Raspberry Pi a while back. Not got to that recently.

What I have been doing, for the CondorGP project, is getting containers working, and immediately trying WineHQ, as I want to emulate Amibroker – classically and annoyingly, it’s a brilliant but Windows only program.

WineHQ highlights Amibroker as Silver on the current version: https://appdb.winehq.org/objectManager.php?sClass=application&iId=1084

Progress:

So far so good. I can do all sorts of basics with Docker – using Docker Desktop (as I have a Windows machine and prefer not to boot back and forth the whole time).

I have WineHQ installed, and just trying to get Amibroker to actually run. Won’t be long I’m sure.

Next stop:

Kubernetes to run many containers, probably via Confluent, on AWS. That said, IBM conversations continue and Kubernetes would work there too. The major point of transferring operational ability to Linux and containerising it is to allow and IBM run too, if I decide we want to.

 

 

 

Condor GP technology

There are lots of reasons to for me to write about the technology we will use for CondorGP. So here goes, first pass. Bear in mind that this is as I see it now, and it’ll likely change.

Genetic Programming is the fundamental, underpinning technology application. I’ll write seperately about Genetic Programming in another post. Here I want to describe the technology stack the project is currently using.

Refresh on what CondorGP is

First, let’s start with a little of what the CondorGP project is. You can also, see the CondorGP aims, to refresh. They are high level, but give a picture.  CondorGP looks to use Genetic Programming to build an automated trading system.

What technology CondorGP uses

Here I will attempt to write simply and clearly, so that each technology is identified with a clear utility, to explain why each technology is used. In brackets is the current status of usage, today, e.g. (in use).

I’ll work from output down, from trading on the financial markets ‘downwards’.

  1. Interactive Brokers – a trading platform that will provide paper and real trading on financial markets (planned)
  2. Amibroker – a trading analysis tool, that provides data and allows testing of potential trading systems we have evolved (in use) NB. Headline image for this post is an Amibroker screenshot from amibroker.com, and not the way CondorGP will use Amibroker…
  3. Amazon Web Services or AWS – a massive cloud services platform, that allows processing of our genetic programming evolution and everything else (in use, nascent)
  4. Bit Bucket – Atlassian’s git code management platform, that provides pipelines for code to be tested, deployed and uplinked to AWS (in use)
  5. Git – distributed version control for software, allows sharing and co-working by teams on software projects (in use)
  6. Egit for the free Eclipse IDE (both in use)
  7. Jbehave – software project that enables BDD or Behaviour Driven Development to allow easy and accessible tests to be written and run (in use)
  8. Junit – to run the tests (in use, currently Junit 4)
  9. Maven – Apache’s method for control software project libraries, called dependencies (in use, via Eclipse’s Maven plugin)
  10. ECJ – the Evolutionary Computation in Java package, from George Mason University, that provides a powerful and wide ranging list of evolutionary capabilites (in use, version 22 from the maven repository)
  11. Jacob – the Java com bridge, currently limits the project to Jave version 8, see below. This enables Java to run Amibroker in Windows (in use)
  12. AWS toolkit for Eclipse – AWS integration for Eclipse, to help run AWS from the Java IDE (in use)
  13. Spring – the software development framework from Pivotal, to help with dependency injection and other coding paradigms (in use, 2.0.1.RELEASE)
  14. Java – the object-oriented software language that ECJ is written in, that we use to run ECJ, and write our tests, run AWS etc (in use, currently JDK 8u211 and JRE 8)