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

Table of Contents1 - Effects are related to monads2 - Not a side effect, but the main effect3 - Effectful functions return F[A] rather than [A]4 - Summary5 - Notes

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 it can be hard to find a definition of what these terms mean.

Quick tip: To append when writing to a text file in a Scala or Java application, create your FileWriter with the append flag set to true, like this:

val bw = new BufferedWriter(new FileWriter(new File("/tmp/file.out"), true))
bw.write("Hello, world\n")
Table of Contents1 - Linux crontab: How to run a command every minute2 - Descriptions of the crontab date/time fields3 - Run a crontab command every hour4 - Run a crontab entry every day5 - Run a crontab entry every 5 minutes6 - Unix and Linux “crontab every” summary7 - Unix and Linux crontab reference information

Linux crontab FAQ: How do I schedule Unix or Linux crontab jobs to run at intervals, like “Every five minutes,” “Every ten minutes,” “Every half hour,” and so on?

Solution: I’ve posted other Unix/Linux crontab tutorials here before (How to edit your Linux crontab file, Example Linux crontab file format), but I’ve never included a tutorial that covers the “every” options, so here are some examples to demonstrate this crontab syntax.

Linux/Unix FAQ: Can you share some Linux find command examples?

Sure. The Unix/Linux find command is very powerful. It can search the entire filesystem to find files and directories according to the search criteria you specify. Besides using the find command to locate files, you can also execute other Linux commands (grep, mv, rm, etc.) on the files and directories you find, which makes find extremely powerful. 

Table of Contents1 - A “Hello, world” MacOS AppleScript notification2 - AppleScript: Mac notification with a sound3 - How to add a title and subtitle to your notification4 - Running from Scala (or Java)5 - See also6 - Summary

Summary: This tutorial demonstrates how to fire MacOS system notifications with AppleScript and Scala (or Java).

In this article it helps if you already know a little bit about AppleScript, though that’s not completely necessary. Near the end of the tutorial I show how to invoke the AppleScript code using Scala, so feel free to skip down to there if you just want to see that — you can always read the stuff at the top for reference later.

A team of researchers have created this photograph showing the entanglement of photons. Business Insider has a nice little story about their work.

Photo of quantum entanglement

I watched an episode of Northern Exposure recently and at the end of it I was surprised to see that Stuart Margolin directed the episode. I always enjoyed his characters on The Rockford Files and M*A*S*H, and I remembered seeing him on Magnum, P.I., but I didn’t know anything else about his career, including that he was a director. After reading his Wikipedia entry I hope at some point to see the episode of 30 Rock he did with Alan Alda.

Stuart Margolin and Northern Exposure

The UI still needs a lot of work, but I like the idea of having an Inconceivable mode in the next version of my XO Play Android football game.

My 'XOP' football game UI, v1.4

I heard this poem on this Monk episode last night.

“Hold me, Adrian,
my darling husband.

True love’s touch is so rare a gift.
How much more precious is your caress
who loves so deeply,
yet fears the warmth,
of hand on hand.

Still your love is given free,
only to me,
only to me.”

~ Trudy Monk

Table of Contents1 - Basic use2 - Using a Map3 - Match expressions4 - Sed limitations5 - My Sed project6 - Bonus: Factories and HOFs

My Scala Sed project is still a work in progress, but I made some progress on a new version this week. My initial need this week was to have Sed return a String rather than printing directly to STDOUT. This change gave me more ability to post-process a file. After that I realized it would really be useful if the custom function I pass to Sed had two more pieces of information available to it:

  • The line number of the string Sed passed to it
  • A Map of key/value pairs the helper function could use while processing the file

Note: In this article “Sed” refers to my project, and “sed” refers to the Unix command-line utility.

Back to top

Basic use

In a “basic use” scenario, this is how I use the new version of Sed in a Scala shell script to change the “layout:” lines in 55 Markdown files whose names are in the files-to-process.txt file:

