Monday, April 27, 2009

Forex and the MetaTrader Platform

The MetaTrader platform allows clients to place buy/sell trades on the Forex market. It's quite a nice product, but is it 'fair'? There is a plugin, shown in this thread, that allows the broker to 'tweak' the settings on their side to, possibly, rob you of your cash.

So, if you see some unexplained spikes, or wonder why every trend just hits your SL before reversing, then maybe your broker is using this plugin.

Wednesday, April 22, 2009

JSF 1.2 on Google App Engine

Seems like this guy has got it working. I'll have to try it when I get time.

Work sucks ;)

Sunday, April 19, 2009

Forex EA's (2)

Here's a site with a decently written EA ;)

Forex EA's

Yet another forex Expert Advisor I've developed based upon an indicator that shows great trend following capabilities in hindsight. Needless to say it's not very good at generating profits. The code is great though :)

I've slowly amassed a library of Metatrader trading methods that simplify the writing of an EA. This EA above took 2 hours to write including testing and debugging. Hmm, I could make a career of this ;)

Friday, April 17, 2009

Field Initialisation in Google App Engine

Had a weird problem that took a while to resolve. I'm still not sure what the issue really was, perhaps its a problem with GAE itself. Here are the details:

I have a class that is packaged within a Jar and included in the applications WEB-INF/lib directory.

I was struggling with the following errors:

javax.servlet.ServletException: [Ljava.lang.String;
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:239)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:63)
...

Nested in javax.servlet.ServletException: [Ljava.lang.String;
:java.lang.ArrayStoreException: [Ljava.lang.String;
at java.io.ObjectInputStream.readArray(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
...

The class I was using has an instance field initialised as:
private SimpleDateFormat sdf = new SimpleDateFormat("MMddyyHHmmssSSS");

If I remove the field initialisation and initialise the field in a method, then all works fine.

I'm not sure what the problem is, it works fine under Tomcat, but is there some instance field initialisation issue within GAE? Or is it just SimpleDateFormat has a problem, perhaps a locale issue?

Anyway, thought I'd post it here as it took a lot of trial and error to find this issue. It may save someone else the time.

If there's an 'real' answer to the problem then it may appear here.

Thursday, April 16, 2009

Turbo Lister

I've used Turbo Lister in the past to allow me to create eBay entries 'off-line' and upload them when I'm ready. I haven't used it for a while and when I cranked it up was told that I needed to phone 'this number' to prove my identity. wtf? Is this the internet or not? Do I have an eBay ID that is secure or not? wtf do I need to phone up eBay?

Stuff that, I'll just do it online instead with my obviously insecure eBay ID.

So, Macs Never Crash?

Er, yes they do. Mine crashes frequently. Hard crashes equivalent to the Windows Blue Screen of Death, program crashes and awful performance when memory is tight.

Currently I'm battling against a hard crash that happens when I use two competing Virtual Machine products, Parallels and Sun's free Virtual Box.

For those who've never experienced a Mac hard crash, or kernel panic to give it it's proper name, then here's a picture:

Tuesday, April 14, 2009

Forex Factory and Enthusiastic Admins

I like Forex Factory, a place to post trading related questions and start trading related threads. I've started a thread on trading using Inside Bars, you can read it here.

But for a while now things have started to smell a little off. Threads and people getting binned and banned for, seemingly, spurious reasons. Mostly it's due to trying to sell stuff, which is funny in a way as that's what Forex Factory does, it sells advertising and makes money by having an active community. Nothing overly wrong with that, just a little 'double standards'.

What really bothers me though is that there seems to be a concerted effort to ban people who use certain indicators, specifically ones written by Avery T. Horton, Jr. aka "The Rumpled One". Avery, or TRO as he is known, has a strong following and you either love him or hate him. He's been banned on virtually every forex forum going. If you want a closer look at the typical reasons, then go to BabyPips for this explanation. TRO can be found posting at this site.

Now, I've been chatting with a user on Forex Factory called Money4Nothing who was banned, it appears, because he posts stuff with TRO indicators on them. If that was all he was banned for, then shame on Forex Factory.

Interestingly though, in researching this blog comment, I've noticed that some of the users banned, including Money4Nothing and Toddfx, have very similar posting styles. Both use TRO indicators and embed large images in the post by IMG tags, rather than the more common way of using attachments. This was a feature used by TRO on the BabyPips site, referenced earlier. Hmm, makes me wonder if these users were indeed TRO in disguise and it's not the fact they're using TRO indicators that got them banned, but more a case of this being TRO himself. If that's the case, then perhaps TRO should vary the way he posts :)

JSF Issues on the Google App Engine

Run this query to see the outstanding/requested JSF issues with the Google App Engine. Add your vote to the list :)

JSF and RichFaces on Google App Engine

A previous commenter noted that JBoss' RichFaces (Ajax4JSF) didn't work for them. I had a plan to use that so I initiated a simple test.

In fact, all I had to do was included the RichFaces 3.1.6SR1 jars and it blew up straight away with the following error:


org.apache.myfaces.webapp.StartupServletContextListener initFaces: Error initializing ServletContext
javax.faces.FacesException
at javax.faces.FactoryFinder.newFactoryInstance(FactoryFinder.java:194)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:140)
...
Caused by: java.lang.NoClassDefFoundError: javax.imageio.ImageIO is a restricted class. Please see the Google App Engine developer's guide for more details.
at com.google.apphosting.runtime.security.shared.stub.javax.imageio.ImageIO.<clinit>(ImageIO.java)
at org.ajax4jsf.resource.ResourceBuilderImpl.<clinit>(ResourceBuilderImpl.java:110)


