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

“The world is won by those who let it go.”

~ Lao Tzu

Lao Tzu: The world is won by those who let it go

Forgiveness, it’s good for the soul. :)

Forgiveness and letting go of resentment

Here’s a little example of a Flutter time preferences widget, something I’ll be using in the new version of my Just Be app. Probably most important thing about this source code is that it shows an example of how to use the Flutter RadioListTile:

Programming is an interesting profession. You fail dozens or hundreds of times a day, then take a moment to celebrate a little victory. Then you move on to your next failure/success.

Programing: failure, success; repeat

Working with yoga is often interesting. You stretch and twist and focus, trying to be very conscious and aware of your movements, and then one day in the middle of a twisting pose you see your left foot coming out from behind your right ear. At first that’s a real surprise, a shock. You think, “Well, that can’t be my foot over there”, and then you realize it is your foot, and with that comes a strong sense of accomplishment, and maybe a little smile.

Then you do the same pose in the opposition direction, but twist and stretch as you might, your right foot doesn’t come out from behind your left ear. You know you can’t push it any more, at least not while doing the pose properly, so you realize you have a little imbalance. You accept that you have some work to do, but it’s a good thing, so you push on.

I think life is like that too, or can be like that. If you enjoy the struggle, if it’s a worthy struggle — Castaneda’s “a path with heart” — the effort comes willingly, and with its own rewards.


If you need to supply an initial value to a Flutter TextFormField (and possibly a TextField), the initialValue parameter may not do what you expect it to do. (More on this in the Discussion.) Instead, I just used this technique to populate the initial value for a TextFormField when using it with a TextEditingController:

As a brief note, SQLite doesn’t have date/time (datetime) fields, so when you want to use a datetime field with Flutter (and Dart), you have to do something else.

My choice was to store my datetime data as a SQLite INTEGER field. I did this so I can query and sort that field easily myself. (The benefit of storing a datetime field as a TEXT field is that you can read it easier, but I think an INTEGER field is a little easier to work with, though YMMV.)

“Be a true representative of the goodness in your heart, and don’t expect it to be easy or even noticed.”

~ Adyashanti (via

This is a postcard I picked up one day from the Talkeetna Roadhouse in Talkeetna, Alaska.

Talkeetna Roadhouse (postcard)

A “Love” sign you might find at a rest area somewhere in Virginia.

Love (a Virginia rest area sign)

My main project right now (through Valley Programming of Broomfield, Colorado) is porting my Just Be app to run on both Android and iOS. Hopefully I’ll have the initial add/edit/delete functionality working tomorrow, and then I can start on notifications this weekend.

Just Be app (iOS and Android)

Sometimes when I embark on little projects like my Scala file-find command, I think, “This is a waste of time, the existing tools are good enough.” But then, if I’m motivated enough — if I really want something — I think, “But I can use this better tool for the rest of my life...”

I just released the file-find command four days ago, and I use it almost every day while learning Flutter and Dart, so I think it’s going to be well worth it.

I’ll write about this a little more when I’m awake, but here’s a little look at ADTs implemented in Scala 2 (with traits and case objects) and Scala 3 enums.

ADTs is Scala 2 and Scala 3

“I though it was obvious, but apparently it's not. FP is not about not having side effects at all, otherwise it would be useless. It's just about deferring them for as long as possible, that's all.”

~ Alessandro Lacava, in this tweet

“You go through more iterations until you can simply deliver your message in a very concise way, and that is true to the Apple brand and everything we do,” recalled one person who took the course.

~ From this NY Times article on how Picasso’s The Bull helps Apple teach their style.

This article contains a fair balance of pointing out the good and bad of design at Apple under Jonathan Ive. Most people know the good parts, so this image shows a discussion of just two of the worst design decisions made by Apple’s design team. Other bad designs under Apple include pretty much every mouse ever made, the horribly infamous butterfly keyboards, and the trashcan Mac Pro design.

It seems like at some point every design quits thinking about what’s the best for the customer and succumbs to something that looks pretty. As the old saying goes, “Absolute power corrupts absolutely.”

Good and bad design at Apple under Jonathan Ive

“Always kiss me goodnight. Always kiss me goodmorning, too.”

~ as seen in a house in Florida

Always kiss me goodnight

I’ll guess that I’ve spent at least two or three months of my life living in a particular hotel in Virginia Beach (including finishing the Scala Cookbook there), and this photo/painting is an ode to that place.

Ode to the hotel in Virginia Beach

“To live a creative life, we must lose our fear of being wrong.”

~ Joseph Chilton Pearce

As I continue to work through photos, this is a photo of a painting of a church, which I believe I saw in the lobby of the La Fonda hotel in Santa Fe, New Mexico.

Painting of a church, La Fonda hotel, Santa Fe, NM