Reader Mail – 02/23/2014 To 03/01/2014

James R. Alkire commented on FAQ.
BMI filed a copyright infringement lawsuit in The U.S. District Court For The District of Massachusetts against me as principal owner of The Fresh Chef Inc. that operates Point Breeze Restaurant located in Webster Mass. I currently have an ASCAP license covering their artists but not one from BMI. My venue is a building first erected in 1888 and since added various spaces bringing a building capacity to 400. I offer recorded music in two of the three spaces and have a Serius Commercial Music package to deliver to my diners that music at a cost of about $350 per year(Serius pays the licensing fees) which is much less than the licensing fees BMI and ASCAp require with their blanket license calculation formulas. Those spaces have a seating capacity of only 200. I also offer live music in two of the three spaces that have again only a 200 capacity. The third space of my restaurant is closed off to the live music areas(used only for private functions) but BMI has only offered me a license for the entire premiss(400 seats) thus increasing the yearly fee to $4,426. ASCAP'S yearly fee is half that because they have allowed me to use the 200 capacity in their calculator formulas. I have told the BMI phone reps every time they called in 2013 that their calculator formula should not apply in a blanket form to my business yet they have gone forward with their lawsuit. My attorney feels we should settle,pay the copyright infringement fees, the $4,426 annual fee and therefore minimizing the lawyer fees for BMI's firm. My question to you and your readers is shouldn't there be a federal consumer protection statute forcing licensing agents to be held to a reasonable standard of fairness. It clearly is not fair to be charged for 400 people when the city licensing/building agent only allows 200 people to be in the space. We need help now because I believe my attorney is correct in his belief that we need to settle quickly. I wish someone could site some favorable case law in this regard. Thank you, JRA

Wait a minute, did you say Serius? Do you mean Sirius Satellite Radio?

For Sirius Satellite Radio, the fee you pay includes the license.

For live music, it's much harder. You have to make sure that the band only plays public domain songs, or songs for which they own the copyright. This means no covers.

The short answer is: You're probably screwed. Your attorney is probably correct by advising you to settle. The licensing extortion cartels know that they own the government and judges, and you aren't going to win. If you contest the amount of the fee (but not whether you owe it at all), there's a separate process for that.

Another point if they're contesting your live music: Their agents use software to determine whether the song played is in their catalog. If the song really isn't in the catalog, but sounds similar to one that is in the catalog, they may give false positives.

If you do contest the fee, make sure that you mention the Sirius deal, which means you already are paying them some money. They're double-dipping if you're paying via Sirius and also them directly.

Also, you can point out the unfairness of the fee schedule if you do contest it. You pay the same fee if your band plays 99% original music and 1% covers, or 100% covers. That is unfair. However, you'd have to know your bands were mostly playing original music if you go that route.

Another possibility is to settle, go along with it for a year (whatever the minimum is) and then cancel at the first opportunity. Stop having live music for a few months, and then when you restart make sure your bands only play songs that don't require a license. It would require strict documentation.


Someone found a bug in your Java. It leads to a 5x slowdown.

for (int i=0; i!=5; ++i)

{

int card_rank = (int)(hand[i]%13);

int suit_rank = (int)(hand[i]/13);

ranks[card_rank]+=1;

suits[suit_rank]+=1;

[missing brace]

Not only does that make the performance worse, it causes it to give the wrong answer. (Three Jacks will come out as a pair of Jacks.)

I should have checked your work. I guess I have to also look at the Python version.

It's just like at work. They release code without testing it. They get annoyed when I ask "Did you even bother testing that the button you just added actually works when you click on it?"

MP commented on FSK Benchmark Test - C/C++ vs. Javascript vs. PHP.

Well, the point of submitting the code was to increase scrutiny. I didn't bother with a test harness, or have a golden file to compare against.

I'll take a look at the Java code when I get a chance, but it's well off of my urgent list.

I'm going to re-run the test myself. For the C/C++ version, you can call it with a specific hand rather than shuffling, so you can check your answer. That matters because rand() is implemented differently in various languages.

The other language I'm interested in is Go, for a comparison. People say it's as good as C/C++.

MP commented on FSK Benchmark Test - C/C++ vs. Javascript vs. PHP.

After fixing that missing closing bracket, the Java code runs in 0.97 sec. Much better than I expected--still not parity but less than 2x C++.

I suggest you choose a starting deck for your C++ code, and I'll push it to Python & Java, and we can compare the results.

I should re-run the test myself. 2x slower is closer to what I expected. Someone on crazyontap said that Java was faster, which I didn't believe.

The only other language I'm seriously interested in is Go. I've heard a lot of hype about it. People are also talking about Rust.

I'll make another version where the hands are fixed rather than shuffled. That would also make it easier to verify the output.

A 2x performance slowdown isn't worth all the "nice" things Java does for you. Actually, I found Java annoying.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>