Oh well, scrap that.

If you are interested in using RichFaces on GAE, then register a vote here and get Google to lift some of the restrictions on what classes can be used.

Sunday, April 12, 2009

Experts Exchange

No not Expert Sex Change, this is the IT site that you have to pay for to see answers.

It uses a form of cloaking that allows search engines, like Google, to see the answers so that they appear high in the search engine listings. However, when you visit the link you can see diddly squat until you pay. Since cloaking is a disingenuous way of getting high up in the search listings, a few people have taken exception to this and found a work-around that allows you to see the answers without registering (and paying).

Find a link from EE and type it into this website. Now you can see what Google sees.

Nice one folks.

Thursday, April 09, 2009

JSF on Google App Engine with Facelets

Having tried JSF on Google Java App Engine, how about Facelets and JSF?

Works OK with MyFaces 1.1, see here for a test.

Wednesday, April 08, 2009

Looking for Classes?

Looking for a particular Java class? Can't find it anywhere?

Try this site as a starting point.

JSF on Google App Engine

OK, so Java on GAE is straight forward. See the previous post for a quick demo using GWT.

How about JSF? Hmm, not as straight forward if you are trying to use JSF 1.2 and MyFaces. In fact, I can't get it to work. I get as far as this error:

java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
at
org.apache.myfaces.webapp.Jsp21FacesInitializer.initContainerIntegration(Jsp21FacesInitializer.java:60)

Which would suggest that there is something wrong with the version of JSP that is being used? GAE uses Jetty under the covers, but I'm not sure which version. I would have thought it was a version that supports JSP 2.1, but who knows. The SDK comes with Geronimo JSP 2.1 and Servlet 2.5 jars, so you would think it would work.

Anyhoo, JSF works with MyFaces 1.1 and you can see a quick demo here. It doesn't do much at the moment, but I'll play around with it and see if I can do something a little better.

I have a Java/Swing application that uploads old Polar HRM data to the new Polar web site. This is an ideal application to convert to JSF/Facelets/RichFaces and host on GAE. Watch this space (well, come back in a few months ;) )

Java on Google App Engine

Cool. Google now host Java applications for free.

Here's my first app.

For more information, see this post for running Java in Eclipse. Very easy, very cool, very Google ;)

Monday, April 06, 2009

Facebook's a Crock....

Why do you have to register to search for people on Facebook?

Why do you have to register to read user generated content on Facebook?

Why? Because they want to sell your details, make money off the content you write and inflate their user numbers. There can be no other reasons.

Wednesday, April 01, 2009

James Young - Internet Vigilante

There have been a number of notices issued by:

James Young
Internet Investigator
on behalf of Microsoft Corporation

Which request that websites or forums remove allegedly infringing material.

The emails come from Microsoft Anti Piracy Investigator #2 (internet2@microsoft-antipiracy.com) which doesn't appear to be a Microsoft owned site at all. Whilst a number of sites have fallen for the threats and removed content or completely closed, more and more of them are beginning to ignore these as they seem to have no legal backing at all.

Click here for further reading