Monday, August 24, 2015

Request for Celebrity Haikus for The Money and Currency Poetry Collection

Are you a celebrity? If so, can you please write me (donate) a family-friendly Haiku for my new book, "The Money and Currency Poetry Collection"?  The book will include 100 haikus (some mine, and some from celebrities) and 100 poems (some mine, some from pre-1923 works of authors and perhaps, some from celebrities).

So, What is a Haiku?

If you don't know, a Haiku represents traditional Japanese poetry. Consisting of 17-syllable verses of three metrical units containing 5, 7 and 5 syllables. Here's an example of one that I wrote:

# Silly Grandfather
Silly Grandfather,
He glues down a bright penny.
'Laughs and laughs and laughs.

How can you get me your Haiku?

Please send your haiku with a title and how you would like your name presented with the Haiku (e.g., by John Doe) via one of the following methods:
  • You can e-mail it to me at  
  • You can phone it to me at 609-576-1546.  If I don't pickup, you can leave it on the answering machine.  I will not replay your message for the public, I will just transpose it for the book.
  • You can add it to the comment section of this blog.
  • You can send it to me on Facebook
  • Or you can get it to me another method, if you have one... snail mail would work too. :) 
Note that somehow I should validate it's really you who has contributed the Haiku (e.g., a message from your official Twitter or Facebook account should suffice.  Also, if you'd like to be compensated whether it's a fixed or royalty based amount, I'm willing to do whatever is fair, though I doubt the book will sell... the free copy is probably what will be most consumed.

Please Tell your Celebrity Friends

Do you have celebrity friends too?  If so, please let them know about this request. It would be awesome if I got more than a few celebrities to help out here.

A little more Ambitious you are?

If a haiku isn't your thing or if you have a little more time and energy to share, feel free to send me a full poem.  :)  Remember it has to be money/currency related AND family-friendly.

Due Date

I'm hoping to have all haikus (or other poetry) by November 1st, 2015.  :)


Who am I? (Robert Liguori)

If you are wondering who I am, you can find me on Amazon as I've authored several technical books.

Thanks for your help and for sharing your poetry with the world!


Sunday, August 23, 2015

Building an Autosomal DNA Relationship Calculator using multiple Influence Factors

I'm starting down the path of building an Autosomal DNA Relationship Calculator.  The goal is to come up with a better, more precise prediction if possible.  I'm doing this by identifying a more complete set influence factors that can be used in the analysis.  

For those who don't know, Autosomal DNA can help match you to relatives with a common ancestor going back to about 9 to 10 generations ago.  So, if you take an average age to give birth at 30, just for the sake of argument, DNA Most Common Recent Ancestor (MCRA) matches could go back 300 years or so.

