Bash is useful up to a point

As far as I can tell is there no way in Bash to pass a concatenated array to an internal function and not have the resulting string split apart. Eg
function f() {
    for e in "$@"
    do
        echo $e
    done
}

A=( x y z )

f a b "${A[@]}" 'c d' "e f"
will output
a
b
x
y
z
c d
e f
when I expected it to output
a
b
x y z
c d
e f
Google and stackoverflow.com both failed me, as did trying lots of variations.

Observations on the School Committee's retreat

If you are not following my South Kingstown School Committee candidate Facebook page, but are interested in South Kingstown School Committee's happenings then you might be interested in my observations on the School Committee's retreat this past Friday, July 15: the good, the bad, and the ugly.

“What’s in a name? That which we call a rose by any other name would smell as sweet.” Not in software!

Names have great signification in code. A good name can make the object's value comprehensible and usage clear. A variable called milk_jug is likely to have all the aspects of a jug, but specialized to only hold milk. I had a problem with picking a name.

I had a variable that did not itself hold the value, but acted as though it did. Is was not a proxy. Nor was it a reference. The variable held only a portion of the value but could itself get the remaining portion when needed. This kind of delayed acquisition behavior is common in programming. It is commonly used when the remaining portion of the value is costly to acquire, eg takes a long time to compute or retrieve, or holding it puts a burden on the system, eg using a significant amount of memory.

I ended up calling the variable mik_jug_winding. Winding as in "The river winds through the valley." I like it, but given that I felt the need to write a posting about it perhaps it lacks the needed signification. 

“What’s in a name? That which we call a rose by any other name would smell as sweet.” Not in software!

Names have great signification in code. A good name can make the object's value comprehensible and usage clear. A variable called milk_jug is likely to have all the aspects of a jug, but specialized to only hold milk. I had a problem with picking a name.

I had a variable that did not itself hold the value, but acted as though it did. Is was not a proxy. Nor was it a reference. The variable held only a portion of the value but could itself get the remaining portion when needed. This kind of delayed acquisition behavior is common in programming. It is used when the remaining portion of the value is costly to acquire, eg takes a long time to compute or retrieve, or holding it puts a burden on the system, eg using a significant amount of memory.

I ended up calling the variable mik_jug_winding. Winding as in "The river winds through the valley." I like it, but given that I felt the need to write a posting about it perhaps it lacks the needed signification. 

Which Cement Mixer Are You Based On Your Zodiac Sign?

This kind of astrology is important to me. I'm a

Bartell Gas Powered Concrete Mixer
You are a dependable individual, willing to help whether your friend needs a shoulder to cry on, a secret to keep, or cement to be mixed.

Primary and Secondary Tools

Earlier today I was in a UX design meeting and I used the terms "Secondary Tool" and "Primary Tool." (Application and tool are interchangeable terms.) Understanding the difference between these two is very important as their UX needs to be very different. Most application teams think that they are building a primary tool when, I am sorry to inform them, they are not. Very few teams work on primary tools. So what is the difference? I hope the following helps explain this.

Primary Application/Tool

A primary tool is one that the user uses daily. It is one where the user will have many sessions within a short period of time -- a few weeks. This rapid experience of having successes and recovering from failures builds the user's confidence in the his or her ability to use the tool. Moreover, this confidence encourages the user to explore the tool for better means to perform tasks and opportunities to use the tool for unforeseen outcomes. This confidence brings with it the need for far less feedback that an operation has been completed successfully and instead feedback can be limited to erroneous results.

Secondary Application/Tool

A secondary tool is one that is not a primary tool. It is used infrequently -- less than once per week. This infrequency disposes the user to having to relearn the tool's operation at the start of a session. Only the most rudimentary operational knowledge is retained between sessions. The user is most successful when he or she is guided in performing a task from its beginning to its ending. Redundant orientation information such as task milestone displays, activity histories, and possible future work, etc are displayed beside the specific task step at hand. Feedback for success and for failure is always provided.

I am running for School Committee in South Kingstown

I am running for School Committee in South Kingstown, RI.
Let the grumbling begin.

BoardDocs and removing forced page breaks

This posting is mostly to remind myself how to eliminate page breaks from Emerald Data Solutions's BoardDocs. BoardDocs is used by lots of organizations that want control over their governance documents. The South Kingstown School Committee just started using it. Its configuration is such that when the detailed agenda is printed there will be a page break after each agenda item. I don't want this -- either on paper or PDF. To fix this I installed Stylebot and added the following style for BoardDoc URLs to turn off forced page breaks

* {
    break-after: auto;
}

This seems to work. My preference would be for a less heavy handed solution, however.