avcoreup:
updates the avcore portion of a site avenger application. this command can
accept an application name within which to update, or it can auto-pick the
- applicatin for you from the available checked out ones in ~/apps (the default
- storage folder for all site avenger style sites).
+ application for you from the available checked out ones in ~/apps (the
+ default storage folder for all site avenger style sites).
siteup:
updates the entire checked out repository for a site avenger application.
--- /dev/null
+
+A typical "user story" in Scrum goes like this...
+
+As user/role X, I want feature/item Y, because of business purpose Z.
+
+
And you may say to yourself "MY GOD! WHAT HAVE I DONE?"
-- The Talking Heads
~
-The nice thing about standards is that there are
-so many of them to choose from.
+The nice thing about standards is that you have so many to choose from;
+furthermore, if you do not like any of them,
+you can just wait for next year's model.
-- Andrew S. Tanenbaum
~
A bore is a man who, when you ask him how he is, will tell you.
-- Glenn Mullin, "The Practice of Kalachakra", foreword by H.H. the Dalai
Lama, published by Snow Lion Publications
~
-After suffering severe puncture wounds without shooting any goop on my
-opponent, I realized I was simply outgunned. Never bring caulk to a
+After suffering severe puncture wounds without shooting any goop on my
+opponent, I realized I was simply outgunned. Never bring caulk to a
nailgun fight.
-- Stephanie S. Thompson
~
Trying to find the pain in life is the renunciation of hinayana. Trying to
find the ambition in life, trying to reach higher goals, is the
bodhisattva's ambition in the mahayana. Trying to find the subtleties of
-life is the tantric discovery of mystical experience in the vajrayana.
+life is the tantric discovery of mystical experience in the vajrayana.
-- Milarepa, from "Milarepa: Lessons from the Life and Songs of Tibet's
Great Yogi", by Chögyam Trungpa, published by Shambhala Publications
~
According to the Buddhist point of view, an artist's intention is
compassion. Buddhist artists create in order to make a link with other beings
through their inner pure elements, and to transform their outer ordinary gross
-elements into enlightenment by means of that connection.
+elements into enlightenment by means of that connection.
-- Thinley Norbu, from "Magic Dance: The Display of the Self-Nature of the
Five Wisdom Dakinis", published by Shambhala Publications
~
suffer greatly. Therefore, sentient beings born in the states of the six
wanderers have nothing but suffering. If we think about that, compassion can
arise.
- -- Khenchen Thrangu, "Essential Practice: Lectures on Kamalashīla's
+ -- Khenchen Thrangu, "Essential Practice: Lectures on Kamalashīla's
Stages of Meditation in the Middle Way School", published by Shambhala
Publications
~
causing all persons to possess happiness and the causes of happiness, is
inconceivable, but if it is not dedicated, then when anger arises, it will be
destroyed. This benefit cannot be seen with the eye, but it is inconceivable.
-Â -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main
+ -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main
Practices of the Mahayana Buddhist Path", translated and edited by
Jeffrey Hopkins, published by Shambhala Publications
~
countless future lives. If you consider only this which you can see now and
you do not consider all the future lives which you cannot see, you will incur
immeasurable fault. You will harm yourself.
-Â -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main
+ -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main
Practices of the Mahayana Buddhist Path", translated and edited by
Jeffrey Hopkins, published by Shambhala Publications
~
Thus with patience I will strive with diligence.
For in such diligence enlightenment is found.
If no wind blows, then nothing stirs,
- And neither is there merit without diligence.
+ And neither is there merit without diligence.
-- H.H. the Fourteenth Dalai Lama, from "The Bodhisattva Guide: A Commentary
on The Way of the Bodhisattva", The Bodhisattva Guide was originally
Hunger, thirst, cold, and the like--all forms of physical affliction--
Together with sadness, fear, and all such mental suffering,
Can, through the teachings, enhance the purifying path
-And, unburdened by avoidance or indulgence, adorn the mind!
+And, unburdened by avoidance or indulgence, adorn the mind!
-- Patrul Rinpoche, from "Beyond the Ordinary Mind: Dzogchen, Rimé, and the
Path of Perfect Wisdom", translated by Adam Pearcey, published by
Thereby everything is accomplished.
Attachment to pleasure brings misery.
Total clarity, being non-conceptual,
-Is self-refreshing pristine awareness.
+Is self-refreshing pristine awareness.
-- Longchenpa, from "You Are the Eyes of the World", published by Shambhala
Publications
~
The sun of fundamental nature, bright and clear,
Will rise up from within.
In this realization, changeless and unmoving,
-There is nothing to be added, nothing to remove.
+There is nothing to be added, nothing to remove.
-- Longchenpa, from "Finding Rest in Meditation", published by Shambhala
Publications
~
May you quickly find the emptiness of your own mind,
And from the kingdom of the ever-pure great perfection,
Bring about the great aims of boundless beings.
-Â -- from "Gendun Chopel: Tibet's Modern Visionary", by Donald S. Lopez
+ -- from "Gendun Chopel: Tibet's Modern Visionary", by Donald S. Lopez
Jr., published by Shambhala Publications
~
Parallel to compassion, the Buddhist teachings emphasize loving-kindness--the
I am a Buddhist monk, so I try to practice accordingly. When people think
this practice is something unique and special and call me a leader of world
peace, I feel almost ashamed!
-Â -- H.H. the Fourteenth Dalai Lama, from "The Bodhisattva Guide", published
+ -- H.H. the Fourteenth Dalai Lama, from "The Bodhisattva Guide", published
by Shambhala Publications
~
We have talked about impermanence and how painful it is to acknowledge that
Direct perfect enlightenment [with regard to] all aspects,
and abandonment of the stains along with their imprints
[are called] buddha and nirvana respectively.
-In truth, these are not two different things.
+In truth, these are not two different things.
-- Maitreya, Jamgon Kongtrul Lodro Taye, Khenpo Tsultrim Gyamtso, and
Asanga in "Buddha Nature: The Mahayana Uttaratantra Shastra with Commentary",
help us see ourselves more accurately. The word skandha can be translated
literally as "heap." This definition, when applied to ourselves, can help
us see that we do not have a cohesive, real, and solid self. We are just a
-heap of stuff — flesh, blood, veins, nerves, bones, hair, cartilage, and so
+heap of stuff--flesh, blood, veins, nerves, bones, hair, cartilage, and so
on. When we sort through this heap, what are we actually? None of the
elements of the heap is actually "me." We are a mere mishmash of material
conditions that we have identified with and labeled "I."
feet without their mother, father, or guardian to guide them? When we are
born, we are completely helpless and dependent. We would never survive
without the help of others. There is truly no such thing as autonomy. So if
-you want to live in accordance with the nature of things—which means living
-in grace—practically speaking, it will require some humility and gratitude
-for the ways in which your tradition has come down to you with so much care.
+you want to live in accordance with the nature of things--which means living
+in grace--practically speaking, it will require some humility and gratitude
+for the ways in which your tradition has come down to you with so much care.
-- Elizabeth Mattis Namgyel, from "The Logic of Faith: The Buddhist Approach
to Finding Certainty Beyond Belief and Doubt", published by Shambhala
Publications
to do. So, when we are practicing meditation, we have to maintain the
attitude, "This is my time to meditate and now I am not trying to think
thoughts. If I let myself think, I am wasting this time I have to practice."
-Â -- Khenchen Thrangu, from "The Mahamudra Lineage Prayer: A Guide to
+ -- Khenchen Thrangu, from "The Mahamudra Lineage Prayer: A Guide to
Practice", published by Shambhala Publications
~
The arrogant mind never stops searching for identity, and this identity always
artist," "the fearless leader." We can hold onto these labels on a "good" day.
But when we feel insecure about our attributes, or our lack thereof, we start
to wonder how to define ourselves; we wonder who it is we really are.
-Regardless of whether we’re having a good day or a low self-esteem day, the
-point is, we haven’t found a way to relax, to be natural, unself-conscious.
-We don’t know how to take our seat in ordinariness and feel comfortable in
-our own skin. We’re always searching for something to be.
-Â -- Dzigar Kongtrul, from "Light Comes Through: Buddhist Teachings on
+Regardless of whether we're having a good day or a low self-esteem day, the
+point is, we haven't found a way to relax, to be natural, unself-conscious.
+We don't know how to take our seat in ordinariness and feel comfortable in
+our own skin. We're always searching for something to be.
+ -- Dzigar Kongtrul, from "Light Comes Through: Buddhist Teachings on
Awakening to Our Natural Intelligence", published by Shambhala
Publications
~
Expand your mindfulness and remain pervasive like the earth.
Steady your attention and remain unshakable like a mountain.
Brighten your awareness and remain shining like a flame.
-Clear your thought-free wakefulness and remain lucid like a crystal.
- -- Dakpo Tashi Namgyal, "Clarifying the Natural State", from "Jewels of
+Clear your thought-free wakefulness and remain lucid like a crystal.
+ -- Dakpo Tashi Namgyal, "Clarifying the Natural State", from "Jewels of
Enlightenment: Wisdom Teachings from the Great Tibetan Masters", compiled
and translated by Erik Pema Kunsang, published by Shambhala Publications
~
attitudes and behavior are. That's how strong spiritual love is.
-- Jeffrey Hopkins, from "A Truthful Heart: Buddhist Practices for
Connecting with Others", Shambhala Publications
+~
+this is not confirmed yet, but UVa is changing the name of its funding tokens.
+UVa is moving away from the PTAO payment codes (Project, Task, Award, and
+Organization) to a new acronym using "Cost center, Activity, Program, Spend
+category" or... CAPS!!!
+finally all my hard work in fallout new vegas will be paying off.
+~
+Rob's Meeting Mantra:
+
+Is what I am thinking necessary to say?
+Is it necessary for this to be said by ME?
+Is it necessary for me to say this RIGHT NOW?
+
+ -- Rob Diethorn
+~
+fred's chow mantra:
+ just eat when you're hungry,
+ and be sure you're hungry and not just sating an appetite,
+ because scheduled food times are irrelevant to your body,
+ and can lead to overfeeding unless you're malnourished;
+ so let the body decide when to eat,
+ and use your brain to decide what you feed it.
+ -- fred t. hamster
+~
+No problem can withstand the assault of sustained thinking.
+ -- Voltaire
+~
+Clear thinking requires courage rather than intelligence.
+ -- Thomas Szasz
+~
+Did you ever stop to think, and forget to start again?
+ -- Winnie the Pooh
+~
+It is well for people who think,
+to change their minds occasionally
+in order to keep them clean.
+ -- Luther Burbank
+~
+Language shapes the way we think, and determines what we can think about.
+ -- Benjamin Lee Whorf
+~
+Misery is almost always the result of thinking.
+ -- Joseph Joubert
+~
+Most of the mistakes in thinking
+are inadequacies of perception
+rather than mistakes of logic.
+ -- Edward de Bono
+~
+Thought is the blossom; language the bud; action the fruit behind it.
+ -- Ralph Waldo Emerson
+~
+What we think, we become. -- Shakyamuni Buddha
+~
+pseudo-code for our daily lives:
+
+repeat:
+ if (not one_thing) then {
+ other_thing
+ }
+:forever
+~
+U R brilliant,
+U need 2 keep working on that shine,
+U can't lord it over others,
+U R your own completeness as they are theirs.
+ -- fred t. hamster
+~
+and goddess said to me, she said like, "i am omni-sexual and pan-gender...
+bitches." i apologize for her language, but that's what she said.
+ -- fred t. hamster
+~
+
+vape temperature mantra for cannabis
+(also a haiku if you don't pronounce the numbers...)
+
+ things are tastiest,
+ celsius degrees ranging 164 -> 228,
+ dank vaporizer.
+
+ get lightly toasted 164+,
+ proceed on to half baked at 180+,
+ way fully baked at 200+.
+
+ dude, know when it's cooked,
+ never go over 230 ever,
+ we vape you long time.
+ -- fred t. hamster
+~
+ I found I was able to get a lot of tension off my shoulders by almost
+"outing" myself in the press in that way, in very early circumstances. So
+I wasn't going to get people crawling out the woodwork saying [seedy, muck-
+raking voice]: "I'll tell you something about David Bowie that you don't
+know..." I wasn't going to have any of that. I knew that at some point I
+was going to have to say something about my life. And, again, Ziggy enabled
+me to make things more comfortable for myself. There was an excitement that
+the age of exploration was really finally here. Which is what I was going
+through. It perfectly mirrored my lifestyle at the time. It was exactly what
+was happening to me. There was nothing that I wasn't willing to try, to
+explore and see if it was really part of my psyche or my nature. I was
+terribly exploratory in every way, not just culturally but sexually and...
+God, there was nothing I would leave alone. Like a--it's a terrible pun,
+but--like a dog with a bone, I suppose! So I buried it!
+ The quote has taken on far more in retrospect than actually it was at the
+time. I'm quite proud that I did it. On the other hand I didn't want to
+carry a banner for any group of people, and I was as worried about that as
+the aftermath. Being approached by organisations. I didn't want that. I
+didn't feel like part of a group. I didn't like that aspect of it: this is
+going to start overshadowing my writing and everything else that I do.
+But there you go.
+ -- David Bowie, in Mojo, July 2002
+~
+I am King Gesar of Ling,
+not so long ago named king
+and principal ruler of the six provinces of Ling,
+mandated by the gods to be the destined leader
+and the one to quell the demons of the dark side.
+Since I am the one entrusted with this aspiration,
+my deeds and actions must follow.
+ -- from "The Taming of the Demons: From the Epic of Gesar of Ling",
+ translated by Jane Hawes, David Shapiro, and Lama Chönam, published
+ by Shambhala Publications
+~
+ One of the stories that drew me to Zen was about how one of our Zen
+ancestors responded to both insult and praise. In this story, Hakuin Zenji
+was falsely accused of impregnating a young girl who lived in the village near
+his hermitage. When her parents and the villagers came to accuse him, he said
+merely, "Is that so?"
+ When the baby was born, Hakuin received the infant and cared for the child
+with the help of a wet nurse. Sometime later, the girl confessed to her
+parents that a village boy was the father of her child. Those who had accused
+him earlier came then to reclaim the child and to praise Hakuin.
+ In response to their praise, he simply said, again, "Is that so?"
+ -- Reb Anderson, from "Entering the Mind of Buddha: Zen and the Six Heroic
+ Practices of Bodhisattvas", published by Shambhala Publications
+~
+One day in a lecture Suzuki Roshi said, "When you see one leaf falling, you
+may say, Oh, autumn is here! One leaf is not just one leaf; it means the
+whole autumn. Here you already understand the all-pervading power of your
+practice. Your practice covers everything."
+ -- Shunryu Suzuki, from "Zen Is Right Here: Teaching Stories and Anecdotes
+ of Shunryu Suzuki, author of Zen Mind, Beginner's Mind", published by
+ Shambhala Publications
+~
+Compared with the force of the all-powerful weapons that exist today, we are
+nothing, even less than ants. And yet those weapons were not made by demons
+or aliens from another planet. They were made by humans just like me and
+you... If we ever press the red button, others will do the same. If we bomb
+them, bombs will rain on us. That's cause and effect, and it will just go
+on and on. So what can we do? Only one thing can help us: loving-kindness.
+Loving-kindness is the very foundation of a civilized world.
+ -- Chokyi Nyima Rinpoche, from "Sadness, Love, Openness: The Buddhist Path
+ of Joy", published by Shambhala Publications
+~
how to clean whiteboard snapshots in general:
+
http://matthew.mceachen.us/blog/how-to-clean-up-photos-of-whiteboards-with-gimp-403.html
+ apparently the URL above is defunct.
+
+ new URL on this topic: https://gist.github.com/adsr303/74b044534914cc9b3345920e8b8234f4
+ requires a bit of gimp knowledge.
+
+====
+
+[untested]
script for whiteboard cleaning in batch can be found in this folder also.
the batch-whiteboard-clean.scm script should go in: ~/.gimp-2.6/scripts
using namespace basis;
using namespace loggers;
using namespace structures;
+using namespace textual;
namespace sockets {
PROJECT = tests_sockets
TYPE = test
SOURCE = bcast_spocketer.cpp spocket_tester.cpp
-TARGETS = test_address.exe test_bcast_spocket.exe test_enum_adapters.exe \
- test_sequence_tracker.exe test_span_manager.exe test_spocket.exe test_ucast_spocket.exe
+TARGETS = test_address.exe test_bcast_spocket.exe test_sequence_tracker.exe \
+ test_span_manager.exe test_spocket.exe test_ucast_spocket.exe
+ifneq "$(OS_SUBCLASS)" "darwin"
+ TARGETS += test_enum_adapters.exe
+endif
LOCAL_LIBS_USED = sockets unit_test application configuration loggers textual timely \
processes filesystem structures basis
VCPP_USE_SOCK = t
-#ifeq "$(COMPILER)" "VISUAL_CPP"
-# LIBS_USED += ws2_32.lib
-#endif
RUN_TARGETS = $(ACTUAL_TARGETS)
include cpp/rules.def
# specifies the version of the code that is being constructed here.
major=2
minor=140
-revision=129
+revision=130
build=420
# specifies the remainder of the version record info.
How to get the feisty meow codebase
+These steps assume that you have the "git" tool available.
+
| On Microsoft Windows, install the Cygwin tools as documented here:
| /opt/feistymeow.org/feisty_meow/documentation/cygwin_install_list.txt (local file) or
| https://feistymeow.org/feisty_meow/documentation/cygwin_install_list.txt (web)
How to load the feisty meow script environment
+Prepare your host by installing the packages needed to bootstrap feisty meow.
+If this fails, then you may need the manual installation steps at the end of
+this file.
+$ bash /opt/feistymeow.org/feisty_meow/scripts/core/prep_feisty_host.sh
+
Set up the feisty_meow scripts; this is only needed once, when you first get
the codebase.
$ bash /opt/feistymeow.org/feisty_meow/scripts/core/reconfigure_feisty_meow.sh
==============
-How to install the feisty meow script dependencies
-
-A couple of perl modules are required by some of the scripts (including the
-differ utility and the feisty meow customization system). They can be
-installed with either apt or CPAN.
-
-Install using apt (on Ubuntu or Debian-based OS):
-$ sudo apt install libfile-which-perl libtext-diff-perl
-
-Install using yum (on Centos or similar distros):
-$ yum install perl-File-Which perl-Text-Diff
-
-or Install using perl's CPAN:
-$ sudo cpan install Text::Diff File::Which
-
-or on Cygwin (MS-Windows), install with apt-cyg:
-$ apt-cyg install perl-File-Which perl-Text-Diff
-
-==============
-
How to update the feisty meow codebase to the latest online version
This assumes that a somewhat current version of feisty meow is already
==============
-How to install the build dependencies for feisty meow
-
-These dependencies are used for building the applications, tools and tests
-in the "nucleus", "octopi", "graphiq" and other C++ collections.
-
-| Ubuntu / Debian:
-| $ sudo apt install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev
-
-| Centos / Redhat / Fedora:
-| $ sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel
-
-The "kona" collection depends on Java version 8 or better.
-
-| Ubuntu:
-| Set up the java PPA archive as described here:
-| https://launchpad.net/~webupd8team/+archive/ubuntu/java
-
-==============
-
How to build the feisty meow codebase
Run the following command to build the feisty meow libraries and applications.
==============
+Manual Installation Steps:
+
+How to install the feisty meow script dependencies...
+
+A couple of perl modules are required by some of the scripts (including the
+differ utility and the feisty meow customization system). They can be
+installed with either apt or CPAN.
+
+Install using apt (on Ubuntu or Debian-based OS):
+$ sudo apt install libfile-which-perl libtext-diff-perl
+
+Install using yum (on Centos or similar distros):
+$ yum install perl-File-Which perl-Text-Diff
+
+or Install using perl's CPAN:
+$ sudo cpan install Text::Diff File::Which
+
+or on Cygwin (MS-Windows), install with apt-cyg:
+$ apt-cyg install perl-File-Which perl-Text-Diff
+
+How to install the build dependencies for feisty meow...
+
+These dependencies are used for building the applications, tools and tests
+in the "nucleus", "octopi", "graphiq" and other C++ collections.
+
+| Ubuntu / Debian:
+| $ sudo apt install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev
+
+| Centos / Redhat / Fedora:
+| $ sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel
+
+The "kona" collection depends on Java version 8 or better.
+
+| Ubuntu:
+| Set up the java PPA archive as described here:
+| https://launchpad.net/~webupd8team/+archive/ubuntu/java
+
+==============
+
================================================================\n\
"
+####
+
+# this group is for hierarchies which we expect to have a stable name.
+
#hmmm: don't fail if the hierarchy doesn't exist.
# high priority stuff would be called urgent.
####
-# vocation is a prefix for anything i consider part of my life's work.
-analyze_by_dir_patterns "life's work and other oddities" $CLOUD_BASE/vocation*
+# this group is found based on matching a pattern, since we may not use a single
+# standardized name for it, or maybe there are prefixes for similar items (like project-).
# scan all the items declared as active projects.
analyze_by_dir_patterns "active issues" $CLOUD_BASE/*active*
-# rub alongside all the travel notes to see if any have interesting burrs.
-analyze_by_dir_patterns "travel plans" $CLOUD_BASE/walkabout*
+# vocation is a prefix for anything i consider part of my life's work.
+analyze_by_dir_patterns "life's work and other oddities" $CLOUD_BASE/vocation*
# scan across all appropriately named project or research folders.
analyze_by_dir_patterns "running projects" $CLOUD_BASE/*project* $CLOUD_BASE/*research*
# look for our mad scientist style efforts.
analyze_by_dir_patterns "lab experiments" $CLOUD_BASE/*experiment*
+# we also are running some businesses. get those notes in.
+analyze_by_dir_patterns "business ops" $CLOUD_BASE/*business*
+
+# find any charity actions that need to be taken.
+analyze_by_dir_patterns "charitable" $CLOUD_BASE/*charit*
+
+# rub alongside all the travel notes to see if any have interesting burrs.
+analyze_by_dir_patterns "travel plans" $CLOUD_BASE/*travel*
+
# snag any work related items for that category.
analyze_by_dir_patterns "jobby work tasks" $CLOUD_BASE/job*
# scan all the trivial project folders.
analyze_by_dir_patterns "trivialities and back burner items" $CLOUD_BASE/trivia* $CLOUD_BASE/backburn*
+# okay, fudge. if there are game tasks, then count them too. what are they, nothing? not so.
+analyze_by_dir_patterns "play time and games" $CLOUD_BASE/*gaming* $CLOUD_BASE/*game*
+
+####
+
full_report+="================================================================\n\
"
full_report+="$(format_report_line "$total_overload" "$total_weight" "$total_complexity" "total overload")"
define_yeti_alias cp='\cp -i -v'
define_yeti_alias del='perl $FEISTY_MEOW_SCRIPTS/files/safedel.pl'
define_yeti_alias deltree='perl $FEISTY_MEOW_SCRIPTS/files/safedel.pl'
-define_yeti_alias df='\df -mh'
+define_yeti_alias df='clean_df -h'
define_yeti_alias dir='perl $FEISTY_MEOW_SCRIPTS/files/summing_dir.pl'
define_yeti_alias du='\du -h'
define_yeti_alias erase='perl $FEISTY_MEOW_SCRIPTS/files/safedel.pl'
define_yeti_alias halt='sudo shutdown -h now'
define_yeti_alias i=inventory
define_yeti_alias l='perl $FEISTY_MEOW_SCRIPTS/files/summing_dir.pl'
+define_yeti_alias larch='list_arch'
define_yeti_alias ll='ls_dot_add=-a perl $FEISTY_MEOW_SCRIPTS/files/summing_dir.pl'
define_yeti_alias ls='ls -HhFC $color_add'
define_yeti_alias lsd='ls -hl'
{
to_find="$1"; shift
local WHICHER="$(\which which 2>/dev/null)"
+#>&2 echo "got whicher as: $WHICHER"
if [ $? -ne 0 ]; then
# there is no which command here. we produce nothing due to this.
echo
+ return 2
fi
- echo $($WHICHER $to_find 2>/dev/null)
+ local sporkenz # must be defined local here, before call, or we don't get exit value?!
+ sporkenz=$($WHICHER "$to_find" 2>/dev/null)
+#>&2 echo "broken with this line, but here is exit val: $?"
+ local err=$?
+#>&2 echo "got whicher as: $WHICHER"
+ echo $sporkenz
+ return $err
}
# makes a directory of the name specified and then tries to change the
function ssh()
{
local args=($@)
- # we remember the old terminal title, then force the TERM variable to a more generic
- # version for the other side (just 'linux'); we don't want the remote side still
- # thinking it's running xterm.
- save_terminal_title
-
-#hmmm: why were we doing this? it scorches the user's logged in session, leaving it without proper terminal handling.
-# # we save the value of TERM; we don't want to leave the user's terminal
-# # brain dead once we come back from this function.
-# local oldterm="$TERM"
-# export TERM=linux
-
+ save_terminal_title # remember the current terminal title.
/usr/bin/ssh -C "${args[@]}"
-# removed -Y flag because considered dangerous to trust remote hosts to not abuse our X session.
-
-# # restore the terminal variable also.
-# TERM="$oldterm"
+#hmmm: removed -Y flag because considered dangerous to trust remote hosts to not abuse our X session.
+ restore_terminal_title
+ }
+ # this version of ssh preserves the use of the -Y flag for when X forwarding is needed.
+ function yssh()
+ {
+ local args=($@)
+ save_terminal_title # remember the current terminal title.
+ /usr/bin/ssh -Y "${args[@]}"
restore_terminal_title
- if [ ! -z "$DEBUG_FEISTY_MEOW" ]; then
- echo TERM title restored to prior value
- fi
}
##############
bash $FEISTY_MEOW_SCRIPTS/core/reconfigure_feisty_meow.sh
echo
# force a full reload by turning off sentinel variables and methods.
- unset -v CORE_VARIABLES_LOADED FEISTY_MEOW_LOADING_DOCK USER_CUSTOMIZATIONS_LOADED
+ unset -v CORE_VARIABLES_LOADED FEISTY_MEOW_LOADING_DOCK USER_CUSTOMIZATIONS_LOADED \
+ BUILD_VARS_LOADED
unalias CORE_ALIASES_LOADED &>/dev/null
unset -f function_sentinel
+
+ # reuse the original path if we can.
+ if [ ! -z "$FEISTY_MEOW_ORIGINAL_PATH" ]; then
+ export PATH="$FEISTY_MEOW_ORIGINAL_PATH"
+ fi
+
# reload feisty meow environment in current shell.
log_feisty_meow_event "reloading the feisty meow scripts for $USER in current shell."
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
{
count=$1; shift
if [ -z "$count" ]; then
- count=79
+ count=$(($COLUMNS - 1))
fi
echo
local i
- for ((i=0; i < $count - 1; i++)); do
+ for ((i=0; i < $count; i++)); do
echo -n "="
done
echo
##############
# space 'em all: fixes naming for all of the files of the appropriate types
- # in the directories specified.
+ # in the directories specified. we skip any file with a dot in front, to
+ # respect their hidden nature. currently the set of files we'll rename is
+ # very boutique; it's in this function, and just happens to be the types of
+ # files we work with a lot.
function spacemall() {
local -a dirs=("${@}")
if [ ${#dirs[@]} -eq 0 ]; then
#hmmm: any way to do the below more nicely or reusably?
#hmmm: yes! a variable with a list of files that are considered TEXT_FILE_EXTENSIONS or something like that.
#hmmm: yes continued! also a variable for BINARY_FILE_EXTENSIONS to avoid those, where we need to in other scripts.
+#hmmm: wait, we actually have a mix here, since this is a renaming function and not a searching function; get it straight!
+#hmmm: would the composition of those two types of extensions cover all the files i want to rename? they have to be "important".
find "${dirs[@]}" -follow -maxdepth 1 -mindepth 1 -type f -and -not -iname ".[a-zA-Z0-9]*" | \
grep -i \
-"csv\|doc\|docx\|eml\|html\|jpeg\|jpg\|m4a\|mov\|mp3\|ods\|odt\|pdf\|png\|ppt\|pptx\|rtf\|txt\|vsd\|vsdx\|wav\|xls\|xlsx\|xml\|zip" | \
+"csv\|doc\|docx\|eml\|html\|jpeg\|jpg\|m4a\|mov\|mp3\|odp\|ods\|odt\|pdf\|png\|ppt\|pptx\|rtf\|txt\|vsd\|vsdx\|wav\|xls\|xlsx\|xml\|zip" | \
sed -e 's/^/"/' | sed -e 's/$/"/' | \
xargs bash "$FEISTY_MEOW_SCRIPTS/files/spacem.sh"
# drop the temp file now that we're done.
#Usage: sw_vers [-productName|-productVersion|-buildVersion]
osname="$(sw_vers -productName 2>/dev/null)"
osver="$(sw_vers -productVersion 2>/dev/null)"
+#echo "osname = '$osname' and osver = '$osver'"
if [[ "$osver" =~ ^10\.15.*$ ]]; then
codename="Catalina"
elif [[ "$osver" =~ ^10\.14.*$ ]]; then
codename="Mojave"
elif [[ "$osver" =~ ^10\.13.*$ ]]; then
codename="High Sierra"
- elif [[ "$osver" =~ ^11\.*$ ]]; then
+ elif [[ "$osver" =~ ^11\..*$ ]]; then
codename="Big Sur"
- elif [[ "$osver" =~ ^12\.*$ ]]; then
+ elif [[ "$osver" =~ ^12\..*$ ]]; then
codename="Monterey"
else
codename="$(sw_vers -buildVersion 2>/dev/null)"
--- /dev/null
+#!/bin/bash
+
+# tells the caller if the feisty_meow scripts have been initialized
+# successfully or not, as far as we can tell.
+# any parameter passed will cause us to go into debugging mode.
+
+do_debug="$1"; shift
+
+if [ \
+ -z "$FEISTY_MEOW_APEX" -o \
+ -z "$CORE_VARIABLES_LOADED" -o \
+ -z "$FEISTY_MEOW_LOADING_DOCK" \
+ ]; then
+ if [ ! -z "$do_debug" ]; then
+ echo "Bailing out because a crucial Feisty Meow initialization variable is missing."
+ fi
+ exit 1
+fi
+
+# we got through the minimal gauntlet, so claim we're initialized.
+if [ ! -z "$do_debug" ]; then
+ echo "Looking good for every Feisty Meow initialization variable that we check."
+fi
+exit 0
+
+
##############
+# first step--capture the current path if we haven't already.
+if [ -z "$FEISTY_MEOW_ORIGINAL_PATH" ]; then
+ export FEISTY_MEOW_ORIGINAL_PATH="$PATH"
+fi
+
+##############
+
# this script cannot handle figuring out where it lives, so approaches that
# get the THISDIR will fail. this is a consequence of this always being used
# in bash's 'source' directive, which does not pass the script name as
# this is our single entry point we can use without knowing any variables
# yet in the initialization process.
export FEISTY_MEOW_LOADING_DOCK="$HOME/.zz_feisty_loading"
- #hmmm: the above is kind of a constant. that's not so great.
+#hmmm: the above is kind of a constant. that's not so great.
# make sure our main variables are established.
FEISTY_MEOW_VARIABLES_LOADING_FILE="$FEISTY_MEOW_LOADING_DOCK/fmc_variables.sh"
--- /dev/null
+#!/bin/bash
+
+# this is the feisty meow host preparation script. it installs all the packages required to run and build feisty meow scripts and applications.
+# this script may still be a bit incomplete; we definitely use a lot of unix and linux tools in different scripts.
+
+# preconditions and dependencies--this script itself depends on:
+# feisty meow
+# bash
+# anything else?
+
+####
+
+# something borrowed...
+function exit_on_error() {
+ if [ $? -ne 0 ]; then
+ echo -e "\n\nan important action failed and this script will stop:\n\n$*\n\n*** Exiting script..."
+ error_sound
+ exit 1
+ fi
+}
+
+####
+
+# load feisty meow environment here, but first test that we *can* load it.
+
+#hmmm: currently, this script needs the system to have already been configured?
+# that's the implication of calling launch_feisty...
+# can we find that same bootstrapping code that will reconfigure first?
+#more about this...
+# hmmm: we need clean starty type approach! must not expect feisty to already be configured for use!
+# e.g.?? $ bash /opt/feistymeow.org/feisty_meow/scripts/core/reconfigure_feisty_meow.sh
+# hmmm: above ALSO ESSENTIAL TO GET RIGHT!
+
+PHASE_MESSAGE="Checking integrity of Feisty Meow subsystem"
+if [ -z $FEISTY_MEOW_APEX ]; then
+ false; exit_on_error $PHASE_MESSAGE
+fi
+
+# simple brute force check. can we go there?
+pushd $FEISTY_MEOW_APEX &> /dev/null
+exit_on_error locating feisty meow top-level folder
+popd &> /dev/null
+
+# now ask feisty if it's there; should work as long as our scripts are in place.
+bash $FEISTY_MEOW_APEX/scripts/core/is_feisty_up.sh
+exit_on_error $PHASE_MESSAGE
+
+# standard load-up.
+#hmmm: this will currently fail if reconfigure has never been called.
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
+
+####
+
+# first the crucial bits for scripts to work...
+
+PHASE_MESSAGE="installing perl file and diff modules"
+
+# ubuntu or debian or other apt-based OSes...
+if whichable apt; then
+ sudo apt install libfile-which-perl libtext-diff-perl
+ exit_on_error $PHASE_MESSAGE
+# rpm based with yum available...
+elif whichable yum; then
+ sudo yum install perl-File-Which perl-Text-Diff
+ exit_on_error $PHASE_MESSAGE
+# macos based...
+elif [ ! -z "$IS_DARWIN" ]; then
+
+#hmmm: not quite right yet...
+ brew install blah blah? lots?
+ exit_on_error $PHASE_MESSAGE
+
+# windows-based with cygwin (or we'll fail out).
+elif [ "$OS" == "Windows_NT" ]; then
+
+#hmmm: install apt-cyg!
+# we need this to do the following step, so why not automate that?
+# can we at least check for the packages we absolutely need?
+
+#hmmm: can we bootstrap and still survive on the basic cygwin modules if already installed?
+# then we could use our huge list to get the rest!
+
+#hmmm: is there any other way to get the missing ones, that we need for apt-cyg?
+
+ apt-cyg install perl-File-Which perl-Text-Diff
+ exit_on_error $PHASE_MESSAGE
+fi
+
+####
+
+# then the builder packages...
+
+PHASE_MESSAGE="installing code builder packages"
+
+# ubuntu or debian or other apt-based OSes...
+if whichable apt; then
+ sudo apt install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev
+ exit_on_error $PHASE_MESSAGE
+# rpm based with yum available...
+elif whichable yum; then
+ sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel
+ exit_on_error $PHASE_MESSAGE
+# macos based...
+elif [ ! -z "$IS_DARWIN" ]; then
+
+#hmmm: not quite right yet...
+ brew install blork blork? lots?
+ exit_on_error $PHASE_MESSAGE
+
+# windows-based with cygwin (or we'll fail out).
+elif [ "$OS" == "Windows_NT" ]; then
+
+#hmmm: unknown list needed still...
+ apt-cyg install fugazi combustinatorinibasil scampnific
+ exit_on_error $PHASE_MESSAGE
+fi
+
+####
+
+# install other external packages and whatnot.
+
+#hmmm: anything else to get installed?
+ #hmmm: java?
+ #hmmm: python?
+ #hmmm: perl itself!?
+
+
+####
+
+# get ready to finish up.
+
+#...finishing steps... if any.
+
+# all done now.
+exit 0
+
+####
+
+
+#############################
+#scav line
+#############################
+
+The "kona" collection depends on Java version 8 or better.
+| Ubuntu:
+| Set up the java PPA archive as described here:
+| https://launchpad.net/~webupd8team/+archive/ubuntu/java
+
+#not needed at the moment.
+#echo "bailing because script is immature. farts!"
+#exit 1
+
# does the updating thing on the new tiny flat drive that for a while was serving the ps4 shuttle service but now is an honest ext4 drive.
define_yeti_alias update_slimpickenz='source "$FEISTY_MEOW_SCRIPTS/archival/general_updater.sh"; update_archive_drive "/media/fred/slimpickenz"'
+# another drive to update; this is a salvaged 5 tb drive.
+define_yeti_alias update_flabtastic='source "$FEISTY_MEOW_SCRIPTS/archival/general_updater.sh"; update_archive_drive "/media/fred/flabtastic"'
# moo and unmoo mount the local folders i use most.
#no longer used. we are doing mostly full directory stores without nfs mounts these days.
# these are my personal overrides. --fred.
if [ -z "$USER_CUSTOMIZATIONS_LOADED" ]; then
- # if we don't see the nethack variable defined, this probably hasn't run yet.
+ # if we don't see the customizations variable defined, this probably hasn't run yet.
+
+ # stuff our special bins in front of the other bin paths.
+ export PATH=/usr/local/fred/bin:$PATH
# The nuage directory is a cloud-like repository of our personal data, managed as a git repo.
export CLOUD_BASE=$HOME/nuage
--- /dev/null
+#!/bin/bash
+
+# backs up the uva onedrive folder (which itself is fed from the cloud).
+
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
+
+pushd ~/data
+exit_on_error changing to data folder.
+
+zip -r ~/onedrive_backup_uva_$(date_stringer).zip onedrive-uva-live -x \*.ova -x \*.webarchive
+exit_on_error zipping up the uva onedrive folder.
+
+
+popd
+
+
--- /dev/null
+#!/bin/bash
+
+# so simple but very handy; drops any partitions that we don't care about before showing the df listing.
+
+\df -h "${@}" | grep -v "loop\|udev\|tmpfs"
--- /dev/null
+#!/bin/bash
+
+# find last written files, made friendly for dell by avoiding the .clusterConfig directory.
+
+for pathname in "${@}"; do
+
+ echo ==============
+ echo latest on path: $pathname
+ echo
+
+ find "$pathname" -path "$pathname/.clusterConfig" -prune -o -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head -n 20
+
+ echo; echo
+
+done
+
# where we store the binaries used for building the rest of the code base.
export CLAM_BINARIES="$RUNTIME_PATH/clam_bin"
- # the final destination for the new binaries which provide the hoople
+ # the final destination for the new binaries which provide the
# build with all the applications it needs to get going.
export TARGETS_STORE="$RUNTIME_PATH/binaries"
# targets directory is meaningful to clam, which will use it for output.
export PLAYCMD=/usr/bin/play
if [ ! -f "$PLAYCMD" ]; then
- PLAYCMD=echo
+ PLAYCMD='echo Unknown sound player...'
fi
-if [ ! -z "$(psfind artsd)" ]; then
- # we see artsd running...
+if [ ! -z "$(which afplay)" ]; then
+#echo we see afplay available...
+ PLAYCMD=afplay
+elif [ ! -z "$(psfind artsd)" ]; then
+#echo we see artsd running...
PLAYCMD=artsplay
elif [ ! -z "$(psfind esd)" ]; then
- # we see esd running...
+#echo we see esd running...
PLAYCMD=esdplay
elif [ ! -z "$(psfind pulseaudio)" ]; then
- # we see pulse running...
+#echo we see pulse running...
PLAYCMD="padsp aplay"
elif [ ! -z "$WINDIR" ]; then
- # kludge for win32; we provide our own sound player.
+#echo kludge for win32; we provide our own sound player.
PLAYCMD=playsound
else
echo "I don't know how to play sounds for this OS and sound system."
# the maximum depth that the recursive functions will try to go below the starting directory.
export MAX_DEPTH=5
+# the name of our "don't check this stuff in" file.
+export NO_CHECKIN=".no-checkin"
+
# use our splitter tool for lengthy output if it's available.
if [ ! -z "$(whichable splitter)" ]; then
TO_SPLITTER="$(whichable splitter)"
nicedir=$(\pwd)
fi
local blatt_report="echo -ne \nchecking in '$nicedir'... "
- local tell_no_checkin="echo -ne \nskipping check-in due to presence of .no-checkin sentinel file: $nicedir"
+ local tell_no_checkin="echo -ne \nskipping check-in due to presence of $NO_CHECKIN sentinel file: $nicedir"
pushd "$directory" &>/dev/null
#hmmm: overly elaborate sections below here, but we do want precise handling for git case.
if test_writeable "CVS"; then
do_revctrl_simple_update "$directory"
exit_on_error "updating repository; this issue should be fixed before check-in."
- if [ -f ".no-checkin" ]; then
-# echo -ne "\nskipping check-in due to presence of .no-checkin sentinel file: $directory"
+ if [ -f "$NO_CHECKIN" ]; then
+# echo -ne "\nskipping check-in due to presence of $NO_CHECKIN sentinel file: $directory"
$tell_no_checkin
else
$blatt_report
if test_writeable ".svn"; then
do_revctrl_simple_update "$directory"
exit_on_error "updating repository; this issue should be fixed before check-in."
- if [ -f ".no-checkin" ]; then
-# echo -ne "\nskipping check-in due to presence of .no-checkin sentinel file: $directory"
+ if [ -f "$NO_CHECKIN" ]; then
+# echo -ne "\nskipping check-in due to presence of $NO_CHECKIN sentinel file: $directory"
$tell_no_checkin
else
$blatt_report
# take steps to make sure the branch integrity is good and we're up to date against remote repos.
do_revctrl_careful_update "$(\pwd)"
- if [ -f ".no-checkin" ]; then
-# echo -ne "\nskipping check-in due to presence of .no-checkin sentinel file: $directory"
+ if [ -f "$NO_CHECKIN" ]; then
+# echo -ne "\nskipping check-in due to presence of $NO_CHECKIN sentinel file: $directory"
$tell_no_checkin
else
$blatt_report
pushd "$directory" &>/dev/null
# only update if we see a repository living there.
- if [ -f ".no-checkin" ]; then
- echo -ne "\nskipping reporting due to presence of .no-checkin sentinel file: $directory"
+ if [ -f "$NO_CHECKIN" ]; then
+ echo -ne "\nskipping reporting due to presence of $NO_CHECKIN sentinel file: $directory"
elif [ -d ".svn" ]; then
# this action so far only makes sense and is needed for svn.
bash $FEISTY_MEOW_SCRIPTS/rev_control/svnapply.sh \? echo
#!/bin/bash
-# burns a bluray disc image onto a physical medium.
+# burns a bluray or dvd data disc image onto a physical medium.
+
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
function show_usage()
{
#used to be appended to above line: -speed=2
#trying with letting it go default speed. has been working for us recently.
+exit_on_error growing ISO FS from image ${iso_name}
+
#!/bin/bash
+# make a dvd data disc image suitable for burning on bluray.
+
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
+
function show_usage()
{
echo "This script needs two parameters, (1) an ISO file to create, and"
genisoimage -r -J -joliet-long -o "$iso_name" "$folder_name"
+exit_on_error generating ISO image from folder ${folder_name}
+
#!/bin/bash
+# makes a playable dvd movie disc image from a folder.
+# the folder has to contain a ripped and decrypted DVD.
+
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
+
function show_usage()
{
echo "This script needs two parameters, (1) an ISO file to create, and"
mkisofs -dvd-video -o "$iso_name" "$folder_name"
+exit_on_error making ISO filesystem from folder ${folder_name}
#!/bin/bash
+# displays every certificate in a PEM file that has a whole certificate chain.
+# this is surprisingly annoying to get anything to output, so we codified it.
+
+# by chris koeritz
+
file="$1"; shift
if [ -z "$file" -o ! -f "$file" ]; then
echo This script requires a PEM-format file name to show the certificates within.
--- /dev/null
+#!/bin/bash
+
+# returns an error value if reboot IS required due to some recent
+# updates. otherwise returns a normal zero exit value indicating
+# that things are peachy.
+
+if [ -f /var/run/reboot-required ]; then
+ echo 'reboot required'
+ exit 1
+fi
+exit 0
+
+#hmmm: add other OS versions, e.g.
+# redhat/centos: $ needs-restarting -r ; echo $?
+# shows if needs to be rebooted and returns an error if does need reboot
+#
--- /dev/null
+
+calibre:
+ current go-to choice for ebook viewer on linux.
+
+
+ k3b is good for ripping+converting cd audio to mp3 or other formats.
++ asunder is a great ripper for CDs and supports a lot of output formats.
+
+ for lossless music compression, the flac and shorten (shn) formats are
-very nice. there are some canonical tools for each platform for these.
+ very nice. there are some canonical tools for each platform for these.
+ for converting from ogg and such to mp3 and m4a and such, use the
-gnome tool called 'soundconverter'.
+ gnome tool called 'soundconverter'.
++ musicbrainz provides a freedb style gateway for looking up albums, artists and songs...
+ https://wiki.musicbrainz.org/History:FreeDB_Gateway
+ use this instead of the old freedb URL:
+ http://freedb.musicbrainz.org:80/~cddb/cddb.cgi
++ gnudb: works in apps that need exact old freedb format, had more success
+ in asunder with gnudb
+ => gnudb.gnudb.org 8880
--------------------------------
music library manager and player
--------------------------------
+ lollypop is our current choice for managing a large music library and
-playing back songs in it.
+ playing back songs in it.
+ banshee used to be our app of choice for managing our music library, but it
-seems to no longer be updated.
+ seems to no longer be updated.
---------------------------------
+ for dvd processing, vobcopy is a must.
+ for dvd playing and ripping in general, decss is needed.
-it's available in the restricted packages on ubuntu.
-lots of articles describe how to set that up.
+ it's available in the restricted packages on ubuntu.
+ lots of articles describe how to set that up.
+ vlc is a good player for dvds.
audacity is the go-to tool for ripping music from vinyl records
and many other audio toaster processes:
-http://www.audacityteam.org/
+ http://www.audacityteam.org/
this article helps a lot to get the music off of vinyl records using a usb turntable:
-https://www.linux.com/news/using-usb-turntable-linux
+ https://www.linux.com/news/using-usb-turntable-linux
----------------
----------------
avidemux:
-if you need to manipulate a video, for example to rotate it or transcode it to a different
-format, then avidemux works great.
+ if you need to manipulate a video, for example to rotate it or transcode it to a different
+ format, then avidemux works great.
openshot:
-if you need to jam a bunch of videos together, crossfade them, and that kind of stuff,
-then try openshot. it also supports simple saving with different quality levels, which
-lets you drop a bunch of size at the expense of the picture. sometimes needed.
+ if you need to jam a bunch of videos together, crossfade them, and that kind of stuff,
+ then try openshot. it also supports simple saving with different quality levels, which
+ lets you drop a bunch of size at the expense of the picture. sometimes needed.
---------------------------
music collection management
---------------------------
dupeguru:
-found this to be pretty helpful in finding my duplicate songs. it is able to analyze
-when the files are the same, even if their names don't match.
-check: did it even compare by metadata? not remembering currently.
+ found this to be pretty helpful in finding my duplicate songs. it is able to analyze
+ when the files are the same, even if their names don't match.
+ check: did it even compare by metadata? not remembering currently.
fdupes:
-another useful tool for finding duplicate tracks in a music collection, but relies on exact
-matches in the names(?). was not so powerful as dupeguru, but still useful.
+ another useful tool for finding duplicate tracks in a music collection, but relies on exact
+ matches in the names(?). was not so powerful as dupeguru, but still useful.
-----------------------------
-----------------------------
shotwell:
-currently the top picture manipulation and manager tool i use at home.
-the imaginations folder is based on the date management in shotwell.
+ currently the top picture manipulation and manager tool i use at home.
+ the imaginations folder is based on the date management in shotwell.