There are relatively few technologies that I adamently refuse to work with in the IT industry.

1. Perl. Fucking hate it. Yes, you *can* write maintainable code with it; and some libraries are surprisingly pleasant to use. Emphasis on "some". That leaves *most* in the category of "out of the question." I simply refuse to work a job where I know ahead of time I'll be using Perl.

2. Javascript in general, and Node.js in particular. Fucking hate it. It was a significant contributor to my burn-out when I worked at Rackspace.
3. **ANYTHING** involving the use of MQTT. Full #*@#%^ing stop. MQTT solves **NO NEW PROBLEMS**, and only serves to create new problems. I'm screamed about this enough here already.
4. Related to 3, **ANYTHING** involving Google IoT Core. Just about unusable for technical support on field-deployed units. Worse, a unit will be happily processing telemetry from field units, until it stops. YOU HAVE NO INSIGHT AS TO WHY. Only demonstrably correct work-around so far is to just restart the fucking software on the IoT device. NOTE: I'm *NOT* talking about reconnecting to the MQTT server. I'm talking about dropping the process dead with a sigkill and rerunning it.
Ooh, what's that? You want support to figure out what's happening that's causing IoT core to suddenly disconnect your sorry ass? Pay up, bub; that's an additional several hundred dollar a month support contract, because we know our shit is so broken, the only way we can legitimately cover support load overhead is to charge your sorry ass for it.
For the record, I petitioned my company on several things at once when we were first commissioning this new backend software stack:

1) DO NOT tie our services hard to Google's APIs.
2) DO NOT rely on MQTT. There's no reason whatsoever to not use plain, simple, well-understood HTTPS.
3) DO NOT rely on cloud services. Take it from someone who worked at a cloud provider: JUST SAY NO. Self-host your infrastructure. We don't have the scale to justify cloud services yet.
4) Use the savings from (3) above to hire more local talent.

I was shot down on every ... single ... point.

Every fucking one of them.

Now we're suffering.

Oh, I almost forgot:

5) PULL data, do not push data. Far more reliable, far more flexible, and vastly more bandwidth efficient, especially since compression of bulk data is so much more efficient than piece-meal bits of information.

@vertigo I've run into some cases where pull data was *less* efficient, just because that means you need to poll sometimes, and missing one poll cycle could cause some polls that were previously spaced out over time to come in all at once when the problem is resolved.

take masto for instance. pull federation would be a mess because you can't necessarily hold one connection open per post source at the same time. so you'll poll or flap.

everything else I'm with you 100%.

@falkreon Correct; polling is exactly how I expect things to work in this situation. Major BBS networks operated this way for decades without significant issues; in fact, it evolved that way precisely because of the pressures put on the network by large long-distance tolls and noisy communications channels. To this day, deep-space probes are polled for data, for similar reasons.

@falkreon The only sacrifice is loss of real-time response; however, when we came up with the original project vision document, we had worked on a solution to this issue that would have worked well for us. Meanwhile, we're now looking at ways of reducing our network utilization because of the excessive overheads pushing data is causing.

Honestly, that's the least of our worries right now. Right now, I need to figure out why MQTT is damn broken, b/c without that, push vs pull is irrelevant. :(

@vertigo spacecraft use store-and-forward which looks like push to the spacecraft and pull to mission control.

Early bbs's didn't have to deal with single user instances. I have no problems with rss-like systems where ordinary users pull data. Do the same thing with microservers and scaling problems start to appear.

@vertigo this thread is gold. Thank you. I feel your frustration and join you in it.

#SysadminsAnonymous #HealIT

@rysiek Long live alt.sysadmin.recovery a/k/a Scary Devil Monastary.

http://www.faqs.org/faqs/sysadmin-recovery/

@vertigo

Aalt.sysadmin.recovery FAQ v1.799999999999999998...

Aalt.sysadmin.recovery FAQ v1.799999999999999998...