Alvin Alexander | Java, Scala, Unix, Perl, Mac OS X

Gimp 2.10.4 was released on July 4, 2018, and has some nice new features.

Gimp 2.10.4 is available

From a translation of the Tao Te Ching:

The master, by residing in the Tao (the Way),
sets an example for all beings.

Because he doesn’t display himself,
people can see his light.

Because he has nothing to prove,
people can trust his words.

Because he doesn’t know who he is,
people recognize themselves in him.

(I recommend that third stanza in particular for people who are interested in consulting.)

One thing I was reminded of recently is how consistent the Scala language is. Unlike other languages that have special conditions and special operators for those special conditions — leading to a big vocabulary for those languages — Scala is ... well, it’s just very consistent, and that’s a great thing.

(As a bit of background, I used to be annoyed that Scala didn’t have ++ and -- operators for integers, but after working with other languages, I now understand what Martin Odersky & Co. were trying to avoid.)

Table of Contents1 - Kotlin Arrays2 - Kotlin List functions3 - Kotlin Map functions4 - Kotlin Set functions5 - Summary: Kotlin List, Map, and Set creation functions

With Kotlin you can create lists, maps, and sets with standard functions that are automatically in scope. Here are those functions.

Here are three nice diagrams drawn by Mariko Kosaka that explain HTTP and HTTP2.

I can’t do most of these yoga poses right now (because of the whole colectomy surgery thing), but here’s a nice list of 12 yin yoga poses to awaken dormant energy and stuff.

Random thought of the morning: When I was young — maybe an early teenager at the oldest — I was talking to Sister #3 and said I wanted to have a baseball team worth of children. But then a few years later my dad got a woman who was not my mom pregnant, and my parents were divorced. Whatever notions I had about wanting a family and children were wiped out.

Part two of that random thought is that over the years I’ve been fortunate to meet a number of women (over 1,000 if you include school, work, and social events), and out of all those women there are only two who ever made me think, “I can see having children with this woman.”

When you get started with functional programming (FP) a common question you’ll have is, “What is an effect in functional programming?” You’ll hear advanced FPers use the words effects and effectful, but rarely do you get a definition of what they mean.

Effects are related to monads

The first step in the process is to say that effects are related to monads, so you have to know a little bit about monads to understand effects.

I originally wrote a long introduction to this article, but I decided to keep that introduction for the second article in this series. For this article I’ll just say:

  • idiomatic Scala code involves never using null values
  • because you never use nulls, it’s important to become an expert at using Option, Some, and None
  • initially you may want to use match expressions to handle Option values
  • as you become more proficient with Scala and Options, you’ll find that match expressions tend to be verbose
  • becoming proficient with higher-order functions (HOFs) like map, filter, fold, and many others are the cure for that verbosity

Given that background, the purpose of this article is to show how to use HOFs with Option values rather than match expressions.

“There’s only ONE rule, but it’s an important one: all of your values must be functions. Not programming functions, but math functions.”

I think I read that quote in an earlier version of this article. The quote is about functional programming, and it influenced something I wrote in my book, Functional Programming, Simplified: Functional programmers think about themselves as being mathematicians, and think of their code as being a combination of algebraic equations, where each function is a pure function that you can think of in mathematical terms.

From eso.org: “Observations made with ESO’s Very Large Telescope have for the first time revealed the effects predicted by Einstein’s general relativity on the motion of a star passing through the extreme gravitational field near the supermassive black hole in the centre of the Milky Way. This long-sought result represents the climax of a 26-year-long observation campaign using ESO’s telescopes in Chile.”

Straight out of high school in Illinois I made the decision to go to a college in Kentucky. In high school I had never known anyone with a southern accent, so it was really neat to hear everyone talk. (I had also never seen a revival tent, but that’s a story for another time.)

One guy at school — I think his name was Joe — came from Tennessee. He would later become famous for loudly chasing his roommate down our dorm hallway with a baseball bat at 2am because he thought the roommate was too loud when he came back in after a night out.

Joe’s accent was so thick I could barely understand what he was saying, and one day in something of a Seinfeld skit I ended up going to the shopping mall with him just because I would nod my head “yes” and say things like “uh-huh” when I didn’t understand him. Fortunately this was before he attacked his roommate with the bat, and his roommate had a sweet 1950s car that we borrowed, so it was a fun ride, even if I didn’t understand most of it.

Now I think there’s at least a slight chance that Joe might be my new neighbor. He looks like him, and I can’t understand a word he says. But this time I’m being careful not to agree to anything.

espn.com has a good article about Josh McCown and ‘brain training’. (It’s a good article, I only wish it was a little more specific.)

If you’re interested in understanding the Cats library, I’m a big fan of the book, Scala with Cats (formerly known as Advanced Scala with Cats). Noel Welsh and Dave Gurnell have a simple writing style, with good examples. Being an older person, I only wish a print version was available.

Advanced Scala with Cats

July 28, 2010, Wasilla, Alaska: Bundled up in a semi-rainproof jacket and hat, I just returned from a walk in the cold November rain. Most neighbor's fireplaces were in full use, while one man in a jacket and shorts and smoking a cigarette was mowing his weeds with his lawnmower. Hard to believe, Denali National Park closes for the winter in just six or seven weeks.

(This is a Facebook post from July 27, 2016.)

Since nobody uses Facebook on Wednesday, I’ll just slip this one out here while no one is looking ...

Last night I was base-jumping spacetime with some other astral entities, and a being in the group kept not-doing something she was supposed to do. Since we were interdimensionally (similar to “internationally”) working together as a group, this just wouldn’t do.

After the Nth time this happened, I stopped the group mid-flight, and with spacetime flowing around us, I telepathically (and compassionately) asked, “Why aren’t you doing what you’re supposed to do?” Her answer, loosely translated in human terms, came down to, “I’m afraid.”

The moral of this little interdimensional story is that wherever, whenever, and whatever you are, conquer your fears or they’ll conquer you.

I just saw this “Prayer of Saint Francis” in a collection of photos from a church in Santa Fe, New Mexico, and it reminds me of the creed of a superhero. :)

Prayer of Saint Francis, Santa Fe, New Mexico

If you like computer history, cake.co has an interesting article by Chris MacAskill titled, The secret call to Andy Grove that may have helped Apple buy NeXT.

At the time of this writing there aren’t many examples of the Scala Exception object allCatch method to be found, so I thought I’d share some examples here.

In each example I first show the "success" case, and then show the "failure" case. Other than that, I won’t explain these, but hopefully seeing them in the REPL will be enough to get you pointed in the right direction: