Lozza – how to add an engine

If you would like to develop your own Javascript engine and use it within the Lozza UIs you have a number of options.

In all cases you can develop and test offline before uploading to Lozza. But please do feel free to upload as many times as you like during development once it’s basically working.  There is no automation as yet – just email it to me: op12no2@gmail.com – it’s a matter of a moment to ftp it up to the site.  Having said that please also feel free to fork my UIs and use them on your own site.

1.  Use one of the existing hand coded engines as a starting point and further develop it.  Check licencing with the author first of course, but you are free to use mine as you like: lozza.js.  If nothing else it’ll give you a framework for sending and receiving UCI messages.

2.  Use emscripten to transpile-kindasortaish your C/C++ engine into Javascript.  A brief description of the process can be found here in a Stockfish context.  The resulting code is gloop to read but works very well.  I’d love to find the time to do this for Fruit 2.1.

3. Hand code from scratch :)  I had (am having) a lot of fun writing lozza.js.

In the case of 2. and 3., you’ll need to add some code to send/receive UCI messages.  See the lozUCI object in lozza.js for example.  It’s not pretty but it works.  You’ll see that there is code to detect if the engine is in a node.js, web or jsUCI context – that’s a useful thing to do for maximum flexibility.  NB: the odd way I write to stdout in a node.js context is so that it’s synchronous, otherwise you get all the PV output in one gulp on Windows (its OK on Linux).

USEFUL RESOURCES

CCC

CPW

emscripten – example| example | example

jsUCI

jxCore

lozza.js

node.js

node-webkit

web workers

Lozza acknowledgements

Edmund Moshammer for the indispensable jsUCI.

Norbert Raimund Leisner for designing Lozza logos.

Silvian Ruxy for testing Lozza.

Graham Banks for testing Lozza and including in the CCRL ratings.  Also for an alternative Lozza logo.

Chris Oakman for the lovely chessboard.js UI.

David Bau for seedrandom.js which I use to seed the Zobrist hashes.

Jeff Hlywa for the fab chess.js.

CPW for algorithms.  Lozza’s Q search is still pretty much all CPW.

CCC for algorithms and discussion.

Lozza – Using the engines offline

These notes apply to all the Javascript engines hosted by Lozza and all chess user interfaces.  The Lozza engine itself (lozza.js) and the Arena UI are used as examples.

Windows

Download Edmund Moshammer’s jsUCI to a folder of your choice. Download lozza.js and place it in the same folder as jsUCI.

Command line:-

cd <jsuci folder>
.\jsuci_1_2.exe lozza.js

User interface:-

Capture

You don’t have to use the same folders, it was just an example.  If lozza.js is in a different folder to jsUCI you need to specify the path on the command line and in the UI.  Absolutely or relative to jsUCI.

Linux/Mac

Download and install node.js.  node.js adds itself to your path. Download lozza.js to a folder of your choice.

Command line:-

cd <lozza folder>
node lozza.js

User interface:-

Capture

You can use node.js on Windows too instead of jsUCI.  When using node.js you can add Google Chrome V8 options to the command line to see the real time optimisation etc.

Lozza UCI console UI

http://op12no2.me/toys/lozza/console.htm

Optional URL parameters:-

e=enginename.js

In addition to the standard UCI protocol , the following commands can be used to control all the engines:-

stop

Stop the engine.   Useful to stop a long perft or analysis.  What actually happens is that the web worker containing the engine is killed.

start

Start the engine.  i.e. create a new web worker containing the engine.

clear

Clear the previous engine output.

Continue reading Lozza UCI console UI

Lozza – Javascript chess

Lozza as a word has become overworked in this project.  It started off describing a Javascript UCI chess engine (a she), but has more recently become to additionally represent the various web UIs hosting the engine – which are generic and can host other Javascript UCI chess engines as well.

http://op12no2.me/toys/lozza

I would very much like to thank these people for help during the (continuing) development of Lozza.

Continue reading Lozza – Javascript chess

Indirect protection demo

Clip1

A little demo to show how people are indirectly protected in an epidemic when enough people are vaccinated – herd immunity.

It should work on touch and non touch devices including phones; the layout being responsive to screen size.

The demo is not suitable for thinking about the elimination of a disease in an endemic steady state.  It is rooted in an epidemic context.

Continue reading Indirect protection demo

vaxfax.me search engine

vaxfax

vaxfax.me is a project oriented around a google custom search engine and also available as an Android app.  It searches hundreds of science/evidence based websites for vaccine information.

Link:-

http://vaxfax.me

It was created primarily with parents and parents-to-be in mind – to help them navigate past the mass of vaccine misinformation on the internet.

Continue reading vaxfax.me search engine

Homeopaths in denial

