<div dir="ltr"><span class="gmail-im" style="font-size:12.8px"><font face="arial, helvetica, sans-serif" style="" color="#000000">Hi Rick<br><br></font></span><div><font face="arial, helvetica, sans-serif" color="#000000"><span class="gmail-im" style="font-size:12.8px">Hope you have been doing well. <br><br>Can you please tell me which one, or two of these open source application(s) <br>is / are suitable for Linux newbie? <br><br>If I don't ended up using it, I know at Least how to install it. <br><br></span><span style="font-size:12.8px">- Fresh </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Bugzilla </span><br style="font-size:12.8px"><span style="font-size:12.8px">- DokuWiki </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Drupal </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Etherpad Lite </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Gitlab </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Joomla </span><br style="font-size:12.8px"><span style="font-size:12.8px">- MediaWiki </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Moodle </span><br style="font-size:12.8px"><span style="font-size:12.8px">- osTicket </span><br style="font-size:12.8px"><span style="font-size:12.8px">- OwnCloud </span><br style="font-size:12.8px"><span style="font-size:12.8px">- phpBB </span><br style="font-size:12.8px"><span style="font-size:12.8px">- PunBB </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Redmine </span><br style="font-size:12.8px"><span style="font-size:12.8px">- ServiceDesk Plus </span><br style="font-size:12.8px"><span style="font-size:12.8px">- SugarCRM </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Trac </span><br style="font-size:12.8px"><span style="font-size:12.8px">- TWiki </span><br style="font-size:12.8px"><span style="font-size:12.8px">- WordPress </span><br style="font-size:12.8px"><span style="font-size:12.8px">- Zen Cart</span><span class="gmail-im" style="font-size:12.8px"><br><br><br>Thank you so much, <br>Denny </span></font><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Aug 16, 2018 at 3:53 PM Rick Moen <<a href="mailto:rick@linuxmafia.com">rick@linuxmafia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I recently dealt with a perplexing diagnostic problem, which I tackled<br>
stupidly for a few days, and then on account of being suddenly cluebatted <br>
solved it. Even though this has little to do with Linux, I think the<br>
story may be of interest. <br>
<br>
This is also a cautionary tale about the downside of automation:<br>
Automation when it fails will cheerfully, quietly, and efficiently kick<br>
us in the shins, every time.<br>
<br>
For those who haven't been here, my family lives on a large, 1/3 acre<br>
lot in West Menlo Park, my childhood home. Since moving back in 2006, <br>
I've reclaimed much of the lot from wildness, have a large vegetable<br>
garden, and are growing many fruit trees. As California's drought<br>
developed, though, and we were suddenly put under water rationing a<br>
couple of years back, I realised that our haphazard maze of soaker hoses<br>
would never do. In a huge rush, I replaced those with a drip irrigation<br>
system. Cutting corners to save time, I put all of the side and back<br>
yards (except the rear lawn) on a single watering run. The second<br>
watering run is the front yard, and the third (of three) is the back<br>
lawn. All three watering runs are turned off and on by standard 24VDC<br>
solenoid valves.<br>
<br>
The crowning piece of the system was/is an Arduino-based watering<br>
controller with open-source firmware, OpenSprinkler<br>
(<a href="https://opensprinkler.com/" rel="noreferrer" target="_blank">https://opensprinkler.com/</a>). Arduino boards are very basic, very<br>
low-power computers, not intelligent enough to run Linux, but extremely<br>
suitable for controlling analogue devices such as watering systems (and<br>
many more things). OpenSprinkler packages an Arduino board in a neat<br>
plastic enclosure with LCD display and control buttons, with connectors<br>
for 24VDC to control standard watering systems. You communicate from a<br>
real computer to your OpenSprinkler's admin WebUI to set up when and how<br>
much to water on each connected run, and to configure optional features<br>
like one where it gets weather reports from commercial site Weather<br>
Underground and uses that information to lengthen or shorten watering<br>
duration. It's all really cool -- and invites setting and forgetting.<br>
It's been working beautifully for some years, and among other things <br>
seemed to end the depressing syndrome of plants dying because a member<br>
of my family promised to water them and then flaked out.<br>
<br>
The latest filip added to the system was a rain detector, which is just<br>
a cheap plastic gadget you mount on the edge of your roof that collects<br>
a sample of rainfall when it occurs and alters the state (on or off,<br>
i.e., closed circuit or open) of its long 24VDC wire back to the<br>
controller computer -- signaling either 'it's rained recently' or 'sure<br>
is dry lately'. This rain detector is a bog-standard Rainbird unit from <br>
Home Depot. Specifically:<br>
<a href="https://www.homedepot.com/p/Rain-Bird-Wired-Rain-Sensor-CPRSDBEX/203829203" rel="noreferrer" target="_blank">https://www.homedepot.com/p/Rain-Bird-Wired-Rain-Sensor-CPRSDBEX/203829203</a><br>
<br>
A rain detector accessory helps prevent the absurdity of automated<br>
watering persisting during the November-April rains, so it's A Good Thing <br>
-- isn't it? <br>
<br>
The above sets the scene: Automation: yay. Because consistent<br>
watering gives better plant growth, less accidental plant murdering.<br>
<br>
<br>
<br>
About the end of July, both my mother-in-law Cheryl and I noticed that<br>
two trees in the back yard were suddenly looking shockingly parched, a<br>
fig tree and a calamansi tree. This was very puzzling because they were<br>
established, several-year-old trees that had been doing well. Also, in<br>
the side yard just outside the cross-fence, a hydrangea was suffering<br>
badly, and a nearby fern looked as if it might be dead.<br>
<br>
I was also vaguely aware that a plant in my front yard was dropping<br>
badly and one in a pot on my front porch (Helichrysum petiolare aka<br>
licorice plant) appeared to be suddenly dead. These were on a separate<br>
watering run from the others, which would have been a big, fat clue if<br>
I'd stopped to think clearly. Also, the spearmint plant on the back<br>
porch seemed to be dying back, which seemed really odd, because hardly<br>
anything can bother a mint plant.<br>
<br>
Because one of the rules about diagnosis is: distrust coincidence.<br>
It's much more common for there to be a signle underlying cause of a<br>
problem, rather than two different things suddenly going wrong at the<br>
same time.<br>
<br>
_Failing_ to apply that rule, I fell back on Drip Irrigation 101,<br>
concentrating on the distressed or dying plants/trees in the back. <br>
First, I checked that the drip-irrigation emitters weren't clogged,<br>
which one does by running a manual watering sesion for that run, and<br>
then making sure water is dripping out. I also started unburying the <br>
main drip irrigation runs from accumulated leaves and debris, and<br>
checking from end to end, to make sure silt hadn't infiltrated the<br>
watering system and clogged things. Every time I started manual<br>
watering, water was duly being delivered everywhere.<br>
<br>
I also got out a bucket and watered the distressed plants/trees twice a<br>
day, since _something_ was obviously going wrong, and it seemed to<br>
involve shortage of water, maybe, so pouring some around their rootballs<br>
appeared to be a good idea.<br>
<br>
Cheryl urged me to double the watering times everywhere. I resisted<br>
this notion for a couple of reasons. (1) Cheryl notoriously always<br>
wants to increase the water to any plant in any kind of distress without<br>
bothering to determine whether that is useful. (2) Finally, I started<br>
applying systems-level logic, what is crucial to diagnosis: _Why_ would<br>
there be a sudden need for a lot more water? This summer wasn't hotter<br>
and drier than last year's. If anything, it was less so.<br>
<br>
(Around this time, Cheryl, to give hear credit, pointed out that the<br>
rear yard's lawn was looking parched. I shrugged at the time, replying<br>
that it was normal in California for a not-very-good antique lawn to<br>
look bad in the hot days of summer, and that I didn't want to waste<br>
water on this one looking green and lush, going into August.)<br>
<br>
Suddenly, I thought about the larger problem: If not a lot-wide summer<br>
need for greater water, then what would account for all this? Any<br>
solution would need to explain problems on two separate watering runs, <br>
three if you include the lawn. I wasn't coming up with a qualifying<br>
hypothesis. The fact that manual watering sessions consistently worked<br>
fine seemed to create a baffling set of facts. The notion of _manual_ <br>
watering working great, but _automatic_ watering being disabled in error<br>
didn't occur to me. After all, automation yay.<br>
<br>
I was stumped for several more days. Every time I tested the watering<br>
system (with a manual session), it worked. So, it was fine -- wasn't<br>
it?<br>
<br>
Then, I was logging into my OpenSprinkler admin webUI yet again, and<br>
this time I looked more closely. On the main screen was a small<br>
ribbon banner, red, with the text 'Rain detected'. Um, whoops? In<br>
early August? Near Stanford? Something was very wrong.<br>
<br>
I tilted the rain detector gadget down. Had it somehow, in early<br>
August, gotten clogged with something wet? Nope. Dry.<br>
<br>
Refreshing my memory about such things, I remembered that rain detector<br>
widgets work in either of two ways: Either detected rain causes them to<br>
_open_ the 24VDC circuit (no current allowed to flow) or _closes_ the<br>
circut (current flows). The widget's package specifies which mode of<br>
operation applies, and when you connect it to the controller (such as my<br>
Arduino-based OpenSprinkler), you configure the latter to know whether<br>
the detector's going to say 'open' for rain or 'closed' for rain.<br>
<br>
Before really thinking that through, I experimentally disconnected the<br>
rain detector from its terminal on OpenSprinkler, and rebooted<br>
OpenSprinkler. From my laptop, I logged back into the admin webUI.<br>
The red 'Rain detected' banner was still there. WTF? Oh, right. This<br>
rain detector was one of the 'set an open circuit to indicate recent<br>
rain' variety. Therefore, if you simply disconnect the rain detector,<br>
but don't also update OpenSprinkler's settings to say 'You no longer<br>
have a rain detector', naturally OpenSprinkler will think it's raining,<br>
because nothing connected == open circuit.<br>
<br>
I disabled the OpenSprinkler setting for 'You have a rain detector'.<br>
The red 'Rain detected' warning banner went away.<br>
<br>
Damn, I thought: Obviously, the rain detector's circuitry failed <br>
in such a way that it got stuck showing an open circuit, the device's <br>
corpse inadvertently lying and saying 'It's still raining.' Wow, that's<br>
the worst possible hardware failure mode. I should have bought the<br>
other type of rain detector, I thought. But then, I realised that<br>
_either_ type of detector could die in a way that makes it false claim<br>
it's always raining. The other type could die in a permanently<br>
closed-circuit position.<br>
<br>
The problem with reliable operation is that you tend to rely on it.<br>
For a long time, I'd had no reason to login to the admin webUI: Why<br>
should I? The weather-responding automated watering was working<br>
beautifilly. The parts of the system I _did_ spend time worrying about<br>
were the mechanical bits: leaks cause by rodents' knawing, clogged or<br>
detached drip emitters, places I'd stupidly nicked a water feed pipe<br>
with a shove, that sort of thing.<br>
<br>
If I _had_ looked in the admin webUI, I'd maybe have noticed the red<br>
thin banner at page bottom -- or looked at the device logs and seen that<br>
sessions kept being skipped in late July on account of rain. But I<br>
hadn't, because automation yay.<br>
<br>
<br>
The losses: <br>
<br>
o We're pretty sure the calamansi tree's a goner -- the worst of this<br>
calamity.<br>
o Same with the fern.<br>
o And the licorice plant on the front porch pretty clearly isn't coming<br>
back, even though that species is drought tolerant.<br>
o The other plant in the front yard (which is planted in the ground) <br>
recovered.<br>
o The fig tree is showing ongoing small signs of life, e.g., the buds <br>
at the ends of branches are active, even though the tree lost all<br>
leaves (as did the calamansi).<br>
o The spearmint is springing back.<br>
o The lawn looks greener.<br>
<br>
Rainbird's $23 + tax junky little plastic rain sensor failing in the<br>
worst possible way at the worst time of year cost me a treasured fruit<br>
tree and a couple of nice plants -- because I relied on it, relied<br>
on the automation, and didn't check.<br>
<br>
<br>
And I re-learned that, when you're trying to diagnose a problem, you<br>
need to stop and collect all the symptoms, and not be happy with a<br>
candidate explanation unless it can explain them. All of them.<br>
<br>
As with diagnosis of computer hardware or software problems, expertise<br>
is not actually required. Observation and carefully keeping track _is_,<br>
as is consistent use of logic. Those alone can pretty much always reach<br>
the right answer.<br>
<br>
<br>
_______________________________________________<br>
conspire mailing list<br>
<a href="mailto:conspire@linuxmafia.com" target="_blank">conspire@linuxmafia.com</a><br>
<a href="http://linuxmafia.com/mailman/listinfo/conspire" rel="noreferrer" target="_blank">http://linuxmafia.com/mailman/listinfo/conspire</a><br>
</blockquote></div>