Dragons in the Algorithm
Adventures in Programming
by Michael Chermside

Image Search by License

Image Search by License

Question: So I want to make a logo for my friend's company. Am I allowed to use cliparts from google to add or make the logo? Or do I have to make everything from scratch?

My Answer: There are a few different laws you might have to worry about violating. For instance (to pick a weird one), in Germany I believe there may be laws against using a photo of Hitler as part of a corporate logo because of laws protecting against Nazi symbols.

I'm going to assume you are somewhere in the US. Except for a few extremely peculiar exceptions, the only laws you need to worry about are Trademark law and Copyright law.

To avoid violating trademark law, you need to be sure that the logo you create is different enough from existing logos that it does not confuse any consumers. So don't take the logo for Exxon and change a few letters -- or anything else which might make it easily confused for a different business. If this were a serious effort, you would do a trademark search to make sure you weren't violating a registered trademark on some existing company you hadn't heard of, but if it were a serious effort your friend wouldn't be engaging YOU to do it.

To avoid violating copyright law, you need to use an image you create yourself, pay someone who created the image, use an image that is in the public domain (free for anyone to use), or use an image that the creator has allowed you to use for free.

I'll presume you know how to draw/photograph an image yourself if you want that, and how to pay someone to do it for you. Public domain is actually surprisingly hard to figure out... I'd advise skipping that, although image more than 250 years old is probably OK to use. But the last option (finding an image that someone has allowed you to use for free) is actually worth describing in more detail.

A surprisingly recursive picture

You were talking about using Google search. If you use Google Image Search (go to www.google.com, type in a search phrase, then select "Images" directly under the search field) then there is a setting that asks Google to filter the list to only those images that they (Google) believe are free to use. Slightly to the right of the word "Images" you will find "Tools". Click on this, and a few new options appear, including one named "Usage Rights". Select this and click the licensing requirements you desire -- in your case, "Labeled for reuse with modification" because you want to use the image for a commercial purpose, and modify it (by incorporating it into a logo).

I frequently use this technique when looking for images to illustrate my blog, although not for this entry. The surprisingly recursive image used here falls under a different exception: fair use (commentary).

Posted Tue 13 February 2018 by mcherm in Law

Depending on Someone Else's Code

Depending on Someone Else's Code

We had an interesting problem arise the other day, a problem about code dependency. Our problem was in no way unique, so it seemed worthwhile to write out the problem and our proposed solution.

The problem

The core of the problem is that we need …

Read more

Posted Sun 28 January 2018 by mcherm in Programming

REST Lambda Versioning

REST Lambda Versioning

So, we want to build a "serverless" application on AWS. We have configured Amazon's "API Gateway" to invoke Lambda functions when accessing certain URLs, and the lambda functions access back-ends like DynamoDB. So far so good. But we don't want to be breaking the application every time …

Read more

Posted Sun 02 July 2017 by mcherm in Programming

Election Guide May 2017

Michael Chermside's Election Guide
to the May 2017 Democratic Primary

As I sometimes do, now that I have finished doing my own research on the candidates and the issues, I will write down my thoughts to endorse the candidates and to share the results of my research. In this case …

Read more

Posted Sun 14 May 2017 by mcherm in Politics

Long-Running Calls

Long-Running Calls

Question: When building RESTful APIs, do you know of any standard patterns for handling long running API calls? Our decision process may take as much as a couple of minutes.

My Answer: I know of four possible approaches:

  1. Long-running API call: In this approach, you just build an …

Read more

Posted Thu 20 April 2017 by mcherm in Programming