“More important than Buddhism, or Zen, or anything, is waking up. The Buddha was not a Buddhist. He was a ‘wake up’ person and what he woke up to is something everybody already has. Buddhism is not going to help you. Waking up is going to help the whole world.”

~ Zen Master Dae Kwang (from

Buddhism is not going to help you

From As if black holes weren't mysterious enough, astronomers using NASA's Hubble Space Telescope have found an unexpected thin disk of material furiously whirling around a supermassive black hole at the heart of the magnificent spiral galaxy NGC 3147, located 130 million light-years away.

The conundrum is that the disk shouldn't be there, based on current astronomical theories. However, the unexpected presence of a disk so close to a black hole offers a unique opportunity to test Albert Einstein's theories of relativity.

Hubble telescope uncovers black hole that shouldn’t exist

I’ve seen five rattlesnakes since I moved to Colorado, four dead and one that was quite upset with me. As I was walking yesterday I wondered, can snakes see? Here’s an answer from adds this information: “With the exception of a few species that have adapted to daytime hunting, most snakes do not see well. Generally they can see shapes but not details. Snakes called pit vipers can see well at night by an amazing trick. Their pits (one on each side of the head) sense heat (infrared light) like night vision goggles. These pits, not eyes, actually are thought to render images of prey in the snakes’ brains.”

Can snakes see?

Since I’ve been in Colorado we seem to get anywhere from five to 25 hailstorms a year. Sometimes they have markdowns on cars, other times, flowers.

Hailstorms in Colorado (and markdown sales)

While laying in the hospital bed after my recent surgery, a young nurse came into my room and asked what my pain level was, on a range from zero to ten.

I replied that it wasn’t bad at all, maybe a one or two at most, and I didn’t need any pain medicine.

She said that was great. She said that a lot of people immediately say they’re at a nine or ten.

I replied that I’d never say anything that high, I always thought a nine or ten should be saved for something really bad, like if you were just stabbed or shot.

She said, “I know, right. Or maybe broken bones ... or a heart attack.” She paused and then said, “Lately I’ve been wondering if giving birth is a 9 or 10.”

If you run into a problem where a Scala shell script won’t run on MacOS — it hangs indefinitely without doing anything — hopefully this bug report will help. The solution is to change this line at the beginning of the Scala shell script:

exec scala -savecompiled "$0" "$@"

to this:

exec scala -nocompdaemon -savecompiled "$0" "$@"

I just had this problem with Scala 2.12.x and Java 8 running on MacOS 10.14.4, and I can confirm that adding -nocompdaemon solved the problem for me.

There is some talk in this Rolling Stone article that Bruce Springsteen was on the verge of failure when the song “Born To Run” was released. Springsteen acknowledges that, but also adds, “I don’t know if it would have finished us — because what the [bleep] else were we going to do?”

I tend to look at that as perseverance: “Okay, you don’t like my work? Well, I’m not going anywhere, I’m going to keep working at it.”

When I first went to college I wasn’t a Springsteen fan at all — I barely knew who he was — but then I heard Hungry Heart, and became a fan. These days Born To Run, Hungry Heart, Badlands, Thunder Road, Pink Cadillac, Brilliant Disguise, and Secret Garden are some of my favorite songs. And Santa Claus is Comin’ to Town is one of my favorite Christmas songs/performances.

According to WebMD, I may be pregnant. Fatigue, nausea, drastic changes in how things smell, food aversions, mood swings ... I've got most of the symptoms.

~ A Facebook post from July 9, 2014, after I had radiation treatment

“John Muir, the famous naturalist, wrote in his journal that you should never go to Alaska as a young man because you’ll never be satisfied with any other place as long as you live. And there’s a lot of truth to that.”

~ Tom Bodett

(sorry, i don’t remember where i saw this quote)

I just spent 45 minutes reading a new book about a programming language I was excited to learn, then slammed it shut and said, “Poorly organized, too many words, not enough code.”

That’s always such a disappointing feeling when you have that initial excitement about a programming language (or technology), and then a book is such a letdown. (I really hope people don’t view my books that way.)