This is a tidy-up of a comment I posted on homeopath Steve Scrutton’s blog.

Steve, you don’t seem to understand what a denial means.

Imagine somebody (a he in this case) who anecdotally helps people by playing the piano. This goes on for years. People listen to the music and often feel better – either then or a little while later. Every now and again somebody with a serious illness will get better – breast cancer say (relatively high remission rate) – and he makes sure the world knows about cases like that (selection bias). Continue reading Homeopaths in denial

Vaccines are not 100% effective

It is not uncommon to see online discussions with arguments of the form “if your child is vaccinated, what risk is there from my unvaccinated child?”.

The fact is that while vaccines are generally very good, they are not 100% effective in terms of seroconversion rates. Some vaccinated individuals can still catch and transmit the diseases they have been vaccinated against; although often the symptoms are usually less severe than in the unvaccinated case. Continue reading Vaccines are not 100% effective

Vaccination resources

Many vaccination resources are entrenched in ideology and bias. Some are easy to spot with their emotional but anecdotal stories, conspiracy theories, logical fallacies and downright misinformation. Others have in initial air of respectability and may even appear to be science based, until you dig a little deeper and reveal that the science is cherry picked with studies that are methodologically weak, have since been retracted, or have subsequently been shown to have reached false conclusions. Continue reading Vaccination resources

The chemical makes the poison – apparently

Thimerosal is a mercury based organic compound that is used both as a preservative in vaccines and as a sterilising agent during the vaccine manufacturing process.

With the exception of some multi-dose flu vaccines, thimerosal was removed as a preservative from all childhood vaccines in 2001, with the last expiry date being Jan 14 2003. It is however, still present as trace quantities of mercury in some childhood vaccines (e.g. DTaP vaccines) due to the manufacturing process:- Continue reading The chemical makes the poison – apparently

Meryl down the rabbit hole

meryl doery down the rabbit holeThis is a slight modification of a comment I posted on an article about Meryl Dorey in the Australian Northern Star.

Ayaan Hirsi Ali was once asked how to get through to Somali women that their life was one of total repression and she answered “dissonance”. Her idea being that if you repeatedly hit people with the truth, their beliefs may eventually crack – dissonance will accumulate until a point is reached that no amount of rationalising can support the root belief/bias/ideology. Continue reading Meryl down the rabbit hole

The Australian Vaccination Network is an anti-vaccination group

Like many anti-vaccination groups, the Australian Vaccination Network (AVN) presents itself as “pro-choice” or “informed decision” or “balanced” and at first glance the website seems to support that view, but dig a little deeper and their true orientation becomes clear.  What for example is balanced about a tee-shirt that can be purchased in their online shop saying “Love them, Protect them, Never inject them”. Continue reading The Australian Vaccination Network is an anti-vaccination group

Vaccines do not weaken a child’s immune system

Paul Offit et. al. review the evidence as to whether or not vaccinations overwhelm a child’s immune system, concluding:-

Current studies do not support the hypothesis that multiple vaccines overwhelm, weaken, or “use up” the immune system. On the contrary, young infants have an enormous capacity to respond to multiple vaccines, as well as to the many other challenges present in the environment. By providing protection against a number of bacterial and viral pathogens, vaccines prevent the “weakening” of the immune system and consequent secondary bacterial infections occasionally caused by natural infection. Continue reading Vaccines do not weaken a child’s immune system

In a highly vaccinated context more infections can be found in those who are vaccinated

pop

Much is often made of the fact that in a highly vaccinated context the number of infected vaccinated individuals can be greater than the number of infected unvaccinated individuals; the conclusion being that vaccination doesn’t work – but that conclusion is a logical fallacy. Continue reading In a highly vaccinated context more infections can be found in those who are vaccinated

Vaccination is a social responsibility

What a wonderful thing it is to be able to vaccinate our children, not just to protect them, but those around them that are too young to be completely vaccinated or cannot be vaccinated for heath reasons. What a wonderful gift herd immunity is to and from humanity. Yes there are risks of adverse reactions to vaccination but such risks are microscopic and completely outweighed by the benefits. Continue reading Vaccination is a social responsibility

Antivax porkies

Joseph Mercola and Barbara Loe Fisher recently had a good old chinwag about vaccination, or to be more accurate anti-vaccination.  They start with the recent news that the FDA have recommended that clinicians temporarily suspend use of Rotarix and end with a truly scary section in which they argue we’d be better off without some vaccines, including Rotarix.

There was even a horrific section on smallpox where Fisher used the ‘naturally falling mortality rate’ argument while conveniently ignoring incidence; a common ploy found all over antivax sites and the weird and wonderful outer fringes of medical journalism – JPANDS for example. Continue reading Antivax porkies