Before moving forward with building this Autosomal DNA Relationship Calculator application, I have tried to answer the following questions: 
  • What Autosomal DNA relationship calculators already exist?
  • What individual (i.e., person's) data could be collected to influence distance relationships?
  • What shared data can be collected (between cousins) that could influence distance relationships?
  • What are some miscellaneous factors that could influence distance relationships?
And here are my findings (anyone have more info to offer, please do): 

Existing Autosomal DNA Relationship Calculators

The following are existing DNA Relationship Calculators (and related resources):


Influence Factors

The following three sections provide the influence factors.


Individual Influence Factors

  • 1. Birthdate
  • 2. Haplogroup (for Mt or Y)
  • 3. Sex (Male, Female, Hermaphrodite)
  • 4. Birthdates and sexes of ancestors known to be in relationship


Relationship Influence Factors

  • 5. Total shared centiMorgans (cMs)
  • 6. Largest shared centiMorgans 
  • 7. cMs Thresholds applied in matching (e.g., min. 7 cMs segments)
  • 8. SNPs Thresholds applied in matching (e.g., min. 500 cMs segments)
  • 9. Number of chromosomes with matches 
  • 10. Identified IBS vs IBD segments
  • 11. X-DNA Total of segments
  • 12. X-DNA Largest segment 
  • 13. Your predicted relationship based on paperwork analysis


Miscellaneous Influence Factors

  • 14. Known Pedigree Collapse instances in relationship  
  • 15. Known Twins instances in relationship

Upon further thought... the calculator can present multiple algorithms/engine that could be selected for the analysis.  Results should also be close to the same, but need not be.


Note: Fuzzy logic may be applied in analysis.

Friday, August 21, 2015

What's the result when you round robin exchange rates?

So, I was curious to see if the ECB exchange rates would bring a currency back to where it started if converted through all the available currencies.  And yes!  It did...

EUR 1.0 -> EUR 1.0000000000000026508887854196252

EUR 1.0 -> HRK 7.559
HRK 7.559 -> CNY 7.20640000000000186934016
CNY 7.206400000000002 -> RON 4.429500000000002646763934280639825
RON 4.429500000000003 -> PHP 52.6530000000000345260119001185227669
PHP 52.653000000000034 -> MXN 18.997200000000014844738546230757746688
MXN 18.997200000000014 -> TRY 3.303900000000002654877617097290289144
TRY 3.3039000000000027 -> GBP 0.71980000000000049552184934895116368
GBP 0.7198000000000006 -> HKD 8.74410000000000597016437962767325484
HKD 8.744100000000007 -> BGN 1.95580000000000204668562026113646538
BGN 1.955800000000002 -> IDR 15725.280000000016234455882842172158496
IDR 15725.280000000017 -> NZD 1.693600000000001704213167361458507992
NZD 1.6936000000000018 -> MYR 4.69150000000000522944968404345798168
MYR 4.691500000000005 -> PLN 4.2038000000000047858464635596294422
PLN 4.203800000000005 -> SGD 1.5852000000000015789544175844708282
SGD 1.5852000000000015 -> RUB 77.09440000000007901658224438456289344
RUB 77.09440000000008 -> ZAR 14.59910000000001264715447966368659496
ZAR 14.599100000000012 -> EUR 1.00000000000000085340147750888756
EUR 1.0000000000000009 -> BRL 3.91610000000000352449
BRL 3.9161000000000037 -> JPY 138.400000000000154305972652996626008
JPY 138.40000000000015 -> THB 40.19100000000004526370822658959722265
THB 40.191000000000045 -> AUD 1.53840000000000179930287701067411752
AUD 1.5384000000000018 -> USD 1.128100000000001317041861191887672128
USD 1.1281000000000012 -> NOK 9.27450000000001003978986046538445972
NOK 9.27450000000001 -> SEK 9.5314000000000126607992044778719972
SEK 9.531400000000012 -> CHF 1.0765000000000016877976080749946482
CHF 1.0765000000000018 -> KRW 1346.4100000000022917722075877845544146
KRW 1346.4100000000024 -> HUF 312.7700000000005589984812437727761624
HUF 312.77000000000055 -> DKK 7.46290000000001419727672228378869665
DKK 7.4629000000000145 -> INR 74.34540000000014148631676914456270905
INR 74.34540000000014 -> ILS 4.37410000000000981513215286442390458
ILS 4.37410000000001 -> CZK 27.021000000000067405629692992399878
CZK 27.02100000000007 -> CAD 1.47870000000000401051195025524638569
CAD 1.478700000000004 -> EUR 1.0000000000000026508887854196252

And here are the results with Rounding enabled:

EUR 1.0 -> HRK 7.56
HRK 7.56 -> CNY 7.21
CNY 7.21 -> RON 4.43
RON 4.43 -> PHP 52.66
PHP 52.66 -> MXN 19
MXN 19.0 -> TRY 3.3
TRY 3.3 -> GBP 0.72
GBP 0.72 -> HKD 8.75
HKD 8.75 -> BGN 1.96
BGN 1.96 -> IDR 15759.05
IDR 15759.05 -> NZD 1.7
NZD 1.7 -> MYR 4.71
MYR 4.71 -> PLN 4.22
PLN 4.22 -> SGD 1.59
SGD 1.59 -> RUB 77.33
RUB 77.33 -> ZAR 14.64
ZAR 14.64 -> EUR 1
EUR 1.0 -> BRL 3.92
BRL 3.92 -> JPY 138.54
JPY 138.54 -> THB 40.23
THB 40.23 -> AUD 1.54
AUD 1.54 -> USD 1.13
USD 1.13 -> NOK 9.29
NOK 9.29 -> SEK 9.55
SEK 9.55 -> CHF 1.08
CHF 1.08 -> KRW 1350.79
KRW 1350.79 -> HUF 313.79
HUF 313.79 -> DKK 7.49
DKK 7.49 -> INR 74.62
INR 74.62 -> ILS 4.39
ILS 4.39 -> CZK 27.12
CZK 27.12 -> CAD 1.48
CAD 1.48 -> EUR 1

Curious as to how I coded this?  I used the Moneta JSR-354 Reference Implementation.

Here's my code:

import java.math.RoundingMode;
import java.util.Collection;
import org.javamoney.moneta.Money;

public class RoundRobin {

  public static Double convertCurrency(String currencyCode1, Double currencyValue, String currencyCode2, Boolean isRounded) {
    ExchangeRateProvider ecbExchangeRateProvider = MonetaryConversions.getExchangeRateProvider("ECB");
    CurrencyUnit currencyUnit = Monetary.getCurrency(currencyCode2);
    CurrencyConversion ecbDollarConversion = ecbExchangeRateProvider.getCurrencyConversion(currencyUnit);
    MonetaryRounding rounding = Monetary.getRounding(RoundingQueryBuilder.of().setScale(2).set(RoundingMode.HALF_UP).build());

    MonetaryAmount monetaryAmount1 = null;
    MonetaryAmount monetaryAmount2 = null;
    if (isRounded) {
      monetaryAmount1 = Money.of(currencyValue, currencyCode1).with(rounding);
      monetaryAmount2 = monetaryAmount1.with(ecbDollarConversion).with(rounding);
    } else {
      monetaryAmount1 = Money.of(currencyValue, currencyCode1);
      monetaryAmount2 = monetaryAmount1.with(ecbDollarConversion);

    System.out.println(currencyCode1 + " " + currencyValue + " -> " + monetaryAmount2.toString());
    String[] words = monetaryAmount2.toString().split(" ");
    return Double.parseDouble(words[1]);

  public static void main(String[] args) {

    String token = "EUR";
    Collection<CurrencyUnit> allCurrencies = Monetary.getCurrencies();
    Double value = 1.00;
    for (CurrencyUnit allCurrency : allCurrencies) {
      try {
        value = RoundRobin.convertCurrency(token, value, allCurrency.getCurrencyCode(), true);
        token = allCurrency.getCurrencyCode();
      } catch (Exception e) {
    RoundRobin.convertCurrency(token, value, "EUR", true);

-- Robert

Factors that Influence Exchange Rates

'Curious about influences to exchange rates, I took to the internet.  Here I found varying articles with different numbers of factors.  Factors ranged from 4 to 50.


Here are several sets of exchange rates influence factors that I found:

 4 Factors

What Factors Influence Exchange Rates - Business Foreign Exchange
1. Interest Rates
2. Economic Growth
3. Geo-Politics
4. Trade Balance

Factors Contributing to Exchange Rate Risks
1. Commodity Prices
2. Interest Rates
3. Inflation
4. Dealing with Exchange Rates


5 Factors

What makes currencies strong or weak?
1. Interest rates
2. Economic health
3. Foreign trade
4. Official interventions
5. Shocks and speculation

Factors which influence exchange rates
1. Inflation
2. Interest Rates
3. Current-Account / Trade Balance
4. Public (government) debt
5. Political and Economic Factors

Top 5 Factors Affecting Exchange Rates
1. Interest Rates
2. Employment Outlook
3. Economic Growth Expectations
4. Trade Balance
5. Central Bank Actions

Top 5 factors that affect exchange rate
1. Interest and Inflation rates
2. Trade balance
3. Currency market speculation
4. Foreign investment
5. Central bank market intervention

6 Factors

6 Factors That Influence Exchange Rates 
1. Differentials in Inflation
2. Differentials in Interest Rates
3. Current-Account Deficits
4. Public Debt
5. Terms of Trade
6. Political Stability and Economic Performance

6 Factors That Influence Exchange Rates
1. Government Intervention
2. Inflation
3. Interest Rates
4. Current Account Deficits
5. Government Debt
6. Speculation

Factors that Influence Foreign Exchange Rates
1. Interest Rates
2. Balance of Payments
3. Public Debt
4. Political Uncertainty and Economic Instability
5. Government Intervention
6. Speculation

Key Factors Affecting Exchange Rate
1. Monetary Policy
2. Political Situation
3. Balance of Payments
4. Interest Rates
5. Market Judgment
6. Speculations

Factors That Affect Currency and Exchange Rates
1. Gross Domestic Product (GDP) and Economic Growth
2. Interest Rates
3. Inflation
4. Balance of Payment and Balance of Trade
5. Public Debt
6. Political and Economic Stability

8 Factors

8 Key Factors that Affect Foreign Exchange Rates
1. Inflation Rates
2. Interest Rates
3. Country’s Current Account / Balance of Payments
4. Government Debt
5. Terms of Trade
6. Political Stability & Performance
7. Recession
8. Speculation


9 Factors

Main Factors that Influence Exchange Rates
1. Inflation
2. Interest Rates
3. Speculation
4. Change in Competitiveness
5. Relative strength of other currencies.
6. Balance of Payments
7. Government Debt.
8. Government Intervention
9. Economic growth / recession

10 Factors

Currency Fluctuations
1. Interest Rates
2. Economic Growth (GDP)
3. Trade Balance
4. The rate of inflation
5. The Rate of Unemployment
6. Political stability
7. Central Bank Actions / The Monetary Policy
8. Market factors
9. Natural disasters
10. Currency Speculation

12 Factors

Factors influencing exchange rates
1. Strength of the Economy
2. Political and Psychological Factors
3. Economic Expectations
4. Inflation Rates
5. Capital Movements
6. Speculation
7. Balance of Payments
8. Government’s Monetary and Fiscal Policies
9. Exchange Rate Policy and Intervention
10. Interest Rates
11. Tariffs and Quotas
12. Exchange Control

13 Factors

13 Unconventional Factors that Affect the Dollar
1. Institutional Investment Trends
2. Petrodollars
3. Japanese Interest Rates
4. Chinese demand for raw materials
5. Investor/Consumer sentiment
6. US Real Estate Prices
7. IMF and World Bank
8. Fixed Exchange Rate Regimes
9. Central Bank Intervention
10. US Treasury Secretary
11. Financial Derivatives
12. Composition of the EU
13. Rating Agencies


14 Factors

Factors that Influence Foreign Exchange Rates
1. Balance of trade
2. Economic stability
3. Government fiscal policies
4. Government monetary policies
5. Inflation
6. International capital flow
7. International trade
8. Investor interest
9. National debt
10. Other currencies traded
11. Political stability
12. Productivity
13. Speculative trading
14. Unemployment

50 Factors

50 Factors that Affect the Value of the US Dollar

Which list do you feel is the most accurate? What would your list be?

Btw, my list would look something like this:

1. Trade Balance / Payments Balance / Current-Account
2. Public (Government) debt
3. Inflation Rates
4. Interest Rates
5. Rating Agencies
6. Political Stability and Economic Performance
7. Unemployment Rate / Employment Outlook
8. Economic Growth (GDP); recession and expectations
9 Currency Market Speculation
10. Natural disasters
11. Government Intervention
12. Central Bank Actions / The Monetary Policy / Intervention
13. Government’s Monetary and Fiscal Policies / Terms of Trade / Tariffs and Quotas

-- Robert

Thursday, August 20, 2015

How much is that Global Money Transfer really costing you?

There are numerous Forex (Foreign Exchange) comparison websites out there for money transfer services.  But are they really informing you to the finest detail?  Actually, after a little bit of research I don't think there comparison are really all that accurate either.

Anyway, wouldn't it be nice to know what the value of your complete transaction was relative to your source currency?  That is, factor in the fee and the exchange difference relative to the base currency.

So, I did this, in a handy little Exchange Rates Calculator.   Check it out or the mobile version below and let me know what you think:

Note that to use the calculator, you must retrieve the Exchange Rate of your provider.


-- Robert

Sunday, August 16, 2015

I'm looking for a Venture Capitalist to support a new Global Money Transfer Application

Dear Venture Capitalist,

I've been looking for you to help me build a Global Money Transfer application through my own company Gliesian, LLC., or a new joint company of your liking.

Since I got your attention, here's the TOP TEN reasons to support me with our project...

10. Global Money Transfer Applications appear to be doing very well. (very very well).

9. I'm not greedy. Whatever is fair is exactly what I look for. :)

8. I write technical books!  One of my books (which my wife wrote with me) has actually been translated into German, Polish and Chinese; though we didn't do the translations.

7. I just started writing an implementation of JSR 354; (JavaMoney) Money and Currency API; JCabbage.  Note that this (JCabbage) is a huge project in it of itself, but I'm learning a lot in the process.

6. I'm funny! Or at least I think I am.  However, I'm not sure though that being funny should be on this list.

5. I have connections.  I know people in the tech space on top of their game whom I continue to collaborate with to stay familiar with emerging technologies and resources.

4. I'm getting older.  At 42, now is the best time to get my company Gliesian, LLC into forward gear. That is, I know my stuff, and I'm not washed out yet.

3.  I want to succeed.  I still work full time for a company (not of my own), but I would love to work for my own company full time.  I would love to have my own lab and my own successes.

2.  I'm persistent.  When I'm done with this blog entry, I will return to programming through the middle of the night.  Note that I've tried for TWENTY years to build a company in the federal space and  I have not succeeded in finding a vehicle that supports my talents. I do try to be a good listener though and a good person... so I'm told (1) get in the private sector and (2) I've been talking to the wrong people.  So I'm now trying to take this advice.   Are you the right person?  

1.  You will win.  I don't just want to use your seed money.  I want to make you money, lot's of it.  But I want to do it while making a positive difference.  Providing an easy, secure means (with fair rates) to transfer money internationally can help the quality of life of many others.

So grab your checkbook and send me an e-mail to  My thoughts are to start with an aggressive 'feasibility prototype' over three months.  And after this goes well to move forward into a more disciplined stage of development, legal-research, etc.

Your new friend and partner,
Robert James Liguori


Saturday, August 15, 2015

How does the US Dollar compare to other currencies, via the current ECB rates?

Today, August 15th, 2015, the U.S. Dollar (USD) relates to other popular currencies as detailed below (with the supplied USD amount having a value of 100 dollars):

GBP 63.96025422970191027
EUR 89.51750067138126
CHF 97.35028198012712025
USD 1E+2
CAD 130.435950228269633946
AUD 135.368364515262741372
SGD 140.247068301853020042
NZD 152.475158893563700158
BGN 175.078327813087468308
TRY 283.340793125055964152
BRL 350.0134276251007266
PLN 374.738161310536230612
ILS 377.647480082356121562
RON 396.177602721332042382
MYR 408.047623310357197458
CNY 639.119147793393643896
DKK 668.095962760719757758
HRK 675.27526631456453481
HKD 775.57962581684723664
NOK 817.96616238474626325
SEK 844.221645331662386808
ZAR 1279.446781845850934802
MXN 1640.49771730373297076
CZK 2419.47900814609269528
THB 3520.00716140005390572
PHP 4615.25378211440362182
RUB 6485.686151642646497016
INR 6500.751947005639963074
JPY 12416.077343120580762
HUF 27812.1922835914436694
KRW 117695.8195327186530228
IDR 1377477.396831080552628

How did I produce and sort this list?  I used the JavaMoney API.  I'm explain in a little bit, but first I'd like to share a great Money and Currency API video of which I stumbled upon:

Java reads like a book (as we know), so I'll just supply the code and list first a few of the key pieces of the program I wrote.  Enjoy.

  • Uses European Central Bank exchange rate provider
  • Uses Collection interface with Monetary.getCurrencies() to get all available currencies
  • Uses Fluent API features of MonetaryAmount to perform the conversions
  • Uses Java 8 lambdas to sort and print the results

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import org.javamoney.moneta.Money;

public class JavaMoneyExample {

  ArrayList<MonetaryAmount> monetaryAmountList = new ArrayList<>();

  public static MonetaryAmount sortCurrency(String currencyCode1, Double currencyValue, String currencyCode2) {
    ExchangeRateProvider ecbExchangeRateProvider = MonetaryConversions.getExchangeRateProvider("ECB");
    CurrencyUnit currencyUnit = Monetary.getCurrency(currencyCode2);
    CurrencyConversion ecbDollarConversion = ecbExchangeRateProvider.getCurrencyConversion(currencyUnit);
    MonetaryAmount monetaryAmount1 = Money.of(currencyValue, currencyCode1);
    MonetaryAmount monetaryAmount2 = monetaryAmount1.with(ecbDollarConversion);
    return monetaryAmount2;

  public void printAllConversions(String id, Double value) {
    Collection<CurrencyUnit> allCurrencies = Monetary.getCurrencies();
    // Exchange all available currencies againt supplied ID and Value
    for (CurrencyUnit allCurrency : allCurrencies) {
      try {
        MonetaryAmount monetaryAmount = sortCurrency(id, value, allCurrency.getCurrencyCode());
      } catch (Exception e) {

    // Sort Currencies against their number value
    Collections.sort(monetaryAmountList, (MonetaryAmount w1, MonetaryAmount w2)
            -> w1.getNumber().compareTo(w2.getNumber()));

    // List the Results
    monetaryAmountList.forEach(s -> System.out.println(s));

  public static void main(String[] args) {

    JavaMoneyExample jme = new JavaMoneyExample();
    jme.printAllConversions("USD", 100.00);


Now, for my own curiosity, does the produced table (above) help in anyway in selecting currencies to buy and trade?