Note to readers: Be aware that when reading the comments, there are people who are literally paid to defend judges by the government (this is not even a secret). Be skeptical, especially if they post anonymously.
One of the most interesting things about the 11th Circuit lately seems to be their willingness to intentionally misapply the law and ignore precedents. One would hope that judges would apply that law neutrally and to all facts, but it seems that they are only interested in gamesmanship. Don't have an expensive lawyer? Get bullshitted.
Supreme Court says the rule that courts can't address a merits issue before finding jurisdiction is "inflexible and without exception" in Ruhrgas AG v. Marathon Oil Company? Ignored by the 11th Circuit. Come on now, the whole "inflexible and without exception" thing should really be taken a bit more seriously, don't you think?
But the 11th Circuit willfully defies the Supreme Court on this issue, and can't bother to overrule themselves. Probably because they don't want everyone to know the 11th Circuit is full of idiots who don't keep up with new Supreme Court cases. Well, seems they are. Not only are they just plain wrong & stupid, but they're exceeding their legal authority to issue judgment, because you know, that's what "jurisdiction" actually means? Seems this went over their heads. And let me put some names to shame here: Charles R. Wilson, James Larry Edmondson, and Frank M. Hull. All of whom are apparently senile.
Some interesting quotes from the Supreme Court:
While some of the above cases must be acknowledged to have diluted the absolute purity of the rule that Article III jurisdiction is always an antecedent question, none of them even approaches approval of a doctrine of “hypothetical jurisdiction” that enables a court to resolve contested questions of law when its jurisdiction is in doubt. Hypothetical jurisdiction produces nothing more than a hypothetical judgment–which comes to the same thing as an advisory opinion, disapproved by this Court from the beginning. Muskrat v. United States, 219 U.S. 346, 362 (1911); Hayburn’s Case, 2 Dall. 409 (1792). Much more than legal niceties are at stake here. The statutory and (especially) constitutional elements of jurisdiction are an essential ingredient of separation and equilibration of powers, restraining the courts from acting at certain times, and even restraining them from acting permanently regarding certain subjects.
Justice Stevens’ arguments contradicting all this jurisprudence–and asserting that a court may decide the cause of action before resolving Article III jurisdiction–are readily refuted. First, his concurrence seeks to convert Bell v. Hood, 327 U.S. 678 (1946), into a case in which the cause-of-action question was decided before an Article III standing question. Post, at 7—8, n. 8. “Bell,” Justice Stevens asserts, “held that we have jurisdiction to decide [whether the plaintiff has stated a cause of action] even when it is unclear whether the plaintiff’s injuries can be redressed.” Post, at 7. The italicized phrase (the italics are his own) invites the reader to believe that Article III redressability was at issue. Not only is this not true, but the whole point of Bell was that it is not true. In Bell, which was decided before Bivens v. Six Unknown Fed. Narcotics Agents, 403 U.S. 388 (1971), the District Court had dismissed the case on jurisdictional grounds because it believed that (what we would now call) a Bivens action would not lie. This Court held that the nonexistence of a cause of action was no proper basis for a jurisdictional dismissal. Thus, the uncertainty about “whether the plaintiff’s injuries can be redressed” to which Justice Stevens refers is simply the uncertainty about whether a cause of action existed–which is precisely what Bell holds not to be an Article III “redressability” question. It would have been a different matter if the relief requested by the plaintiffs in Bell (money damages) would not have remedied their injury in fact; but it of course would. Justice Stevens used to understand the fundamental distinction between arguing no cause of action and arguing no Article III redressability, having written for the Court that the former argument is “not squarely directed at jurisdiction itself, but rather at the existence of a remedy for the alleged violation of … federal rights,” which issue is “‘not of the jurisdictional sort which the Court raises on its own motion.’ ” Lake Country Estates, Inc. v. Tahoe Regional Planning Agency, 440 U.S. 391, 398 (1979) (Stevens, J.), (quoting Mt. Healthy Bd. of Ed. v. Doyle, 429 U.S. 274, 279 (1977)).
Justice Stevens also relies on National Railroad Passenger Corp. v. National Assn. of Railroad Passengers, 414 U.S. 453 (1974). Post, at 8—9. But in that case, we did not determine whether a cause of action existed before determining that the plaintiff had Article III standing; there was no question of injury in fact or effectiveness of the requested remedy. Rather, National Railroad Passenger Corp. determined whether a statutory cause of action existed before determining whether (if so) the plaintiff came within the “zone of interests” for which the cause of action was available. 414 U.S., at 465, n. 13. The latter question is an issue of statutory standing. It has nothing to do with whether there is case or controversy under Article III. 2Much more extensive defenses of the practice of deciding the cause of action before resolving Article III jurisdiction have been offered by the courts of appeals. They rely principally upon two cases of ours, Norton v. Mathews, 427 U.S. 524 (1976) and Secretary of Navy v. Avrech, 418 U.S. 676 (1974) (per curiam). Both are readily explained, we think, by their extraordinary procedural postures. In Norton, the case came to us on direct appeal from a three-judge District Court, and the jurisdictional question was whether the action was properly brought in that forum rather than in an ordinary district court. We declined to decide that jurisdictional question, because the merits question was decided in a companion case, Mathews v. Lucas, 427 U.S. 495 (1976), with the consequence that the jurisdictional question could have no effect on the outcome: If the three-judge court had been properly convened, we would have affirmed, and if not we would have vacated and remanded for a fresh decree from which an appeal could be taken to the Court of Appeals, the outcome of which was foreordained by Lucas. Norton v. Mathews, supra, at 531. Thus, Norton did not use the pretermission of the jurisdictional question as a device for reaching a question of law that otherwise would have gone unaddressed. Moreover, the Court seems to have regarded the merits judgment that it entered on the basis of Lucas as equivalent to a jurisdictional dismissal for failure to present a substantial federal question. The Court said: “This disposition [Lucas] renders the merits in the present case a decided issue and thus one no longer substantial in the jurisdictional sense.” 427 U.S., at 530—531. We think it clear that this peculiar case, involving a merits issue dispositively resolved in a companion case, was not meant to overrule, sub silentio, two centuries of jurisprudence affirming the necessity of determining jurisdiction before proceeding to the merits. See Clow, 948 F.2d, at 627 (O’Scannlain, J., dissenting).
[...]
In any event, the peculiar circumstances of Avrech hardly permit it to be cited for the precedent-shattering general proposition that an “easy” merits question may be decided on the assumption of jurisdiction. To the contrary, the fact that the Court ordered briefing on the jurisdictional question sua sponte demonstrates its adherence to traditional and constitutionally dictated requirements. See Cross-Sound Ferry Servs., Inc. v. ICC, 934 F.2d, at 344—345, and n. 10 (Thomas, J., concurring in part and concurring in denial of petition for review).
And
See Northwest Airlines, Inc. v. County of Kent, 510 U.S. 355, 365 (1994) (“The question whether a federal statute creates a claim for relief is not jurisdictional”)"
Sen. Kamala Harris (D-Calif.) and Rep. Jerry Nadler (D-N.Y.) are teaming up on legislation to reform the nation’s marijuana laws and help victims of the War on Drugs, which disproportionately hurts communities of color.
The bill, titled the Marijuana Opportunity Reinvestment and Expungement Act, would decriminalize cannabis and require expungement of prior marijuana-based convictions on the federal level. Such proposals have been floated in the past and are supported by lawmakers on both sides of the aisle.
Kamala Harris, Jerry Nadler Introduce Bill To Decriminalize Marijuana
I've been prototyping agricultural lights. The prototype design uses a laptop power supply, a colander, an ice cream tub and about 240 5mm circular LEDs. They look terible but they're really cheap to make because the power supply costs more than all of the other components. The prototype only consumes about 5 Watts of electricity. Given that the LEDs are about 30% efficient, that is about 1.5 Watts of visible light. That's completely inadequate for use as a grow light. However, it is sufficient for domestic lighting and other uses. It is also sufficient to develop the design further. Most importantly, the prototype currently lacks safety features. I also want to add networking. Although, after obtaining preliminary feedback from experts, LTS [Long Term Support] for networking isn't good and may be restricted to 9600 Baud serial.
Two of these lights were shipped to an agricultural/environmental gathering/conference hosted by Mitch Altman. There was space in the middle of two facing colanders for a spherical cow plushie. This invocation of rubber chicken protocol trivially confirmed delivery of the lights.
Before sending the prototype lights to the conference, I hawked the prototypes around my local lighting and hydroponic shops. The response was wholly underwhelming. At the lighting shop, before I had removed a prototype from a bag while asking "Would you be interested in a...", the first impression led to the terse response of "Nah." At my two nearest hydroponic shops, enthusiasm was also lacking, although I got as far as demonstrating powered lights to the owner each shop. In response to variable brightness LEDs, one said "They all do that." However, feedback was vaguely useful because one suggested researching the McCree curve and the other advised against working on yet another proprietary network protocol. Apparently, over the last four years, at least one protocol per year was commercialized before it failed. With the recent increase of Internet connected devices, I suspect that the quantity of failed protocols is greatly accelerating.
Hydroponic retailers are also underwhelmed by equipment which compliments natural sunlight and doesn't require any configuration beyond physical installation.
I sent extensive documentation to the conference and it is quite obviously written before I got feedback. Regardless, it describes the design with sufficient detail to maintain it or reproduce it. It also includes a large amount of speculation including ideas for a significantly larger version, a significantly smaller version and use of the agricultural lighting on an industrial scale in conjunction with other equipment. This is a tidied and hyperlinked version:-
#### Augmented Light Controller ####
==== Rationale ====
It is possible to boost plant growth with artificial light. This is prohibitively expensive for low value plants. It is especially expensive to grow illegal plants in a sealed environment in which natural light is completely absent. Methods to reduce cost include stealing electricity and use of sustainable energy.
Sustainable energy is popular because it allows "off grid" use. Furthermore, sustainable energy largely moves the unit cost of energy to the initial cost of installing hydro-electric, wind or solar collection. Although efficiency may decline over multiple years, replacement systems are increasingly efficient.
Indeed, after many decades of pioneering such systems, we are now at the knee of the curve where the collection, transportation, storage and usage of electrical energy at a domestic scale now exceeds 5% total efficiency. With improvements to solar panels and LEDs, total system efficiency may exceed 20% by 2050. This would allow "off grid" farming up to the Arctic Circle with less than 100m2 of solar panels per adult (and considerably less in tropical regions).
A neglected method of reducing energy consumption is augmenting natural light with synthetic light. Although C3 and CAM plants happily thrive on 2kW/m2 of light, there are advantages to staggering and extending the duration of light. To minimise damage to plants (for example, from lensing of dew on plant leaves), it is desirable for an augmented light cycle to lead or lag the natural light cycle. This is implemented with custom software running on fairly generic hardware.
[Diagram omitted. Graph of brightness over time. Bell curve (in pale red) "Natural Light" overlaps with bell curve (in pale green) "Synthetic Light". Sum of curves (in pale yellow) "Total Light".]
==== Implementation ====
---- Hardware ----
Circuitry is implemented on 5cm×7cm prototyping boards. Each light has one controller board and three LED boards. The 18×24 holes at 0.1 inch spacing are barely sufficient to host 12 strings of up to eight 5mm LEDs in series. (One row and column is unused.) This is achieved with triangular packing and (nominally) two heights of LEDs. Strings are arranged as pairs (which mostly work) and everything is powered from a replacement Sony laptop power supply which provides a regulated, unisolated, switched mode supply of 19.5 Volts. It is strongly recommended that a power supply targets an older laptop. New laptops require less Voltage than old laptops. However, energy efficiency can be maximised by minimising Voltage drop. Therefore, it is convenient to obtain a "replacement" power supply for an old laptop.
Use of a switched mode power supply is not suitable for agricultural use where water and electricity are often mixed inadvertently. However, it is suitable for further development.
Empirically, the 19.5 Volt supply is sufficient to power eight red LEDs, eight orange LEDs, seven yellow LEDs, seven olive/gallium green LEDs, seven gallium blue LEDs and/or six pink/purple LEDs. Presumably, infra-red, ultra-violet and white LEDs can be deployed in similar quantities.
[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Two columns each have eight pale red circles. Subsequent pairs of columns each have seven or six pale circles and end with dashed circle outlines which raise the total in each column to eight.]
Each of the three LED wafers are soldered with common anode. Channels across all wafers are gated with 2N2222A transistors with current limiting resistors to Port D of a DIP [Dual In-line Package] Atmel ATMEGA328P. (Wiring/Arduino pins D0-D5.) The remainder of Port D, is connected to an LDR [Light Dependent Resistor] and a switch. Fly leads for the LDR and switch are quite fragile. Use of tack or tape is strongly recommended to provide strain relief.
Although D0 and D1 may be used with the micro-microtroller's dedicated UART rather than power switching, use of D0-D7 is more convenient on a small board. In the medium term, multiple channels of a custom wire protocol are required. This is not satisfied by reserving two UART pins.
At present, it is significantly more important that the micro-controller's dedicated I2C pins are not obstructed. This allows the least obstruction when experimenting with I2C thermometers. This is intended to ease implementation of thermal shutdown.
[Diagram omitted. Circuit diagram/block diagram has 20V and 0V rails. "Voltage Regulator" connects to both rails and "Micro-Controller" which connects to "Sensors". 20V rail connects to six strings of LEDs (in pastel rainbow) which connect to a diagonal of six NPN transistors which connect to "Micro-Controller" and 0V rail.]
With the current arrangement, one binary input is trusted and this input is used to switch all power. It is extremely bad practice to trust inputs in this manner.
An example of this practice is Toyota's accelerator pedal where two potentiometers were connected with a SIP [Single In-line Package] connector wired as ground, power, pot, pot, power, ground. Unobstructed paths and the use lead-free solder allows formation of tin whiskers. A tin whisker between power and ground quickly resolves itself. A tin whisker which gangs potentiometers effectively halves their resistance. A tin whisker between Voltage sense and the power rail spuriously indicates full acceleration.
Another example of this practice is the anti-stall system in a Boeing 737 Max. This was only connected to one of the two air speed sensors. Erroneous readings from a faulty sensor were not ignored but prevented an aircraft from gaining height. This led to two crashes and 346 fatalities.
The lighting controller should not be scaled without safeguards. The current implementation is for development of such safeguards.
---- Low Voltage Power Regulation ----
Power regulation is rather arcane and may be skipped.
[Diagram omitted. 10 pin ICSP connector and 6 pin ICSP connector commonly used with Atmel products.]
An Atmel ATMEGA328P (with optional six pin ICSP [In Circuit Serial Programming] connector) obtains a lesser Voltage via an LM317T. This controller board is suitable to drive six channels up to 800mA per channel at 30V. Future iterations of this design will push to envelope to 1.1A per channel at 48V.
The use of an LM317T variable Voltage regulator was a failed test. A series of floating Voltage regulators may power a micro-controller directly from mains electricity. Unfortunately, this requires a very large number of passive components. Furthermore, it is extremely inefficient with energy because the majority is wasted as heat. A further failure was the attempt to use an LM317 with an NE555. Use of a 555 usually indicates use of a dumb, stock circuit or something smart. An accepted use of a 555 is to only use its internal resistors. This potential divider circuit has the properties of matched values and close thermal coupling.
[Diagram omitted. Diagram of 555 containing potential divider connected to three external lines. Remaining 2/3 of block hatched with text "Other Stuff".]
Specifically, if a resistor value drifts due to Joule heating, the others rapidly follow due to their proximity. This occurs regardless of current flowing through each resistor. Unfortunately, a 555 fails to work with a 317 because a 317 specifically limits current to a maximum of 100µA while re-injecting it to the floating output. This specifically requires low value resistors otherwise the derived reference exceeds range and no Voltage regulation occurs. A dimensional analysis of current multiplied by resistance is Voltage. The current is drawn from the potential divider and cannot be sunk. Indeed, this is not desirable because it is not energy efficient. Unfortunately, the current drawn by the 317 and the resistance provided by the 555 leads to a value which is useless. Therefore, the devices are incompatible.
---- Metal Chassis ----
All hardware is mounted with electrical insulation in a metal chassis with ventilation grills. Specifically, the LED wafers are mounted in a triangular formation around the edge of a Poundland cooking colander and the insulation is cut from white plastic Sainsbury vanilla ice cream tubs. Although this looks laughably amateur, it is only intended to boot-strap a more serious design. The total BOM [Bill Of Materials] per light is approximately £16 (US$22). Of this, the 90 Watt PSU is £9.49 (US$14) and may be shared among multiple lights.
It is possible to mount six or more LED wafers in a colander. However, when a colander is mostly covered with LEDs, the reflective property of the colander is under-utilised.
Mirror image wafers were implemented with the intention of simplifying soldering. However, the lack of rotational symmetry is quite jarring. Therefore, mirror image wafers have been discontinued.
[Diagram omitted. Circle containing central block, three surrounding blocks with rotational symmentry and three dashed outlines which would form six way rotational symmetry. Peripheral blocks are wired to central block with rainbow lines.]
During use, LED wafers get quite warm; presumably about 40°C during sustained use. Thermal expansion and proximity of LEDs on wafers leads to cracking noises. In future iterations, LM75A I2C temperature sensors (with accuracy ±2°C) will be mandatory within each LED cluster. AVR micro-controllers also have a temperature sensor within the analogue section but the accuracy is only ±10°C. Other micro-controllers may not have a temperature sensor of any form.
---- Firmware ----
12 bit PWM [Pulse Width Modulation] with granularity of 1µs (cycle time of approximately 120Hz) is implemented across six channels in software. Although the target hardware provides PWM on some channels, software portability is paramount. Although development has greatly benefited from the idiot-proofing of the AVR processor architecture, it is significantly cheaper to deploy firmware on WCH's 8051 micro-controllers, such as a CH340 or CH554 (the infamous 25¢ micro-controller). This reduces micro-controller cost by a factor of 30 or 40.
A POST [Power-On Self Test] fades all channels from minimum to maximum in sequence. Modifications to this sequence will provide firmware version identification. Additional channels were planned for diagnostic lights. However, the main six channels have been sufficient for this task. For example, while diagnosing a compiler bug, one channel was used to provide indication of a bounds check. Underflow was displayed as 10Hz flashing with 1/3 duty ratio and Overflow was displayed as 10Hz flashing with 2/3 duty ratio. If this is not sufficient, a debug string can be emitted in Morse code.
The main algorithm maintains a delta summation (increments/decrements) as a 32 bit variable. Due to one of many compiler bugs in GCC 4.8.1 cross-compiling from armv6t to AVR, it was not possible to implement the 32 bit value as a global variable. Therefore the Wiring/Arduino loop() hook-back maintains state within its own endless loop. Other compiler bugs include -O3 eliminating endless loops and multiple calls from main() to loop().
Summation is used to implement an approximation of colour temperature by stepping through a rainbow of six colours and pulsing zero or one of the channels. This is intended to lag behind natural light by approximately four hours. It is also intended to moderately amplify a change of season. Therefore, plants boosted with augmented light should continue flower and fruit with the natural season.
In normal operation, the augmented light controller produces no visible output for the first hour of operation. This is correct behaviour but is quite tedious when testing. Therefore, a switch has been provide which accelerates the summation process by a factor of 240. (Four minutes are compressed to one second.) During daylight, this allows confirmation of LDR position within 20 seconds. It also allows the augmented light cycle to be manually advanced after installation or power failure.
Ensure that the LDR does not receive direct or reflected rays from any augmented light otherwise the light controller will be locked in an undesirable feedback loop where lights correctly switched on but never switched off.
Given that the rainbow of LEDs provide spectral peaks at 30nm or so throughout the human visible spectrum of light, it is possible to replace the firmware and generate arbitrary spectral peaks with the same hardware. When combined with A/B testing, it is possible to determine the most energy efficient lighting for different species of plants. This information may used to modulate augmented light output. Given that the six or more identified variants of chlorophyll are typically most sensitive to red and blue, it is expected that yellow, green and purple may be reduced but not eliminated.
It is unlikely but other arrangements of colour may be more suitable for agriculture. Cool white plus red and blue provides a generic base for agricultural lighting but re-emission of photons to provide a broad spectrum of yellow is not the most energy efficient arrangement. It also creates an unwanted spectral peak around green, blue or purple which may disrupt plant life-cycle.
[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Pairs of columns represent red, white, blue, red, white, blue.]
---- Code Quality ----
Firmware is developed with the Wiring/Arduino digital I/O API. However, it is not linked, tested or deployed with the standard Wiring/Arduino LGPL library. The code quality of this library is objectively awful. As an example, digitalWrite() is slow and bloated due to indexing three look-up tables; one of which has 16 bit values. This requires adding a value to a base pointer then left shifting by one bit and then adding the value to another base pointer. Clearing a bit also requires inverting a value obtained from a table. In all cases, this can be reduced to accessing two of three tables with no shifts or inversions.
As a further example, pinMode() uses a macro from Arduino.h which uses pointer arithmetic. This is contrary to the MISRA standard which was originally developed to improve code quality in the automotive industry but is now used in other critical industries, such as aerospace and healthcare. Although agriculture is relatively dull compared to these industries, there is no excuse for lax practice which needlessly increases MTBF [Mean Time Between Failure].
Agricultural lighting may cause electrical fire. In a domestic environment, this may lead to homelessness. In many cases this reduces crop yield. It is for this reason that good practices will be followed rigidly. This includes watchdog timers, thermal shut-down, parity checks, strong CRCs, static analysis, assertions, fuzzing, redundant sensors, two phase commits and hardware interlocks.
==== Other Applications ====
Six channels of lights may be arranged as two redundant sets of three channels or three redundant sets of two channels.
---- Stage Lighting ----
Two sets of RGB [Red, Green, Blue] LEDs may provide arbitrary colour for stage lighting. This is most useful if the lighting controller works with a communication protocol, such as DMX.
[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Pairs of columns represent red, green, blue, red, green, blue.]
---- Home/Office Lighting ----
If power output is restricted to half of the maximum, it is possible to control three sets of warm white and cool white LEDs in a pleasing manner. Specifically, colour temperature can be set independently of brightness. This allows home or office lighting to minimise sleep disruption. This may be set with switches and/or dials, set automatically via an LDR and/or configured via a network communication protocol.
[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Pairs of columns represent cool white, warm white, cool white, warm white, cool white, warm white.]
---- Industrial/Event Lighting ----
Dumb arrangements of cool white light are typically used for flood lighting. This is not the most energy efficient arrangement. This is especially true if LEDs are retro-fitted to legacy light sockets. On large structures (bridges, tall buildings) systems using 370VDC are common to minimise Voltage drop across long spans of wiring. However, many of these systems would benefit from using narrow bands of LEDs to further improve efficiency.
==== Regulations =====
The light controller has been developed in anticipation of laws within multiple jurisdictions. The majority of competing designs do not fulfill these obligations.
---- Colour Rendering Index ----
European regulations require certain categories of lighting to attain 80% accurate illumination compared to sunlight. In the long term, this is likely to be raised to 90% and then 95%. CFL [Compact Fluorescent] lighting does not meet this requirement. White LEDs do not meet the long term objective either.
Test wafers have low chromatic coherence. Specifically, shadows have two rainbow fringes. However, sunlight also has low chromatic coherence due to white hot sunlight being split into direct yellow light (with a dark purple shadow) and indirect blue. Some experimental lights use nano-particles to simulate this scattering.
---- Right To Repair ----
Right To Repair legislation is intended to counter planned obsolescence, abandonware, proprietary lock-in, pollution and landfill of working electronics and frustration of customers who are unable to adapt or repair their own equipment. Proposed European regulations will ensure that all LEDs in luminaires can be replaced. This is vehemently opposed because it would eliminate the majority of products from the European market.
---- Recycling ----
Electronics manufacturers within Europe are required to pay towards disposal. If a minimal amount of electronics is manufactured (determined by weight), a flat fee is payed. This is believed to be £35 per year for one tonne or less of electronics. Larger quantities incur larger fees and the responsibility to accept returns. Although the regulation appears to be comparable to Data Protection costs and obligations, the fee is payed to a private contractor. In the UK, RecoLight has the majority of the market. However, recycling of LEDs is currently quite crude. Currently, boards are ground to dust and the dust is heated to extract gallium and other useful material. This is quite energy intensive but less intensive or damaging than mining more minerals.
==== Future Development ====
---- Network Communication Protocol ----
A 256 bit cell network protocol is being developed. It is intended to be a slow-speed ATM Lite protocol which can be implemented in the firmware of an 8 bit micro-controller. Specifically, it should be possible to implement an eight port network switch using a micro-controller with 2KB RAM. The use of cell networking (rather than packet networking) allows packets of arbitrary size to be switched. Indeed, using AAL5 (commonly used to implement PPPoE or PPPoA over ATM) or similar, it is possible to switch 9KB Ethernet jumbo frames via a micro-controller with 2KB RAM. Optimal choice of 32 bit CRC raises maximum packet size to almost 13KB.
In terms of the OSI seven layer network stack, layer one and layer two are implemented although efficiency improvements are desirable so that more throughput may be obtained with cheap, slow micro-controllers.
Many network communication protocols operate as an open loop or provide minimal signal integrity. Lighting controllers are intended to provide reliable operation in conjunction with water pumps or other equipment by implementing a protocol similar to XA distributed transactions.
---- Nybble Virtual Machine ----
The target architectures have a 16 bit address space. Up to 56KB may be EEPROM or OTP [One Time Programmable] EPROM although many of these options are more expensive than 256KB of paged serial EEPROM and a 32 bit micro-controller.
As a contingency, a 32 bit stack based virtual machine with 4 bit instructions requires 2KB ROM. This allows up to 60 kilo-nybbles of code to be distributed without external storage and/or paging. Unfortunately, nybble code runs with significant performance and energy penalty compared to native code. Until a nybble compiler is written, it also requires writing an application in nybble assembly.
Regardless, it has several desirable features which makes it suitable for extended functionality. It works on most micro-controllers supported by GCC. It has better code density than x86. It is fast enough to implement software only PWM for lights and servos. It is fast enough to process network buffers and implement network switch routing. It is also possible to have multiple virtual machines within one micro-controller. One possible arrangement is a virtual router for the other virtual machines.
At present, this functionality will not be used. However, the option exists to make extreme manufacturing savings or add significantly more features. Indeed, confidently having the option to compact code and/or virtualise functionality may defer or avoid such necessity.
---- Industrial Agriculture ----
A six channel lighting controller is sufficient to develop an industrial version which may switch up to 3kW of LEDs with energy supplied from lead acid batteries, 110VAC, 220VAC or 440VAC. The toy implementation is sufficient to develop and test watchdog timers, thermal shut-down and staggered power switching co-ordinated over network.
The prototype will be re-implemented as a single-sided, copper clad, surface mount triangular wafer with an approximate length of 20cm. Six or more 48 Volt channels require 15-18 LEDs per string. This can be arranged as three sets of six clusters of LED rings in a space-filling fractal curve with three way rotational symmetry.
[Diagram omitted. Pale green triangle with 18 pale yellow circles; six per corner arranged in triangle formation, all connected in series. Magnified section shows six cricles in a circular rainbow representing LEDs. Wiring within magnified section is staggered to allow a maximum of one wire to pass between LEDs.]
One or more of these wafers may be bolted to a passive cooling chassis which optionally contains a Galvanically isolated, continuous mode Çuk transformer which is intended to operate safely at 100% humidity. To minimise signal noise, the transformer and LEDs will pulse at a common multiple of 50Hz and 60Hz. Transformer switching and power factor management may use an optically isolated channel from a micro-controller (which also functions as a network switch for the wafers). Obviously, power management requires a hardware interlock to ensure safe operation and boot-strap to power the micro-controller.
Customers may wish to use branded LEDs, such as Nichia, Cree, whatever Philips is this week - and all of the second tier brands. This may require replacing all of the LED surface mount pads in CAD software. Hopefully, this process is compatible with dumb auto-routing of the LED strings.
---- The Square Kilometre Problem ----
When designing an industrial network, people typically sketch tiers of network protocol (often including Ethernet and RS-485) without consideration of cost, bandwidth, long-term reliability or availability of parts. Systems involving radio communication often have no consideration for power, scale or security.
These approaches are wrong. Instead, a cost effective system can be obtained by considering an infinite plane of agricultural lights, water pumps, nutrient pumps and moisture sensors being used indefinitely. Horticulturists tend to be very practical people who have no time for infinities. Thankfully, an infinite plane of hydroponics can be approximated with a practical example. Some of the world's largest industrial greenhouses are suitably measured in square kilometres. Anything of this scale can tiled while approximating a system with optimal TCO [Total Cost of Ownership].
Assuming square packing of 30cm diameter buckets with no access paths and one moisture sensor per bucket, approximately 11 million sensors are required per square kilometre. From this consideration alone, use of almost every protocol with a small address space can be eliminated unless there is bridging to a larger address space. Anything with IEEE802.15.4 header compression will also fail.
Waterproofing and connectors are a significant cost which do not depreciate with Moore's law. Use of radio is an obvious attempt to reduce the cost of connectors and corresponding water traps. However, one micro-controller may have dozens of crimped moisture sensors which do not require connectors or waterproofing. We minimise cost by minimising the spanning tree of connectors and wire. The calculation is only tempered by the practicality of installing and maintaining each cluster of moisture sensors.
Another consideration involves water tanks. Ebb and flow systems have a reservoir of water which is pumped to and from plant roots every two, three of four hours during daylight. Most of the time, the water does nothing. It is possible to multiplex the reservoir. For example, it is possible to have one tank in the middle of eight clusters of plants. This raises many questions. Does the water get pumped directly between clusters, does it go via the tank, or both? What happens if there is a leak? What happens if a pump fails? What happens if re-planting requires one section to be skipped? Can tanks be pooled together? What happens if a virus, bacteria or fungus spreads between clusters of plants or pooled tanks? The simplest arrangement is for everything to go via one independent tank. However, every variation requires MTBF calculations based upon unknown figures.
For domestic use, water may be pumped with aquarium pumps. Although these have low throughput and are irreparably damaged by sustained dry pumping, they are cheap, waterproof, work with local mains electricity and widely available. Unfortunately, aquarium pumps are unidirectional and fairly unreliable. This can be overcome by redundancy. The typical arrangement is one outbound pump back-to-back with two return pumps. This reduces probability of sustained plant root flooding due to pump failure. Pipe junction leakage is also minimised because three way cross or swept splitters are only incrementally less reliable than T or Y splitters.
To further counter unreliability of water pumping, it may be possible to monitor back-EMF of aquarium pumps. Although this does not cover all failure modes, it allows near continuous operation when using commodity parts. In all cases, it would be particularly desirable if a pump controller switched multiple sets of two, three or four mains power aquarium pumps while working autonomously with moisture sensors.
---- Lighting Over USB ----
Some companies specialise in PoE [Power over Ethernet] lighting. At launch, PoE cost US$50 per port and this excludes cabling and equipment using the port. PoE is now cheaper. However, it remains significantly more expensive than USB. PoE has advantages with span and bandwidth but these are not a concern in the majority of cases.
The reliable network protocol fits within a 24 byte packet payload. Therefore, it may be tunneled over USB. This allows the minimal implementation to be a USB dongle of the same size as a BlueTooth dongle. USB protocol allows up to 63 devices per USB host port. PCI/USB bridges and similar typically allow four ports per card to be added to a computer. Dedicated USB bridges may significantly extend the address space. Leaf nodes may be manufactured for £0.20 (US$0.30) or less.
[Diagram omitted. Green rectangle has four pin USB A connector. "Oscillator" connects to "Micro-Controller" connects to a rainbow of six LEDs. Rectangle has dimensions 18mm×11mm.]
In the minimal implementation, PWM is capped at the LED's preferred Voltage. For example, if a 3.3V blue LED is powered from 5V USB, PWM for the blue LED is limited to 66% duty ratio. PWM for a 2.7V red LED is limited to 54% duty ratio. Inputs should be transparently scaled down otherwise the spectrum will saturate in an undesirable manner.
If none of the LEDs are driven at their maximum duty ratio, it is possible to implement Charlieplexing, an awful technique, presumably implemented by someone called Charlie, in which two LEDs may be wired back-to-back and selectively driven by the differential Voltage between two micro-controller pins. This can be extended such that n pins may drive up to n(n-1) LEDs. Examples with 60 or more LEDs have been implemented. It is possible to drive six LEDs with three pins and obtain an average of 33% duty ratio.
Devices connected via any network communication protocol should remember their state of operation so that useful behaviour is observed. This requires storing one integer or a small set of flags in persistent memory (after the oscillator trim value and thermometer trim value, if any):-
State 0: Device has never been connected to a valid network. For USB devices, device has never been suitably queried by a program running on the USB host. In this case, device should run default stand-alone behaviour. For an augmented light controller, input should be taken from the LDR. Water pump controller should run a default schedule. For USB lighting, LEDs should be set to full brightness. Animatronic controller should run default program.
State 1: Device has previously been connected to a promiscuous network. Effort should be made to re-connect to network. If network is not found then operation should revert to stand-alone behaviour.
State 2: Device has previously been connected to a promiscuous network. Effort should be made to re-connect to network. Diagnostics should indicate error condition. Device does not revert to stand-alone behaviour.
State 3: Device has previously exchanged keys with a host and paired. Effort should be made to re-connect with previously trusted host. Diagnostics should indicate error condition. Device does not revert to stand-alone behaviour. Operation in this state may require switch or jumper to be set. Clearing this state may require host releasing device from pairing, removing switch or jumper or re-flashing device. For some devices, leaving this state would be regarded as tampering with security. Therefore, some devices will only work in this mode and resist casual replacement of key material.
In many common configurations, a large number of interchangeable devices may be connected to a network. However, network addressing may be relatively transient. For example, connectors may be swapped or inadvertently jostled during gardening. Furthermore, USB devices may obtain addresses in a fairly random order. This can be countered by providing a name field and/or asset tag field. This allows devices and their location to be associated with a human readable text name while allowing numeric addressing.
Where the device name field is longer than the network protocol payload, the name is sent and received in chunks. When setting a name, the obvious method is to hold intermediate chunks in RAM. However, RAM is a premium commodity within a micro-controller. Therefore, double buffering should be used within the persistent memory and a flag should be used to indicate which version is live.
Despite writing approximately 4500 words, there were a few things that I forgot to include.
Firstly, I didn't mention why I started writing my own version of the Arduino library. I erroneously thought that an Arduino Nano was supplied with a 20MHz crystal oscillator. An Atmel ATMEGA328P works quite reliably at 20MHz if it has a reliable 5 Volt supply. However, it works quite reliably over a wide Voltage range if it is only clocked at 16MHz. Indeed, I confirm widespread reports that it works outside of the range specified by the datasheet. Unfortunately, it took a while to resolve timing problems and generally get experience, confidence and a feel for the capabilities of this architecture. Essentially, I was specifying the compiler constant -DF_CPU=20000000, deploying it on a slower system and then wondering why the timing delays were out by about 25%. Duh! After reading library code, header files, disassembling code and generally being frustrated by the incomplete interrupt driven Arduino time delay code, I wrote a more portable version which should hopefully work on an 8051 and other micro-controllers. A similar situation occurred after disassembling Arduino I/O functions. The result is a smaller, faster, more portable implementation of delay(), delayMicroseconds(), pinMode(), digitalRead() and digitalWrite(). This covers a surprisingly broad range of Arduino projects and isn't subject to LGPL terms.
Secondly, the arrangement of the 16MHz crystal and decoupling capacitors adjacent to the DIP micro-controller was unconventional but quite effective. On a 0.1 inch grid, a two pin crystal with 0.2 inch spacing was placed diagonally in the X, Y and Z plane. This allows the crystal to be placed very close to the micro-controller. Relevent pins on the micro-controller are power, ground, xtal1, xtal2. Without spreading pins of the crystal, one pin is placed 0.1 inches from xtal1 and the other is placed 0.3 inches from xtal2. Decoupling capacitors are connected from each pin of the crystal to ground. The crystal sits diagonally against board and DIP socket. It provides a thermal buffer when soldering and the surrounding micro-controller pins aren't particularly obscured. Furthermore, the decoupling capacitors fill a narrow region of the board which would otherwise be unused. This arrangement looks incongruent but it is compact, reliable and practical.
Thirdly, don't buy 28 pin narrow DIP sockets. Two 14 pin DIP sockets are cheaper. That's partly why Atmel popularized a 28 pin narrow DIP format. Admittedly, it allows a DIP scale micro-controller to be manufactured with less material. However, people who buy 28 pin narrow DIP sockets are imbeciles.
I also sent source code and compiled code. License unchanged from previous iteration. The major difference is that the PWM cycle frequency has been raised from 4 seconds to approximately 120Hz. It also has a fancy power-up sequence.
begin 644 augment-light20190527.ino.gz
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
GM.X?_7GW\;24=5;]H_W?39!=D7L;^YTXK:>>K0'WO_P_,^2*)0``
`
end
Eats the same slop from the same trough
Will we ever rid ourselves of republicans and democrats? Or the financial industry that supports them?
Donald Trump and his press secretary were directly involved in discussions that led to an illegal hush-money payment to Stormy Daniels during the 2016 election campaign, according to the FBI.
A court filing unsealed on Thursday said Trump and Hope Hicks spoke repeatedly with Michael Cohen, Trump’s longterm legal fixer, in October 2016 as Daniels – also known as Stephanie Clifford – threatened to sell her story of an affair with Trump.
“I believe that at least some of these communications concerned the need to prevent Clifford from going public,” an FBI agent wrote, in an application for a search warrant.
Cohen later admitted to making payments totalling $280,000 through a shell company to buy the silence of Daniels and the former Playboy model Karen McDougal, who also alleged she had an affair with Trump.
The new disclosures raise the possibility that Hicks lied to the FBI. Hicks told an agent in an interview that “she did not learn about the allegations made by Clifford until early November 2016”, the new filings said. Hicks, who is now a senior executive at Rupert Murdoch’s Fox Corporation, has denied wrongdoing.
The filings were released at the federal court in Manhattan, where Cohen pleaded guilty last year to campaign finance and personal financial crimes. Cohen began a three-year sentence in federal prison in May this year.
Trump directly involved in talks that led to Stormy Daniels payment, FBI says
Yesterday, something extraordinary happened in the U.S. Congress. I've spent quite a bit of time over the years watching C-SPAN (I used to use it to fall asleep when I would take a nap), and I've never seen anything like this.
Congressman Emanuel Cleaver from Missouri was serving as Speaker pro tempore, which means he was effectively presiding over the House. (For those unfamiliar, it is rare for the actual Speaker of the House to preside on a daily basis. It's typically a more senior member of the majority party.) Rep. Cleaver was doing his best to adjudicate the parliamentary shenanigans of both parties during a debate over a bill to criticize Pres. Trump over recent "racist" tweets.
This is difficult in the House, as there are rules in place that say you must debate in a civil manner. You can't call the President a "racist" in open debate. You can't call other members of the House names either. A Republican stood up and yammered on while clearly implying some members of the House were "anti-American." That got objected to, but was overruled on a parliamentary technicality, so the words weren't stricken. Then our current Speaker, Nancy Pelosi, stood up and yammered on about Trump's "racist" actions. The Republicans challenged that too, and they too wanted her words stricken.
One thing you rapidly learn if you watch C-SPAN is how much time is wasted in Congress. Most of the time Congress is "in session" is wasted. Either they're engaging in parliamentary delaying tactics or other BS, or members are standing on the floor yelling at an empty chamber, hoping to get a soundbite on the evening news.
Rep. Cleaver was tired of this. He was tired of the fact that members (including both Republicans and Pelosi) were literally standing up and saying things they KNEW would draw objection for being uncivil. And after this objection was raised against Pelosi, there was an hour pause while everyone talked amongst themselves about what to do.
Cleaver climbed to the Speaker's chair again, looking like he was going to read the parliamentary ruling on whether Pelosi was out of order. Instead, he said he was "making a statement" and said:
We don't ever, ever want to pass up, it seems, an opportunity to escalate, and that's what this is. I dare anybody to look at any of the footage and see if there was any unfairness. But unfairness is not enough because we want to just fight. I abandon the chair.
He then dropped the gavel and walked off. I've never seen anything like this. I've looked up Congressional precedent, and nobody seems to think this has happened in at least the past 50 years or longer. For the presiding officer to walk off the floor in disgust at how both sides were behaving... well, it's one of the first reasonable things I've seen happen in Congress in a while. I too am a fan of civil discourse, and while some here may think the Congressional rules of decorum are overly strict, they are intended to result in at least a modicum of civility in debate.
He later released a statement on the debate:
Like the vast majority of Americans, I’ve grown increasingly frustrated with the childish rancor of our public discourse. Our inability to conduct ourselves in a civil and respectable fashion has paralyzed the most powerful government in the history of the world, and for what? A 10-second soundbite on prime time news and a few thousand twitter followers?
If this is what our government has come to, then we are in serious trouble as a nation. My frustration reflects that of my constituents and the American people as a whole. I have spent my entire life working with people of all faiths and stripes in an effort solve real-world problems with concrete solutions, but never have we been this divided and this unwilling to listen to countering opinions or accept objective truths. [...]
I have unshakeable and eternal faith in what we can accomplish as a people, but we can only overcome these challenges as a union. I truly believe American democracy is the greatest experiment ever conducted by a society. However, a house divided against itself cannot stand, regardless of how strong the foundation. I call on all of my colleagues and all of America to listen more and talk less, to show compassion for those who are in pain, and to resist the temptation to fight when others wish to escalate.
I applaud Congressman Cleaver's words and actions. I only wish this action was getting more press today. I'm fed up with both major parties' crap too. This whole session yesterday was operated as a publicity stunt by both sides, and they should be ashamed.
And, I think this is the most significant "chair abandonment" in American culture since Archie Bunker offered Sammy Davis Jr. "HIS chair" on All in the Family, with no hesitation whatsoever. That episode was also a lesson where a black man was sitting in a chair listening to a bunch of stupid white people have a debate over whether something/someone is racist too. At least that episode was funny, though. (In my opinion, one of the best episodes in television history.) Congressional irresponsibility is just shocking and sad.
If the American people were actually interested in real change, rather than the sham of our current leaders or the false promises of our President (and past Presidents), this would become a rallying point away from the two parties. #IAbandonTheChair should be a hashtag flying high as people look to third-party alternatives. But alas, this will not pass.
Sorry about the following rant, but I'm just so tired of this nonsense. For those of you who have never had to deal directly with a credit bureau, please realize how awful this can be. Be prepared for days of potential headaches.
I went to sign up for cable internet a couple days ago. It's a long story, but suffice it to say that there was already an account at my address in the name of a person who hasn't lived at this address in awhile. Fixing this would've been a pain in the past, so I've been avoiding it. But rates for internet have increased, as typical with cable internet providers every year. I thought it would be a good time to finally just close out the previous account and hopefully get an intro deal for myself in the process.
Okay, so I can't just order the service online, since an account from that company already exists at my address. I have to call and talk to a person who insists on trying to upsell me and tries to "evaluate my needs," etc. when I just know what I want and what speed I want, etc. Then I am told they need to do a credit check. I ask whether I can just put down a deposit (which has worked for me in the past with many utilities, since I don't like giving out my SS# if I don't need to), but I'm told no. I give them my SS# and DOB, and then they tell me -- they can't check my credit, because it's frozen.
Right. I remembered that then. I froze all my credit bureau accounts after the whole Equifax breach thing came out two years ago or whatever. It seemed the only reasonable way to protect myself -- plus it saves me from getting unnecessary offers for credit. I rarely open new credit accounts or loans, and I have near-perfect credit (820-840 -- when you're in that range, any little thing makes it fluctuate up and down) as I've never missed a payment on anything, have held accounts forever, never carry credit card debt, etc.
I tell the cable internet person I'll need to call them back, and try to use Experian's website to temporarily "thaw" my credit. Except their online forms don't work. I try a number of things, but it claims it can't use the info I entered, and eventually they tell me I need to MAIL a copy of the page I just navigated to, along with copies of government ID and recent bill statements, just to get a temporary "thaw," so cable internet company can run a check on my (perfect) credit report. Meanwhile, my current cable internet is supposed to be ending this weekend.
Okay, so I tried to call Experian. I get an automated system (of course), with no option to talk to a real person. There's an option about credit freezes, but it only allows me to institute a freeze. No option to request a thaw through the phone. In the past with automated phone systems, I've often found if you just stop responding, it eventually connects you to an actual person. So I waited until it gave me the menu options about five times, at which point the prompt finally changed.
"You have reached the Fraud Department at Experian. We were unable to process your information from our automated voice system. We will respond to your request, but you must enter info for the following prompts, pressing 'pound' after each entry." Okay, so I figure I've reached a system that will allow me to leave a message or maybe even eventually connect me to a human, if I just enter the info. It asks me about five questions (name, address, DoB, etc.), and I respond to each one, pressing pound afterward.
At the end of the questions, the system announces, "We will now process your request to place a Fraud Alert on your credit file. We will also send your request to place a Fraud Alert to all the other credit bureaus." It says a couple more sentences, then announces "goodbye" and the line is cut off. At no point did the system indicate I was entering information to place a Fraud Alert on my credit report. At no point did the system ask me to confirm or otherwise acknowledge that's what I wanted to do. And when it was done, it simply hung up.
From what I understand, a Fraud Alert poses little problem -- it lasts a year and just means potential creditors will often go to extra steps to verify your identity. So I suppose it may not cause problems, but I really didn't want to do this. I look online to see if I can find another number for Experian to talk to a human. I got one from a trusted consumer advocate website I know and tried that. No luck. I see a lot of other websites offering random numbers to call, but I don't trust them -- I mean, if you call a credit bureau, it will often start asking for your SS# right away. I'm certain that desperate people who want to talk to a human probably get ensnared by identity theft schemes by calling some random phone number they find online.
So I figure I'll try something else. Out of desperation, I get Equifax's customer service number, and I'm speaking with an actual person within 30 seconds of placing my call. She was very nice when I explained what happened, but they couldn't do anything at Equifax until they received a Fraud Alert report from Experian. After sighing, I finally asked, "This may be a strange request, but is there any possibility YOU have access to a phone number where I could speak to an actual human at Experian??" And, miraculously, she says yes. I jot down the number and dial it excitedly. I reach Experian, which proceeds to give me an automated message that lasts at least a minute telling me a lot of stuff I don't care enough, but then concludes with "Goodbye" and hangs up. No human.
By this point it was late in the evening last Friday. I figure maybe I'll wait and have another go on Monday: maybe someone staffs the phones during normal business hours. No luck. The first number I called still never gets to a human. The second number I got from the consumer advocate website (to reach a human) has given me a busy signal every time I've called -- at least five times today. The number Equifax gave me does the same thing it did on Friday: it gives me a long automated message and then hangs up.
(I should mention that over the weekend, I tried using the automated system online to do a credit unfreeze again, and I was able to do it this time, even though I wasn't entering any different information. Why it didn't work one day but worked the next, I don't know. So I was able to get the credit check done with the cable company.)
Finally, I give in and decide I'll have to submit written documents. I spent over an hour today writing up a letter explaining what happened, then printing and filling out a form they had, then scanning that form along with proof of ID and a recent bill to my address to verify my identity. Thankfully, it seems Experian offers a place to submit a documents online, so I figure at least I can get this to them today (rather than mailing them), and hopefully head off this whole Fraud Alert thing.
Except, after entering all the info online, collecting PDF files of all my documents, etc., the stupid online form will not accept the uploads! It says it accepts up to 5 PDFs and TIFFs up to 15 MB total. I tried a single file (around only 1 MB), different files for all the documents, etc. No dice. For the TIFFs, it says black and white only (though not for the PDFs), so I think maybe this is going to a fax machine or something and convert all my documents to black and white. (I had scanned my driver's license, etc. in color, thinking it would be better to see my ID is valid with a higher-quality color image.) But even with the black and white documents, it won't work. And, of course, just like when I tried to request the credit unfreeze online, the error message it gives has no detail, so I have no idea what's wrong other than it won't accept the documents.
I used to think cable companies had set the bar for "worst customer service," perhaps along with the hoops it can take to resolve a medical billing error. But this weekend takes the cake in terms of poor customer experience. And what can we do about this as consumers? We're at the mercy of these companies that now basically control our lives through our credit scores. Once I finally get this error resolved, I will submit complaints to as many federal and state agencies as I can think of, but it will probably do little good.
Since SoylentNews is people, it focuses a lens onto an interesting cross section of humanity. At its best and worst it reflects the most beautiful and ugliest aspects of humanity, aspects that if we look hard enough, we can see hints of in all of us. A key theme is humanity's tendencies towards tribalism. We formed a tribe united originally around the so-called Slashcott, a group of nerds sharing a common, perhaps some would say curmudgeonly, resistance to change for the sake of change, and perhaps a streak of distrust in the authority figures that were running Slashdot.
Those tendencies arguably have upsides and downsides. This stubborn strong will, combined with the natural human tendency towards tribalism, of course exhibit themselves most obviously here whenever a political thread surfaces.
This is a great community, but I am wondering whether we are sometimes a bit hard on the editors and admins of this site. I often find myself disagreeing strongly with some of their political and sometimes ethical views as I can see many others do. I know most of us like to think we're thick-skinned, but I wonder whether sometimes we should pause to think before flaming those we disagree with. Arguing these issues to solve problems or figure things out is great. When it starts to become more like venting pent up anger at one another, we should probably think twice.
Just my two cents.
I don't follow celebrities closely and it for this reason that I tend to lump them together. Of the ones that I can recall, these look similar and/or have similar names:-
Trip Through Time
The Same With Long Hair
Confusingly Bald
A Full Head Of Black Hair
If you enjoyed this, you may also enjoy:-
Edit 1: I forgot to add:-
In the comments, there are great anecodotes and suggestions:-