Scala, Java, Unix, MacOS tutorials (page 191)

From this NY Times article, Moon Express just received approval from the FAA to try to put a lander on the Moon before the end of 2017.

The “international space treaty” portion of the story is particularly interesting to me. I didn’t know if there was such a treaty, and who governed efforts like this.

Moon Express and space treaties

Three golden rules for giving code reviews, from this article on sofiacole.com: 1) Ask questions rather than give statements, 2) Limit personal preference, and 3) Check its purpose.

Regarding the second rule, I don’t know anything about it, as I’ve never been on a team that allowed “personal preference.” Each team (or company) agreed on coding standards, and used them.

If you haven’t seen the Rust programming language before, this image shows the example from the front page of the Rust website. The site states, “Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.”

Rust programming language example

“All the many things in the universe are appearances of collections.”

~ The Buddha

(If the Buddha was alive today, he might be a programmer. Personally, I’m glad he was born when he was.)

“There are only two kinds of programming languages: those people always complain about, and those nobody uses.”

~ Bjarne Stroustrup

You can’t choose your family, but ... over the years I’ve had a few friends ask how to know if they should marry so and so. My answer: You have to see how the other person behaves when things get tough. How do they act when you have no money, or a lot of money? How about illness in the family, or bad times at work? “Being in love” with someone when everything is going well is easy, but what happens when things are bad? That’s when a person’s true character really shows.

To that end, the song of the day is, “When The Going Gets Tough,” by Billy Ocean:

While I’m in the Mary Rose Cook neighborhood, she also wrote this excellent Git tutorial.

I’ve become a fan of Mary Rose Cook’s work over the last year or so, and in this article she shares four programming skills that she considers critical.

Mary Rose Cook's four skills

Things you shouldn’t say on a job interview:

Interviewer: Why do you want this job?

Me: I’ve always been very passionate about not starving to death.

This is another good quote from a blog post titled The Downfall of Imperative Programming: “Did you notice that in the definition of ‘data race’ there’s always talk of mutation?”

In the definition of 'data race' there's always talk of mutation

July 31, 2016: Travis Wood, Chicago Cubs pitcher, was playing left field last night, and made this great catch in the 7th inning as he fell back into the ivy-covered wall in Wrigley Field. He also pitched in the 6th and 8th innings. See this MLB.com page for the full video.

Travis Wood great catch against ivy, Wrigley Field

At Netflix, the consumer is the guinea pig. Well, at least that’s what I got from this article on A/B Testing at Netflix.

Netflix consumer testing

The new Gigahorse 0.1.0 page states that it is “an HTTP client for Scala with Async Http Client underneath.”

Gigahorse HTTP client example

This image is from a tutorial titled, Learning FP: Experiences on the Elm language.

I don’t know much about Elm yet, other than it’s an FP language for writing browser code, and it looks a lot like Haskell. As the tutorial author states, “Elm is a programming language that compiles to HTML5: HTML, CSS and JavaScript.” Another good quote is, “There are no worries about bugs due to weird mixed state as the state is always a direct result of input.”

Elm programming language

“The secret of change is to focus all of your energy, not on fighting the old, but on building the new.”

~ Socrates, (470 – 399 BC)

As a quick note, if you need to drop the query string when configuring an Nginx rewrite request, this syntax works:

rewrite ^/foo/bar.*$  /bar?  permanent;

The key is to use the ? character at the end of the URL/URI you are redirecting users to. That drops the query string, so the user will be redirected to the exact /bar URI.

For more information, see the Nginx rewrite module page.

This image comes from an article titled, A founder’s perspective on four years with Haskell. I appreciate his honesty about the Haskell ecosystem. I remember wanting to use Haskell for some JSON parsing, and when I looked around for a Haskell/JSON library, all I could find was some tutorials on how to build your own.

Should you use Haskell?

Want to get the system environment variables and/or properties from your Scala or Java application? This quick post shows what environment variables and properties are available.

Here’s a little Scala application that prints all the environment variables and properties. You’ll see that you can convert it to Java very easily:

This image is from a well-written 2009 post on SO by Laurence Gonsalves about functional reactive programming. In his example, x and y are more or less equivalent to constantly calling getX() and getY() on a MouseEvent in Java or Scala. By that I mean that (a) getX() is immutable, and (b) its value changes over time, as the person moves the mouse.

(Here’s a link to where I show how to use MouseEvent as a MouseMotionListener.)

Functional reactive programming and changes over time

Walt: “Cheyenne man who lives in the area. Cheyenne call him a ‘Contrary Warrior.’ He does the opposite of what you expect.”

Deputy Moretti: “Why?”

Walt: “The whole idea is to force people out of their comfort zones, make them examine their beliefs.”

Deputy: “That’s annoying.”