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:

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:

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 ("./").


# 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.
ouDefaultLandZone="Computers,DC=acu,DC=loacl"    # If no OU is selected
# Final product = ouLeafNode + selected OU + ouBaseLandZone

### 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 and Finance,\
ACU Foundation,\
ACU Police Department,\
ACU Press,\
Adams Center,\
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,\
Art and Design,\
Arts and Sciences,\
Bible Missions and Ministry,\
Biblical Studies,\
Billings and Receivables,\
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,\
City Square,\
College of Arts anbd Science,\
College of Education and Human Services,\
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,\
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,\
Honors College,\
Human Resources,\
Information Technology,\
Institutional Effectivness,\
Investment Services,\
Journalism and Mass Communication,\
Kinesiology and Nutrition,\
Landscape and Grounds,\
Language and Literature,\
Learning Studio,\
Mail Services,\
Management Sciences,\
Marketing Operations,\
Marriage and Family Therapy,\
McNair Scholars,\
Medical Care and Counseling Center,\
Medical Clinic,\
Ministry Events,\
Ministry Programs,\
Occupational Therapy,\
Office and Research and Sponsored Programs,\
Online Marketing,\
Online Programs,\
Physical Resources,\
Political Science,\
Political Science and Criminal Justice,\
President's Office,\
Pruett Gerontology Center,\
Psychology Clinic,\
Public Relations,\
Public Services,\
Pura Vida Salon,\
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,\
Strategic Planning,\
Student Administrative Services,\
Student Financial Services,\
Student Leadership Development,\
Student Life,\
Systems and Operations,\
Talent Search,\
Teacher Education,\
Technology Support Services,\
Territory Recruitment,\
Test GPOs,\
The Campus Store,\
University Counseling Center,\
University Events,\
University Procurement,\
University Relations,\
Upward Bound,\
Vice President for Student Life's Office,\
Video Production,\

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

### 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" ]
  echo OU:$ouDefaultLandZone >> $CONFIG_DIR/$CONFIG_FILE
  echo OU:$ouLeafNode${val_array[1]}$ouBaseLandZone >> $CONFIG_DIR/$CONFIG_FILE

Originally published at:

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:

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:

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:

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
(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 "":
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
# chown root:wheel
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.
# ./
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" "">
<plist version="1.0">


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 script to run at each boot of the Mac.