Wednesday, April 11, 2018

The Fossil Record Testifies of Rapid Deposition

Practically every fossil found testifies to a rapid burial in a catastrophic (locally, at a minimum) inundation of sediment, borne usually by water (but sometimes by wind, avalanche, volcanic ash-fall, etc).

There are billions of fossils world-wide, in layer after layer of deposited sediment, sometimes stretching through several layers. Each of these fossils testify to a rapid burial as opposed to slow, almost imperceptible processes.

Just sayin'.

Originally published at:

https://kentwest.blogspot.com/2018/04/the-fossil-record-testifies-of-rapid.html

Tuesday, March 27, 2018

Regaining Control of a Wyse 3040 ThinClient

My university workplace has been tinkering of late with thin clients. On the backend we have a VMWare/Horizon/VDI setup. With this setup, we can set up virtual computers for students/faculty/staff to log into remotely.

For example, we have a Math VDI. I used the VMWare tools to build a master image consisting of a virtual PC with certain specs (so many core processors, so much RAM, so much hard drive space, etc), and then installed Windows 10 Enterprise 64-bit on it. Then I used more VMWare tools to make ten read-only copies of this master; we refer to these copies as the VDI (Virtual Device Interface) machines, and the group of them make up the Math VDI Pool.

Students/etc can access one of these ten virtual Win10 boxes, each identical to the other, having math-specific software (like MATLAB) either through an HTML (web-based) interface, or a downloaded-client interface called "Horizon View Client" (available at least on Windows, Mac, and Linux - I run the Linux version on my Debian box if I need things like USB- or printer-passthru; the HTML interface otherwise, usually, just because I always have a web browser open and it's more convenient than firing up the client, but only marginally).

In this way, we only have to make one master image per departmental lab, and click a couple of buttons to make a few or a few hundred copies, to make a virtual computer lab. This is much easier than making a master image and copying it to a few or a few hundred physical computers, and then tweaking each machine to have the correct name or be added to the domain, and remembering to lock it down against student-initiated changes, etc, and if a physical machine dies, replacing a physical machine (or its hard drive, or repairing its registry, or cleaning a virus, or...) is much more labor intensive than simply telling the VMWare tools to .. oh, wait, I don't have to tell the VMWare tools to do anything; it automatically makes sure I have 20 working machines if I have specified I always need 20 working machines. Sweet!

As mentioned, the virtual Math lab computers can be accessed via a web-based or a client-based app on just about any Internet-connected device (Windows, Mac, Linux, Android, iOS, etc). They can also be accessed through a dedicated piece of hardware called a thin (or in some cases, "zero") client.

Now we have acquired three different models of the Dell/WYSE thin/zero-clients; a 3040, a PxN zero client, and a 5040 All-In-One (AIO - monitor built-in). The first two of these are smaller than your typical Louis L'amour western paperback novel; the third just looks like a typical flat-panel LCD computer monitor. They have a very minimal operating system, just enough to allow them to point to a VDI (or other similar thin-client-based solution). We're thinking along the lines of replacing relatively-expensive full-blown PCs in our computer labs with relatively-inexpensive (and much less labor-intensive) thin-client AIOs.

I have gone into the settings of each of these thin-client boxes and pointed them to the Math VDI. Then plug in an Ethernet cable, a mouse and keyboard (and monitor in the non-AIO cases), turn it on, and the system boots up to a login prompt, at which a user can plug in his credentials and be connected to a Math VDI machine, and it's just like he's sitting at a real physical Windows 10 computer in a dedicated Math lab classroom (whether he's sitting at home with a laptop, or in a physical Math lab classroom with a thin-client box), to use the Math-type apps on this very ordinary Windows 10 setup, math department printers included.

So now the student can use his laptop at home, his desktop at his mother's house, or a thinclient set up in the campus Recreation Center, to connect to the Math VDI and get access to his math app (like the quite expensive MATLAB app mentioned above). On his personal computers, he can use the HTML client, or the Horizon View Client; on the thin-client, he just logs in like it's a physical Math lab PC. In all cases, he's actually just running a virtual PC off in another building, but it feels like a local PC.

It would be a pain to have to go each thin-client to set it up to point to the appropriate VDI, or to change its mouse settings, or to allow Math students to log into the Math VDI and Business students to log into the Business VDI, etc. So a centralized management system would be helpful.

Thus steps in the Dell Wyse Management Server (comes in both a free version and a pay-for version, depending on your needs).

So we created another virtual machine (just a plain virtual machine, not a VMWare Horizon/View VDI type setup). It's running Windows Server 2012R2, and is accessed via Microsoft Remote Desktop Protocol - RDP. Logged into that machine, I downloaded the Dell/Wyse Management Server software from the "Dell File Download" site (not the "Dell Digital Locker" site), and installed it (easy install (and easy uninstall as I found out later)).

I then went and configured my 3040 thin client to look to the Wyse Management Server (WMS, formerly known as the CCM - Cloud Client Manager) app installed on my 2012R2 server, and rebooted the 3040, and voila! The 3040 device showed up in my WMS console. (After figuring out what I'm doing, I can similarly configure the other two thin clients we have. (Well, maybe not the zero-client PxN. Not sure yet.) Eventually, we may have tens or dozens or hundreds of thin clients, replacing more expensive actual PCs in computer labs, etc, which would be more easily managed via the WMS than by going to each one and manually configuring them.)

Sweet! Now I can remotely manage the little 3040 thin client, specifying things like what background to use, what VDI it should connect to automatically, if any, whether the user can tweak his mouse settings, or get into Admin mode, etc.

Only problem is, during the install of the WMS and the configuration of the 2040, I had some confusion about security certificates, a subject about which I know nothing (and I really should). When configuring either the WMS or the 3040 to point to the WMS, I didn't do anything with the certificate options, because I didn't know what to do, and this was just a test-bed pilot, not a production setup, so I wasn't worried yet about security; I just wanted to see if I could get the thin-client and WMS server talking to each other.

And I did get them talking to each other. For one day. The next day, the client couldn't log into the WMS server, complaining about certificates. I didn't know how to fix the problem, so I went about trying to get into the local settings of the 3040 thin client to tinker in there, but in my setting up of things, either I neglected to leave the Admin mode option turned on, or I intentionally turned it off, and while the two machines were talking for that one day, the client got the message, and now when it no longer will talk to the server, it won't let me get into its Admin-type innards.

I looked for ways to reset the 3040 thin client to factory condition, thinking I could start over. I found a "press G during boot-up" that was supposed to work, but didn't. I found that this feature too was turned off by the server when the two machines were talking to each other. the option to reset to factory specs when shutting down was missing, so that method was unavailable to me. I then discovered that you can "flash the BIOS" back to factory specs, by downloading from the Dell site a flash image file to an 8GB USB stick and boot the thin-client from that and then flashing the software to the thin-client. Wow. Really? Thankfully, not having an 8GB thumb drive on-hand, and running into some complexities (minor, but still new to me, so that it wasn't a totally fluid, easy process), I wasn't able to get around to actually trying this before I thought of one more option for me to try.

I pulled the Ethernet cable loose from the 3040.

Then I rebooted the 3040.

In a few seconds, the system was complaining about not having a network, but in the "Start" menu, the option to get into the admin settings were no longer grayed out. I had regained control of my 3040! W00t!

I document this here, because I was unable to find the information on the web that I have discovered in this process. Hopefully, Duck-duck-go's and Google's spiders will crawl over this blog and garner this info so that if anyone else is looking for this solution, they'll be able to find it.

Originally published at:
https://kentwest.blogspot.com/2018/03/regaining-control-of-wyse-3040.html

Friday, March 16, 2018

YAD - Yet Another Dialog

What a wonderful tool for building graphical dialog boxes from Linux shells!

In imaging Windows computers for my workplace, I needed a graphical window to pop up to ask the technician for the computer's name and the Active Directory group into which it needed to be placed. I wound up building the tool using PowerShell.

After building the tool, I got to wondering what it would take to do the same thing in Linux, and finding the tool "YAD" (a souped-up alternative to Zenity, which is a souped-up alternative to Dialog, which is a souped-up version to just the command line), found it is a very powerful little utility for building GUI dialog boxes. ("aptitude install yad" will install it on your Debian system.)

There are a couple of good documents on the web for learning how to use this utility, so I won't try to provide any kind of tutorial. But I thought I'd share the script so that perhaps it might help someone see the bigger picture. Just copy the script to your Linux box, "chmod +x" it, and run it ("./GetComputerNameAndOU.sh").

#!/bin/bash

#            RENAME COMPUTER AND GET OU
#
# This script creates an input box with two
# fields, one for the computer name, and one
# for the computer's OU
#


### Set these constants
CONFIG_DIR="/tmp"           # Output of this script will be saved here,
CONFIG_FILE="config.txt"    # in this file.
DefaultName="ACUxxxxx"
ouDefaultLandZone="Computers,DC=acu,DC=loacl"    # If no OU is selected
# Final product = ouLeafNode + selected OU + ouBaseLandZone
ouBaseLandZone=",OU=Departments,DC=acu,DC=local"
ouLeafNode="OU=Computers,OU="

 
### Specify your Active Directory Organizational Units here.

### The line starting with a caret will be the default
### selection in the pull-down selection field.
ou=$(echo "\
^Not Specified,\
Abilene Library Consortium,\
Academic Development Center,\
Accounting,\
Accounting and Finance,\
ACU Foundation,\
ACU Police Department,\
ACU Press,\
Adams Center,\
Advancement,\
Advancement Services,\
Advancement Stewardship,\
Advancement Strategies,\
Advising Center,\
AG and Environmental Sciences,\
Alpha Scholars and Student Success,\
Alumni Relations,\
Alumni Relations, Annual Projects & University Relations,\
Analytics,\
Art and Design,\
Arts and Sciences,\
Athletics,\
Bible Missions and Ministry,\
Biblical Studies,\
Billings and Receivables,\
Biology,\
Brown Library,\
Brown Library Dean's Suite,\
Brown Library Technical Services,\
Business and Services,\
Campus Center,\
Campus Recruiting,\
Campus Visits,\
Campus Visits and Events,\
Career Center,\
CEHS Dean's Office,\
Center for Christian Service and Leadership,\
Chancellor's Office,\
Chemistry and Biochemistry,\
CIE,\
City Square,\
COBA,\
College of Arts anbd Science,\
College of Education and Human Services,\
Communication,\
Communication and Sociology,\
Communication Science and Disorder,\
Computing Services,\
Conflict Resolution,\
Construction and Risk Management,\
Creative Services,\
Distance Education,\
Doctor of Ministry Program,\
Electronic Resources and Serials,\
Engineering Physics,\
English,\
Enrollment Management,\
Enrollment Management & Student Engagement,\
Enrollment Marketing,\
Enterprise Infrastructure,\
Exercise Science and Health,\
Facilities and Campus Development,\
Facilities Management,\
Financial Operations,\
First Year Program,\
Foreign Languages,\
General Counsel,\
General Education,\
Graduate Admissions,\
Graduate School,\
Graduate School of Theology,\
Graduate Studies in Education,\
Griggs Center,\
Halbert Institute for Missions,\
History,\
Honors College,\
Human Resources,\
Information Technology,\
Institutional Effectivness,\
Investment Services,\
Journalism and Mass Communication,\
KACU,\
Kinesiology and Nutrition,\
Landscape and Grounds,\
Language and Literature,\
Learning Studio,\
Mail Services,\
Management Sciences,\
Marketing,\
Marketing Operations,\
Marriage and Family Therapy,\
Mathematics,\
McNair Scholars,\
Medical Care and Counseling Center,\
Medical Clinic,\
Ministry Events,\
Ministry Programs,\
Music,\
Occupational Therapy,\
Office and Research and Sponsored Programs,\
Online Marketing,\
Online Programs,\
Payroll,\
Physical Resources,\
Physics,\
Political Science,\
Political Science and Criminal Justice,\
President's Office,\
Provost,\
Pruett Gerontology Center,\
Psychology,\
Psychology Clinic,\
Public Relations,\
Public Services,\
Pura Vida Salon,\
Registrar,\
Residence Life,\
Retention and Student Services,\
School of Information Technology,\
School of Nursing,\
Service Learning and Volunteer Resources,\
Siburt Institute,\
Social Work,\
Sociology and Family Studies,\
Special Collections,\
Spiritual Formation Office,\
Spiritual Life,\
Spiritual Life and Chapel Programs,\
SRWC,\
Strategic Planning,\
Student Administrative Services,\
Student Financial Services,\
Student Leadership Development,\
Student Life,\
Systems and Operations,\
Talent Search,\
Teacher Education,\
Team55,\
Technology Support Services,\
Territory Recruitment,\
Test GPOs,\
TestMalwarebytesDeployment,\
The Campus Store,\
Theatre,\
University Counseling Center,\
University Events,\
University Procurement,\
University Relations,\
Upward Bound,\
Vice President for Student Life's Office,\
Video Production,\
WFF\
")


value=$(yad --width=400 --title="Name Computer & Select AD Org Unit" \
  --timeout=120 --timeout-indicator=bottom \
  --form \
    --item-separator="," \
    --field="Enter new computer name\:" \
    --field="\tAD Organizational Unit\:":CE \
    "$DefaultName" "$ou")

### Split response into an array
IFS="|" read -a val_array <<< "${value%;}"

### Convert Name to uppercase
val_array[0]=${val_array[0]^^}

### Save the values to config file
echo Name:${val_array[0]} > $CONFIG_DIR/$CONFIG_FILE
echo OUName:${val_array[1]} >> $CONFIG_DIR/$CONFIG_FILE
if [ $"{val_array[1]}" = "Not Selected" ]
then
  echo OU:$ouDefaultLandZone >> $CONFIG_DIR/$CONFIG_FILE
else
  echo OU:$ouLeafNode${val_array[1]}$ouBaseLandZone >> $CONFIG_DIR/$CONFIG_FILE
fi





Originally published at: 
https://kentwest.blogspot.com/2018/03/yad-yet-another-dialog.html

Sunday, March 11, 2018

"That Which is Perfect"

Many in my church heritage have claimed that tongues and prophecies (and by extension all miraculous activity) have ceased, citing 1 Cor 13:8-10 as their proof. This passage says:
WEB 1 Cor 13:8 Love never fails. But where there are prophecies, they will be done away with. Where there are various languages, they will cease. Where there is knowledge, it will be done away with. 9 For we know in part, and we prophesy in part; 10 but when that which is complete has come, then that which is partial will be done away with.
Their belief is that "that which is complete" (or "perfect", in the older King James Bible) refers to the word of God, the Bible, and then they use other arguments to say the Bible is now complete.

This view has been taught as the view by many of our brethren, to the point we barely consider if it's true.

But let me offer a different view. This is not the only place where Paul writes of spiritual gifts and that which is "perfect". It is highly likely that whatever is the "perfect" that results from spiritual gifts in one place is the "perfect" that results from spiritual gifts in the other place. That other place is Ephesians 4.

Paul starts off in Ephesians by writing that gifts are given to all:

WEB Eph 4:7 But to each one of us was the grace given according to the measure of the gift of Christ. 8 Therefore he says, “When he ascended on high, he led captivity captive, and gave gifts to men.”
Then he goes on to explain how some of those gifts are manifested:
Eph 4:11 He gave some to be apostles; and some, prophets; and some, evangelists; and some, shepherds and teachers;
Then he explains what the gifts are for:
Eph 4:12 for the perfecting of the saints, to the work of serving, to the building up of the body of Christ;
And finally, he explains how long the gifts were to last:
Eph 4:13 until we all attain to the unity of the faith, and of the knowledge of the Son of God, to a full grown man, to the measure of the stature of the fullness of Christ; 14 that we may no longer be children, tossed back and forth and carried about with every wind of doctrine, by the trickery of men, in craftiness, after the wiles of error; 15 but speaking truth in love, we may grow up in all things into him, who is the head, Christ; 16 from whom all the body, being fitted and knit together through that which every joint supplies, according to the working in measure of each individual part, makes the body increase to the building up of itself in love.
The parallel to 1 Cor 12-14 is striking:

First he starts off in 1 Corinthians by explaining that gifts are given to all:

WEB 1 Cor 12:7 But to each one is given the manifestation of the Spirit for the profit of all.
Then he goes on to explain how some of those gifts are manifested:
1 Cor 12:28 God has set some in the assembly: first apostles, second prophets, third teachers, then miracle workers, then gifts of healings, helps, governments, and various kinds of languages. 29 Are all apostles? Are all prophets? Are all teachers? Are all miracle workers? 30 Do all have gifts of healings? Do all speak with various languages? Do all interpret? 31 But earnestly desire the best gifts.
He explains what the gifts are for:
1 Cor 12:18 But now God has set the members, each one of them, in the body, just as he desired. 19 If they were all one member, where would the body be? 20 But now they are many members, but one body. ... 14:5 Now I desire to have you all speak with other languages, but rather that you would prophesy. For he is greater who prophesies than he who speaks with other languages, unless he interprets, that the assembly may be built up. ... 20 Brothers, don’t be children in thoughts, yet in malice be babies, but in thoughts be mature.
And then he explains how long the gifts were to last:
1 Cor 13:9 For we know in part, and we prophesy in part; 10 but when that which is complete has come, then that which is partial will be done away with. 11 When I was a child, I spoke as a child, I felt as a child, I thought as a child. Now that I have become a man, I have put away childish things.
In both passages, the gifts are for the building up of the body, that we may no longer be children, and will cease when maturity arrives. It should be noted that in both passages, the Greek word behind the English "perfect"/"mature"/"complete"/"full-grown" is the same Greek word, telion. It should also be pointed out that in both passages, love is the dominant gift that runs throughout this maturing process.

I propose that in 1 Cor 13:10, "that which is perfect" does not refer to the finished word of God, but to the same maturity of the church/Christian which is a core thrust of both passages. The contrast in both passages is immaturity vs maturity, and the gifts are given for that exact purpose of taking us to maturity, and are to last until the maturity arrives.


Originally published at:
http://kentwest.blogspot.com/2018/03/that-which-is-perfect.html

Tuesday, January 30, 2018

Did the Psalms Expire at the Cross?

On Facebook, one poster claimed, "Psalms have already been crucified on the cross with Jesus.
====

Jesus twice refers to the Psalms as "law"; once in John 10:34, when his enemies were about to stone him, as "your law", when reminding them of their legal strictions was definitely apropos to his well-being; and once in John 15:25, as "their law" when referring to those who hated him, which again highlighted their hypocrisy. In both cases, Jesus "twists the knife" in that his enemies claim to live by God's law, but in reality violate it; they are violating their own "law", and he uses "their own law" against them.

What Jesus is not doing is declaring that the psalms are part of the Law of Moses. Every Jew in his culture knew there was a definite separation to the scriptures, so that the Law of Moses was different from the Prophets was different from the Psalms:

WEB Luke 24:44 He said to them, “This is what I told you, while I was still with you, that all things which are written in the law of Moses, the prophets, and the psalms, concerning me must be fulfilled.”

In fact, the Hebrew name for what we call "the Old Testament" came from this three-fold division: the "TaNahK" is a pronunciation of the three initials of the Hebrew names for these three sections: Torah (the Law), Nevi'im (the Prophets), and Ketuvim (the Writings (aka the Psalms & like)).

The Tanahk itself testifies that the Law was given at Mt. Sinai and written in a book, finished, to not be added to, and stored with the ark of the covenant. Both the psalms and the prophets were written/compiled hundreds of years later. If the psalms were indeed "the Law", then they must have been written in that book hundreds of years before most of them had been composed. Now *that's* a miracle!

No, the psalms are not "the Law". The establishment of marriage for life, not being "the Law", was not crucified on the cross. The promise to never again drown the earth, not being "the Law", was not crucified on the cross. The promise to Abraham, not being "the Law", was not crucified on the cross. The command to use musical instruments in the temple, not being "the Law", was not crucified on the cross. And the psalms, not being "the Law", were not crucified on the cross.



Originally published at:
https://kentwest.blogspot.com/2018/01/did-psalms-expire-at-cross.html

Friday, January 26, 2018

Why the "Norm" for Early Christian Assemblies was Non-Instrumental

In the first-century AD Jewish culture, instrumental music was used in the Temple, but it was not used in the synagogue.

It seems the synagogue developed in the days when the nation of Israel/Judah was taken into captivity in far-off Babylon. There in Babylon, the Judahites (--> Jews) no longer had access to their temple (which was destroyed, and far, far away), wherein joyful worship took place. In this vacuum, the more somber activities of Sabbath study developed, which became the synagogue.

(It should be noted that the synagogue has no scriptural authority for being; apparently it is entirely a human-invented institution, and yet Jesus gave his apparent approval by making it his custom to attend the synagogue every Sabbath - Luke 4:16.)

While in the Babylonian Captivity, the "official" theme developed that the captive Jews were too sad to praise God in joyful ways. This is the thrust of the book of Lamentations, opening with the line, "How the city sits solitary, that was full of people!" The whole book laments that "Judah is gone into captivity...she finds no rest."

When the Babylonian captors asked their Jewish captives to sing about their homeland, the captives put away their instruments and replied, "We're too sad to sing of home" (Ps 137). (Notice the very meaning of "sing" implied the use of instruments; this is the way God uses the term, regardless of how Strong's or anyone else may define it.)

When the Jews were allowed to return home and rebuild their temple, there was great joy. The new temple was inaugurated with great joy:
WEB Ezra 6:15 This house was finished on the third day of the month Adar, which was in the sixth year of the reign of Darius the king. 16 The children of Israel, the priests, and the Levites, and the rest of the children of the captivity, kept the dedication of this house of God with joy.
But these Jews also brought the more somber synagogue home with them, and by the time of Jesus, it was a well-developed system with established rules and regulations. Jesus participated in both Temple and synagogue assemblies. (He started as a child, even neglecting to return home with his parents on one occasion so that he could hang out with the temple experts, calling the temple his "father's house". He used this same phrase as an adult when he chased out the marketers.)

When the church was established in Acts 2, his apostles knew that Jesus considered the temple his father's house. They knew that Jesus had been participating in temple worship all his life. They knew Jesus participated in synagogue worship all his life. They knew he had prophesied that they themselves would be kicked out of those synagogues for being his followers.

This early church met daily in the temple, wherein the joyful musical assemblies took place. Not one word was spoken against the temple assemblies. They also met in private homes. They met in synagogues (James 2 refers to "your synagogue", although most English translations hide this fact). They met beside rivers. They met in lecture halls. Later they met in underground cemeteries. Later still they built their own buildings for their meetings.

But in these earliest days, when the church existed only in the city of Jerusalem, the main meeting place was the temple.

When the church began to spread out and away from the city and its temple, the natural meeting place was the synagogue. It is here, in the synagogue, where the non-Jew learned "how to do church". And here, in the synagogue, instruments were not used. Not because of any command from God, but because of a human tradition.

Over the next few decades, the Gentile segment of the church outgrew the Jewish segment. This Gentile segment, for the most part, had never experienced instrumental praise in the name of Jesus; all they had ever been exposed to, as a norm, was non-instrumental praise. A couple of generations later, and the kids who had grown up non-instrumental developed the idea that the way they had personally always done things must be *the* way to do things.

When the Jewish population of Christians was snuffed out almost completely by the destruction in 70AD of the Jewish Temple and city of Jerusalem, these Gentile Christians seem to have gotten it in their heads that all things Jewish were condemned by God.

These two factors - "We've always been non-instrumental", and "God hates all things Jewish, including their instruments" - led the late first-century and early-second century churches to solidify on the Gentile/synagogue way of doing things. The Sabbath was Jewish; Sunday was the new Lord's Day. Instruments and joyful dancing and incense were Jewish; solemn head-bowing and sitting quietly is how Jesus wants us to assemble. Everyone contributing their spirit-gifting in the assembly was the mystical Jewish way of doing things; we Gentiles believe in logic and science and that requires the learned philosophers to teach the non-learned, in a lecture format.

Through the intervening centuries, and the Roman Catholic Church, we have inherited this Gentile mindset. And when we go looking in the scriptures, we bring our mindset with us, and gloss over the things that don't fit in with the "way we've always done them", and when we fail to find explicit teachings to support the way we've always done things, we turn to later, post-Bible writings, and sure enough, find support for what we believe.

Although this was long, it should help to explain why it was "the norm", by tradition, not command, for church music to be non-instrumental by the second century or so. This was not because of any command from God, but because of the natural progression of the church moving from the instrumental Jewish temple to the non-instrumental Jewish synagogue to the non-Jewish, non-instrumental assembly.

No command against instruments. No demand for instruments. Total freedom. But tradition, and the practical loss in history of the earlier tradition and the practical highlighting of the later one resulted in the norm for early Christianity to be non-instrumental.


Originally published at:
https://kentwest.blogspot.com/2018/01/why-norm-for-early-christian-assemblies.html

Friday, January 05, 2018

A Very Simple "launchd" Example for MacOS

Arg. I've been struggling for days! to get a simple launchd example to work. None of the examples I found in the googlesphere got me there. Here's my working example.

Although I generally avoid being root for more than a single sudo command, I'm gonna sudo into root for this. Open Terminal (Cmd-Spacebar to open the Search window, then search for and Enter on "terminal".)
$ sudo -i
Then move into the /Users/Shared directory, and create a "Scripts" directory, and then move into that directory:
# cd /Users/Shared
# mkdir Scripts
# cd Scripts
Create a very simple Bash script here using nano:
# nano mysimplescript.sh
(You could also use any other plain-text editor, such as TextEdit (yuk!) or TextWrangler (yum!, but it's a third-party download). Whatever text editor you use, put the following into your "mysimplescript.sh":
#!/bin/bash
touch ITWORKS
Exit out of your text editor, saving the file. (If you use TextEdit, make sure it's a plain text file, etc.)

Make sure the file is readable and executable by root:
# chmod +x mysimplescript.sh
# chown root:wheel mysimplescript.sh
And test it to make sure it works. Currently, there should be no file named "ITWORKS" in the /Users/Shared/Scripts directory. After you run it, there should be such a file.
# ./mysimplescript.sh
If the script worked properly, you'll now have an empty file named "ITWORKS" in the /Users/Shared/Scripts directory. (You'll want to remove this file manually (# rm ITWORKS) afterwards for additional testing.)

Okay, so we have a working script. Now we want to use launchd to run this script once at boot-time.

Create a new file named "local.itworks.plist" (# nano local.itworks.plist), and put the following text into it:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
                <string>local.itworks</string>

        <key>ProgramArguments</key>
        <array>
                <string>/Users/Shared/Scripts/mysimplescript.sh</string>
        </array>

        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>    
Now this file needs to be placed in the appropriate directory for launchd items. If it was an Apple-provided .plist file, it'd go in /System/Library/LaunchDaemons (for root-run items) or /System/Library/LaunchAgents (for user-run items). (Daemons and Agents are the same thing; just named differently for who runs them, root or users.) But we're not Apple. If we wanted the item to be a launchd item for just "me", it'd go into my home folder's Library directory, ~/Library/LaunchAgents. But we want this to run as root, on startup, so we'll put it in /Library/LaunchDaemons.
# mv local.itworks.plist /Library/LaunchDaemons
And we need to make sure it has the correct permissions:
# chown root:wheel /Library/LaunchDaemons/local.itworks.plist
# chmod 755 /Library/LaunchDaemons/local.itworks.plist
(You could be more restrictive with the perms, such as chmod 700, but this should be okay for our purposes.)

Now we're ready to test it. Make sure that you have removed "ITWORKS" from the /Users/Shared/Scripts directory, or we won't know if the launchd item works or not, and then tell launchd to load this new service you have created:
# launchctl load /Library/LaunchDaemons/local.itworks.plist
If you see no errors, that's good. If you now see an "ITWORKS" file in the /Users/Shared/Scripts directory, that's great! Your new launchd service works!

You can get a list of running launchd items with:
# launchctl list
or you can narrow that list down with:
# launchctl list | grep local.itworks
If you need to edit the .plist file, you'll need to first stop/unload the service:
# launchctl unload /Library/LaunchDaemons/local.itworks.plist
Hopefully this will get you started with a successful launchd experiment, that will cause your mysimplescript.sh script to run at each boot of the Mac.

Thursday, December 28, 2017

Dying Assemblies

Our assemblies are dying because they're not fulfilling their God-given purpose.

Our church leaders "learned" in the 1950s that the purpose for assemblies is to "worship correctly", which puts the focus on singing right and preaching the right message and doing the Lord's Supper right and controlling who can say what when and all these "regulations", which have the appearance of wise worship.

There's nothing wrong with these things, but that's not what our leaders should focus on. Our leaders were given to us for a different purpose:
WEB Eph 4:[11 ]He gave some to be apostles; and some, prophets; and some, evangelists; and some, shepherds and teachers; [12 ]for the perfecting of the saints, to the work of serving, to the building up of the body of Christ...
If you're a church leader, and you're not helping your sheep mature to the point of serving and building, you're not doing your job.

Your purpose is not to conduct a "God-pleasing worship service". Your purpose is to conduct a personal-growth seminar.

Paul writes this same message elsewhere:
WEB 1 Cor 14:[26 ]What is it then, brothers? When you come together, each one of you has a psalm, has a teaching, has a revelation, has another language, has an interpretation. Let all things be done to build each other up.

It's about training each member of the flock to develop and use his own God-given gifts, whatever those gifts are, to be used in the service of God's kingdom.

Can you imagine the difference we'd make in the world if we were producing armies of men and women trained to use their skill-sets in the work of the kingdom? Medical researchers giving sight to the blind. Lawyers defending the rights of the oppressed. Film-makers drawing in block-buster crowds to be influenced to no longer steal but to work productive lives. Business managers who keep the books honestly. Employers who "do right" by their employees. Engineers who develop life-enhancing products cheap enough for third-world countries. Farmers who feed the starving. Spiritual advisors who pray in Jesus' name with their clients. Public speakers who inspire listeners to make the right choices in life. Power-point developers who make God's message vibrant and alive. Software programmers who hide God-honoring easter eggs in their work. Singers who put the Norman Fishing-Tackle Choir to shame. People who make a difference in the world, because their God-given talents were developed by godly leaders who have learned to recognize and nurture those talents in each individual.

From Jesus' first public sermon:
KJV Luke 4:[18 ] The Spirit of the Lord is upon me, because he hath anointed me to preach the gospel to the poor; he hath sent me to heal the brokenhearted, to preach deliverance to the captives, and recovering of sight to the blind, to set at liberty them that are bruised....
The assemblies are not about worship (although that does take place in the assembly). The assembly is about identifying and nurturing each one of us to do good works:
WEB Heb 10:[24 ]Let us consider how to provoke one another to love and good works, [25 ]not forsaking our own assembling together, as the custom of some is, but exhorting one another; and so much the more, as you see the Day approaching.
That may mean breaking away from our traditions of two songs, a prayer, a song, the Lord's Supper, a song, a sermon, an Invitation, contribution, and a closing hymn and prayer. It may mean breaking into small groups, learning how to place our hands on one another and praying as a group. It may mean setting aside time to ask each member, "What's happening in your life?", so we can get to know each other and each other's needs. It may mean spending less on the outdated bus program and sending a young Christian to medical school instead, who then cures cancer or provides doctoring to the congregation's been-there-a-year full-time members at an 80% discount for ten years after graduation. It may mean game-show style learning opportunities instead of 30-minute one-way sermons that are completely wasted on the post-MTV generation. It may mean adapting the assembly in whatever way is needed to develop 21st century Christians into 21st century kingdom powerhouses.

It starts with the leaders. Are you developing your flock according to their bent, or are you simply scratching your own itch to talk into a microphone?
ISV Prov 22:6 Train a child in the way appropriate for him, and when he becomes older, he will not turn from it.

Thursday, December 14, 2017

Even Whores Matter

- Tamar, the presumed prostitute, was declared more righteous than the ancestor of Jesus' tribe - Gen 38.

- Rahab the prostitute was a heroine of the faith - Heb 11:31.

- One of the judges of Israel, Jepthah, was the son of a prostitute - Judges 11:1.

- Hosea married a prostitute - Hos 1:2.

- The woman who wiped Jesus' feet with her hair was a "sinner" - Luke 7:37.

Not sure what meaning I'd take from this, but I find it interesting.

Sunday, December 03, 2017

Jesus Was Probably Not Born On Christmas. So?

The most important birth in the history of the world, and we argue that it is sin to assign a day to remember it, just because we're not told to do so.
WEB 2 Cor 10:4 for the weapons of our warfare are not of the flesh, but mighty before God to the throwing down of strongholds, 5 throwing down imaginations and every high thing that is exalted against the knowledge of God, and bringing every thought into captivity to the obedience of Christ;
It is OUR JOB to destroy things exalted against God, like paganism, and CAPTURE everything, like pagan practices, for Christ's glory.

If Christmas trees belonged to the Druids, we need to CAPTURE them for Christ.

If Halloween belonged to demons, we need to CAPTURE the day for Christ.

If Springtime Fertility Festivals belonged to Ashtarte ("Easter"), we need to CAPTURE the day for Christ.[1]

We are to bring every thought, every day, every moment, into captivity to the ownership of Christ.

Caesar is not Lord, despite the claims of the first-century pagans. Jesus is Lord.

God did not "authorize" the set-apart ("holy") days of Purim, or the set-apart days of Hannakuh ("Festival of Lights"), or the set-apart days of Christmas. God's people "captured" these days to honor the Lord. And at least in the first two cases, God approved, the first by including in the Bible an entire book to explain the holiday's origins, and in the second case by having Jesus right in the middle of the festivities.

WEB Matt 23:24 You blind guides, who strain out a gnat, and swallow a camel!
Focusing on the tithing of pennies, and completely missing the far more important tasks of justice and mercy and fidelity. How can you be faithful to Jesus if you're going around yelling, "Don't freely honor him whenever the opportunity arises! Stick to the legalistic rules that we assume apply because we know Jesus only cares about exact obedience and not about the heart!"
WEBm Matt 15:7 You hypocrites! Well did Isaiah prophesy of you, saying,
8
‘These people draw near to me with their mouth,
and honor me with their lips;
but their heart is far from me.
9
And in vain do they worship me,
teaching as doctrine rules [like "No Christmas!"] made by men.’”








--------

1. These holidays don't actually have pagan origins, but most people believe they do, and trying to explain otherwise in the blog post would just get in the way of my message.

Monday, November 13, 2017

Being Good Out of Self-Seeking?

What motivates a person to be a Christian?

Isn't it ultimately for the sake of the person himself? Perhaps to avoid hell, or to gain paradise, or because he's driven to serve a principle, such as the principle of Righteousness, or the principle of Truth?

Whatever the motivation, does it not boil down to a selfish, "#1 gets what he wants in the end" reason?

And that has bothered me. I should seek to be righteous for selfless reasons, not for selfish reasons. And yet, no matter how I turn it and look at it, the reasons boil down to "My Choice", which means I'm getting my way, which means ultimately, selfishness.

No matter how selfless my choices in this life, ultimately they're driven by a selfish hope of a valuable pay-off in the future.

And I don't want to be selfish.

But then I read a passage I've heard/read many times before, and realized, Jesus sacrificed himself for his own selfish reason. Here it is:
WEB Heb 10:2 looking to Jesus, the author and perfecter of faith, who for the joy that was set before him endured the cross, despising its shame, and has sat down at the right hand of the throne of God.
 Jesus endured the cross because he saw a valuable pay-off in the future - "Joy".

If Jesus can be selfish in his motivation to do the right thing, I reckon I can be, too.

Tuesday, September 26, 2017

Pharos Printing from Linux


Pharos Printing from Linux
This document assumes you’re installing on a Debian 9.x computer, and that you’re printing to a Pharos release station, not to an actual Pharos printer queue. If you need the latter, you can probably add the functionality by recoding /usr/local/bin/pharospopup to ask for a password, and recoding /usr/lib/cups/backends/pharos to process that password, but I’ve not looked into that at all. Maybe next year, in the Year of the Linux Desktop ;-)

1 - Install CUPS

aptitude install cups

2 - Install Python

  1. Install Python
    1. aptitude install python
  2. Test for wx
    1. Start python (“python” at the command prompt)
    2. At the python prompt (>>>), type “import wx”. If you get no errors, great! If you get a message that no module named “wx” is found, you’ll have to install that piece (see below)
    3. Exit python with “quit()”.
  3. To install the wx modules,
    1. aptitude install python-wxgtk3.0
    2. Repeat the text for wx as above.

3 - Install pharos-linux

This is an open-source pharos client for Linux, written in python (which is why you installed python above).


  1. On the green button to the right, that says “Clone or download”, choose “Download zip”.
  2. In a Terminal window, navigate to where you downloaded the zip file, and unzip it:
    1. cd ~/Downloads  (for example)
    2. unzip pharos-linux-master.zip
  3. Navigate into the directory created by the unzipping above:
    1. cd pharos-linux-master
  4. Here you have to create a “printers.conf” file. This will be different than the CUPS “printers.conf”, so don’t get them confused. But you may need some info (like the printer driver name, etc) from the CUPS version of the file, so you may want to create a dummy printer temporarily in order to collect that info:
    1. Web-browse to “localhost:631”
    2. Use this normal CUPS interface to create a temporary lpd:// version of the printer you’re wanting to install. Make sure to make it as accurate as you can, including the IP address and model and driver.
  5. Now that you’ve created a temporary dummy printer in CUPS, you can look in the “/etc/cups/printers.conf” file for some of the info you’ll need in the pharos “printers.conf” file. Create/edit “printers.conf”. Mine, for an HP Laserjet p4015dn printer, looks like this:

# ACU Brown Library Kiosk Printer Configuration File
[Printers]
printers=BLKiosk_1

[BLKiosk_1]
Make=HP
Model=LaserJet p4015dn
Driver=hpcups
LPDServer=tychicus.acu.edu
LPDQueue=BLKiosk_1
Location=Brown Library Circ Desk
Description=Circulation Desk Printer

The “README” and “CONFIGURATION” files may provide you some help.

On one of my machines, I had to aptitude install printer-driver-hpcups to get the correct driver installed for this printer.

  1. Now that you’ve created the pharos version of the “printers.conf”, you can run the pharos setup program:
    1. ./setup.py
  2. If all goes well, you should see a message that remote printing has been successfully installed.
    1. This created a new “backend” processor for CUPS, named “pharos”. This is what allows you to select “pharos” as the protocol when you add (or modify, as in the next step) a new printer. If you're curious to see the file, you can find this new backend in the “/usr/lib/cups/backend” (“/usr/libexec/cups/backend” on Macintosh, just FYI) directory.
    2. It installed some executables and config files in “/usr/local”, such as “/usr/local/bin/pharospopup” (which is the python script that creates the popup window when you print).
    3. It created a symlink to “/usr/local/bin/pharospopup” in the KDE or Gnome startup locations of any users it found on the system, so that the popup client "daemon" will be running in the background when you start KDE/Gnome, which watches for print jobs sent to the Pharos printer and then pops up the credentials window. In my case, running XFCE4 instead of KDE or Gnome, I had to manually create an autostart item (using the XFCE4 System Settings GUI, but I could have done it by hand in the “~/.config/xfce4/autostart” directory) that runs the “/usr/local/bin/pharospopup” executable” when XFCE4 starts up. When this executable is running, you should be able to see it with a “ps ax | grep pharos”. If it’s not running, something’s wrong (did you log out / back in?).
  3. Now you need to go back to your CUPS configuration page (web-browse to localhost:631), and “Modify” your temporary printer, changing only the protocol from the lpd:// you used earlier to the newly-available “Pharos” protocol (not named that; can’t recall or access at the moment).
  4. If all has gone well, when you try to print, you’ll get a popup asking for printing credentials, and all should be working.
  5. If your printer dialog has more printers than just the ones you want, you can turn that off. Apparently in earlier versions, the “browse” options in “/etc/cups/cups.conf”, or the “/etc/cups/cupsd-browsed” were controlling factors, but now Avahi seems to override those settings. (You can even turn off CUPS altogether, and your wanted printer goes away, but the autodiscovered ones remain. Arg.) I’m currently testing how best to do this. Here are three possible options:
    1. Turn off avahi-daemon altogether. Avahi is related to (the same as?) ZeroConf / Bonjour / Rendevouz / Auto-discovery. You’d think that you could turn it off with a simple:
systemctl disable avahi-daemon
but on reboot, it seems to be back in service. Flipping the bit in “/etc/default/avahi-daemon” doesn’t help either. You might have to tweak the avahi files in “/etc/init.d” to disable it.
    1. Tell Avahi to not publish on dbus the devices it finds. Edit “/etc/avahi/avahi-daemon.conf”, uncommenting the line under “[server]” that says “enable-dbus=yes”, and changing the “yes” to “no”.
    2. Tell the GTK-3 applications (like Firefox) to not use the devices published by Avahi. Create “/etc/gtk-3.0/settings.ini”, and add the following content to it:

[Settings]
gtk-print-backends=file

(the default, without this setting, is "gtk-print-backends=file,cups)

Of these three methods, I’ve had the best results with “b”.

You should now be able to print to a Pharos printer from Linux. I edited the “/usr/local/bin/pharospopup” python script to swap out “myACU” for “myITT”, and to tweak the “release station” to “the Circulation Desk”. Now the popup is customized more specifically for my environment.