We don't have the time to sit back and let epistemic knowledge wash over us. We know more or less what needs to happen (less sunlight in, more heat out). All attempts to resolve the situation require taking some risk, and it'll be impossible to quantify all those risks until we try them.
At the risk of stating the obvious: we need to measure every weird idea we try, and do our best to isolate the variables. Easier said than done. But we broke it, it's our problem now.
Talking about humility: an excess of humility leads to fatalism. Some is good, but not too much if you want anything to happen. We're talking about fixing the ecosystem of a planet, of course it's ambitious.
We have "aggravated the situation" (as you put it) beyond recovery. Doing nothing will now surely lead to an unacceptable outcome. We are going to have to fix it, or resign ourselves to a huge shrinking of the habitable region of the planet, with the hunger/famine/war that will accompany that.
Obviously we can always make things worse. But when doing nothing is unacceptable, we have to start taking risks.
Putting aside "a space-based solar sunshade represents a technological leap forward and would be really cool" -- which I think speaks to me on an emotional level -- I do think this might be the single most powerful technological weapon we have to combat climate change.
My reasoning:
* people talk about going carbon neutral: great! But this isn't one problem, this is a thousand distinct problems. Our civilization is built on fossil fuels, and every manufacturing process, agricultural process, transportation process, etc, has to be re-invented to not be built on fossil fuels. Progress will never be as fast as we'd like on this front. We can and should push to get there (there is no good path but forward), but every new bit of news we hear out of Antarctica or Greenland should tell you that we need a longer runway.
* people talk about carbon sequestration: scaling up carbon sequestration is hard -- IMO, even with uncertainty, it feels a lot harder than blocking 1% of sunlight. There is a (semi)plausible technological path to the latter, at least. We will obviously have to keep exploring carbon sequestration in the hopes that a silver bullet emerges. But we can't count on nonexistent tech bailing us out. That's magical thinking, and one step above "thoughts and prayers". There has to be a plan in the mean time, and that plan needs to scale. We're probably going to need it.
* geoengineering with aerosols isn't just geo-engineering, it's essentially terraforming. That's a wing and a prayer, and at the scale we'd need to do it to have an impact we'd surely create some nasty unintentional consequences.
* Note: the above is an important risk calculation, because if you're ok with dumping a crapton of aerosols in the atmosphere -- as some people seem to be -- aren't we basically fine on climate already? Just do that indefinitely! Seems fine, right?
* if aerosol spam is not fine, your backup plan can only be something in space: you are here, at this pdf, at the solar sunshade. The sunshade has side effects, but they're much more palatable in my estimation -- the 1% of sunlight blocked will have the effect of making every day seem imperceptibly hazier (this was something I noticed during the 2017 solar eclipse at 50% of the sun being blocked -- seemed like a hazy day at that level of diminished sunlight. That was 50%. With the sunshade we're talking a 1% reduction to reduce the global temp by 2C.)
Aha! I was wondering where the github stars were coming from. :)
I did get a kick out of this from the OP:
> Binary: Born from YouTube compression being absolutely brutal. RGB mode is very sensitive to compression as a change in even one point of one of the colors of one of the pixels dooms the file to corruption.
It's more than youtube compression -- video compression in general wreaks absolute havoc on our meticulously arranged (and sometimes colored) pixels. It's actually pretty fun/instructive to step through the transition between (what you want to be) two distinct frames when you're trying to (ab)use video for this sort of use case -- there are segments of the frames that get correlated and "flip" together first, resulting in in-between frames that are gibberish even with a modest amount of ECC in play.
For example, you might currently be using a public/private keypair for 4096-bit RSA. That keypair (by definition) only works for the RSA key exchange algorithm. Likewise, an x22519 keypair is for the x25519 key exchange.
A sntrup761x25519 keypair will be its own thing. As an aside, a sntrup761x25519 public key will be two public keys glued together (one for each algorithm). [1] Likewise for the private key.
(one could reuse an existing x25519 keypair for the x25519 component of sntrup761x25519, but it seems like a bad idea)
I would put celery in that class of software that's good enough to be useful, but enough trouble that you'll never be truly happy with it.
We got a lot of mileage out of it (in a past life) before finally moving our job scheduling to a custom solution built on RQ. Celery caused more than a few headaches -- which is why we ditched it -- but its flexibility probably helped us scale up the service to begin with...
At the risk of being reductive: Make more of our software copyleft? Even weak copyleft?
As a thought experiment, imagine how the modern web might've played out if KHTML was released under the MIT license instead of the LGPL?
Bearing in mind: Google has other ways of controlling the market (search, android, youtube, gmail, "switch to chrome" everywhere... don't call it anti-competitive...), but they've had to work much harder to exert control than they would've -- IMO -- if blink/webkit/khtml had a more "corporate friendly" license.
Maybe I'm off base with my reasoning, but I see it as being about friction. We can't stop the inhuman profit-seeking machine from doing what it does, but we do have some (underutilized) tools to slow it down.
As far as yesterday was concerned, Edwardsville (and neighboring areas) knew they were in the line of fire by 8PM local time. The tornado hit the facility at ~8:40.
Things can get out of control quicker (15-20 minutes warning is usually as close as it gets), but I think it's definitely reasonable to suspect negligence in this instance. There are two possibilities, imo:
1. They had enough time to get people to shelter, and chose not to
2. The facility wasn't up to par
Those numbers are with the standard, fairly high ECC setting (~20% of the image) that I settled on for video-based transfer. If we want to be more aggressive and use half the error correction:
The decoder has a lot of image processing work to do (intriguingly well-suited for the GPU), and also lots of popcnts. I've optimized it a fair bit, but there's probably some tricks I still need to learn. It turns out that mobile processors don't like heat very much, and blow out their cache much quicker than you'd hope. :)
In the long run, I think your intuition is correct. The hard physics of the camera constraints (exposure time, etc) will put a hard upper bound on FPS+fidelity, and thus bandwidth.
Multiple sizes isn't a bad idea. I'm not sure I know enough about what sizes would be appropriate though. :)
Transfers getting stuck like that usually is an indication that the decoder can't reliably find the 3+1 corner pattern. I might add a toggle to the decoder app that trades speed for more reliability.
That said, there are some failure modes that are harder to fix: I had a mysteriously slow transfer that was driving me nuts, until I noticed that my mouse cursor was on top of one of the corners.
Well, as for acks specifically -- cimbar itself doesn't really need them, thanks to fountain codes [0].
But I can imagine a reverse (request?) channel being useful, if it had enough bandwidth for the desired application. :)
As /u/ggerganov notes elsewhere in this thread (with some expertise on the audio side -- I can't claim any), the bandwidth of any audio channel is probably going to be pretty bad.
edit: Notwithstanding how viable of an idea it might be, HTTP over audio+video would be pretty neat. :)
Definitely. I had to draw a line somewhere for an initial "does anyone care about this?" release, so there's some rough edges here.
There are a number of loose ends that I'd like to look into down the road, and more flexibility for different use cases is on the list.
edit: I should mention: the main reason the decoder is a native Android app and not a WebAssembly app is that decoding performance is a throughput bottleneck. I wasn't too eager to pay the wasm tax, when I wasn't sure if even native performance would be good enough. As it happens, I now think decode performance is going to be ok -- but it's still a bit of a weak spot in the scheme.
Well, there's diminishing returns in format shifting. The encoded barcode contains various types of quasi-redundant visual information (e.g. error correction codes) to allow decoding to happen, so for audio-based transfer it'd be better to skip the image encode and blast out the file directly.
That said... given the somewhat remarkable way fountain codes work, there's nothing stopping us from having a protocol that uses the audio and the video channels simultaneously for better throughput...