Jeremiah Flaga My thoughts and experiences on programming, life, atbp.

A loving God is NOT incompatible with a wrathful God


People ask, “What kind of a loving God could be filled with wrath.?”

But any loving person is often filled with wrath.

— Timothy Keller

As you might have already guessed, this is about the recent ruckus about President Rodrigo R. Duterte’s comments on “a loving God” and “hell”.

Scanning code vs. Reading code (and Scanning as the focus of refactoring)


Last January, Uncle Bob wrote a blog post where points out some inconsistencies in a blog post by GeePaw Hill (who, I later learned, is a friend of his and a former employee).

"If we don't have a perfect Bible, then we don't have a perfect God"


I think that is like saying, “If we don’t have a perfect creation, then we don’t have a perfect God”.

But I’m getting ahead of myself.


That statement in the title… I said that to myself about 12 years ago.

You see, I was raised up in an environment where people believe that the word of God is perfect. And by the “word of God” we mean the Bible, both the Old and New Testatments.

“The law of the LORD is perfect…” — from the Psalms

And if you are familiar with the Bible, you might also know that there are lots of Bibles in the world. I mean, there are lots of different versions of the Bible — lots of translations. In English for example, there are these: KJV, RSV, ESV, NASB, NIV, NLT, ERV, BBE, CEV, TLB, etc.

"If you want to estimate little things, you have to refactor"


"Scrum cannot work without XP"


"Christianity is impossible"


I remember saying that to myself many years ago. And what I meant by that is “the Christian life is impossible to live”. The standard is too high. I can’t live it.

And I think I was right!

RxJava is not intuitive... and what helped me to somewhat understand it


"Software development has not changed in the last 40 years"... and what to do about it.


In the last 40 years computer hardware technology has increased the computing power of our machines by well over twenty orders of magnitude. We now play Angry Birds on our phones, which have the computing power of the freon cooled supercomputer monsters of the 70s.

But in that same 40 years software technology has barely changed at all. After all, we still write the same if statements, while loops, and assignment statements we did back in the ’60s. If I took a programmer from 1960 and brought him forward through time to sit at my laptop and write code; he’d need 24 hours to recover from the shock; but then he’ll be able to write the code. The concepts haven’t changed that much.

But three things have changed about the act of writing software…

— Uncle Bob Martin (from “Three Paradigms”)

HorizontalChangeHandler sliding from/to the left


I’m a very lazy programmer. One of my forms of laziness is that I never remember things about the code I write. Indeed, I deliberately try not to remember anything I can look up, because I’m afraid my brain will get full. I make a point of trying to put everything I should remember into the code so I don’t have to remember it.”

— Martin Fowler (from his Refactoring book, p. 56)

Another form of laziness that we, programmers, have is to not rewrite anything that is already written by other programmers.

"Working Effectively with Legacy Code" of Michael Feathers


“For a long time it’s puzzled me that most books on software development processes talk about what to do when you are starting from a blank sheet of editor screen. It’s puzzled me because that’s not the most common situation that people write code in. Most people have to make changes to an existing code base, even if it’s their own. In an ideal world this code base is well designed and well factored, but we all know how often the ideal world appears in our career.

“So this book is important because it’s written from the perspective of what to do with an imperfect yet valuable code base.”

— Martin Fowler