Saturday, January 26, 2019
Could not send ACRA Post responseCode=402 message=Payment Required
Your Cloudant Dashboard is available at:
https://your_instance.cloudant.com/dashboard.html
Wednesday, October 31, 2018
Scarborough Fair for diatonic harmonica
Here is another easy one. Scarborough Fair for diatonic harmonica, beginner level. Both tabs and sheet music. Enjoy it!
Oh, and of you are looking for an affordable good quality diatonic harmonica, check out the Eeasttop T008K. Amazon affiliate link is right here: https://amzn.to/42Q5JfP
Downloadable PDF:
Scarborough Fair - diatonic harmonica.pdf
Thursday, October 25, 2018
Clair De Lune for diatonic harmonica
I was having fun with Yousician, playing their arrangement of Clair De Lune for a guitar - and I said why not play it on a diatonic harmonica! I wrote down the notes from their arrangement, transposed everything one octave up (in order to avoid bending) and - voila!
Clair De Lune for diatonic harmonica, beginner level. Both tabs and sheet music. Enjoy it!
Oh, and of you are looking for an affordable good quality diatonic harmonica, check out the Eeasttop T008K. Amazon affiliate link is right here: https://amzn.to/42Q5JfP
Downloadable PDF:
Clair De Lune - diatonic harmonica.pdf
Friday, February 19, 2016
Wednesday, January 20, 2016
Wednesday, October 29, 2014
org.w3c.dom.DOMException: Motörhead at org.apache.harmony.xml.dom.NodeImpl.setNameNS(NodeImpl.java:241)
<?xml version="1.0" encoding="UTF-8" ?> <test> <Motörhead>Ace of Spades</Motörhead> </test>If you are confused by the tag name that contains special character, rest assured that is perfectly valid, accents and diacritics are acceptable, see here.
Let's take the following Java snippet and run it with 1.6 or 1.7 compiler:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder db = factory.newDocumentBuilder();
File file = new File(INPUT_FOLDER + "test.xml");
Document document = db.parse(file);
Everything runs fine, as it should. However, if we run the same code on Android (any version), we'll get the following:org.w3c.dom.DOMException: Motörhead
at org.apache.harmony.xml.dom.NodeImpl.setNameNS(NodeImpl.java:241)
at org.apache.harmony.xml.dom.ElementImpl.
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:183)
(240) if (!DocumentImpl.isXMLIdentifier(qualifiedName)) {
(241) throw new DOMException(DOMException.INVALID_CHARACTER_ERR,
qualifiedName);
(242) }
Ok, let's take a look at DocumentImpl.isXMLIdentifier()
(92) private static boolean isXMLIdentifierStart(char c) {
(93) return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')
|| (c == '_');
(94) }
(95)
(96) private static boolean isXMLIdentifierPart(char c) {
(97) return isXMLIdentifierStart(c) || (c >= '0' && c <= '9')
|| (c == '-') || (c == '.');
(98) }
(99)
(100) static boolean isXMLIdentifier(String s) {
(101) if (s.length() == 0) {
(102) return false;
(103) }
(104)
(105) if (!isXMLIdentifierStart(s.charAt(0))) {
(106) return false;
(107) }
(108)
(109) for (int i = 1; i < s.length(); i++) {
(110) if (!isXMLIdentifierPart(s.charAt(i))) {
(111) return false;
(112) }
(113) }
(114)
(115) return true;
(116) }
Faulty implementation. Which is not surprise since Android's org.apache.harmony.xml has a lot of issues open. I submitted this one here.Now I am sure that you, just like me, can not wait for Android engineers to fix the problem, besides the faulty library is already present on millions of Android devices right now and your app has to run on those devices too. So workaround would be not to use Android's library at all, but to replace it with something reliable. I have solved my problems using Xerces for Android that I have found here.
Case closed!

