WTF Bites
-
-
script will also nuke said file from orbit and install the default one (without asking, of course).
Yeah, they're definitely doing it wrong if the package provides a defaults file that it does not require you to rename or otherwise template off of in order to avoid this exact thing. The defaults file is either merely a sample and not used, or otherwise tells you "hey fucker, you want different settings? Put a file in the .d folder for the service to configure Shit"
-
-
@dkf No, seems to be a binary protocol. The other ones like STOMP do have a websocket plugin, this does not.
Websockets do binary frames too. My main use of them does that; I already had a custom binary packet-oriented protocol so it was a perfect choice. The result is neat, and very anti-javascript at the same time (because of how they botched auth) so that's great!
STOMP is a protocol on top of websockets that uses text frames containing JSON. It seems to then use a pub-sub system on top of that. It didn't solve my problems so I didn't look further.
-
You know it is bad when you have one "service" that needs PHP, Java and C# all at the same time.
I should have called that a Frankenservice.
-
Isnât that the argument for microservices though? You design each one to use best fit for job, and as long as they talk to each other via cromulent APIs, itâs fine?
-
@Bulb It seems that HAProxy can do SNI-based routing - though I only found it in HAProxy's Enterprise documents. The "free" ones are a mess - they don't even contain a simple: "Here's how a simple proxy config should look like."
Didn't find a similar setting for nginx.
-
@Arantor That's the flip side of microservices: If you implement them on vastly different techs, when you deploy the whole thing you have to install all these techs and either invest in lots of hardware or pray that they play well with each other on the same machine.
-
@Bulb It seems that HAProxy can do SNI-based routing - though I only found it in HAProxy's Enterprise documents. The "free" ones are a mess - they don't even contain a simple: "Here's how a simple proxy config should look like."
Didn't find a similar setting for nginx.
Traefik can do it. The config is a PITA and the error messages often semi-quasi-helpful but it's quite powerful.
-
@LaoC Thanks. I'll try HAProxy first as the config seems to be pretty straightforward (ignoring the docs)
edit: But since I currently have two servers I can use for this, I'll try Traefik on the other.
-
In that case the person is sleeping on the ... uh, job
There seems to be a pandemic of sleeping on the job going on (for quite a while already, but it's getting progressively worse).
You say that like it's a bad thing.
-
@boomzilla But will outcompete everyone of us. Just because of his .
-
You design each one to use best fit for job, and as long as they talk to each other via cromulent APIs, itâs fine?
That's all fun until you find that the author of the front-end javascript that bound everything together was assuming that they could just transparently cross-call between all of them, when browsers had decided that that was a really nasty security hole and blocked it hard...
-
See I thought microservices were all supposed to be deployed via something like Docker or service fabric so that you wouldnât care about local environments too hard, and that the interconnect wasnât usually the browser.
But I fear I may have been accidentally exposed to competence in the fieldâŚ
-
But I fear I may have been accidentally exposed to competence in the fieldâŚ
It's always tremendous being Customer #2.
-
I may have been accidentally exposed to competence
Don't worry; I'm sure it will never happen again.
-
@HardwareGeek indeed.
-
@Tsaukpaetra said in WTF Bites:
script will also nuke said file from orbit and install the default one (without asking, of course).
Yeah, they're definitely doing it wrong if the package provides a defaults file that it does not require you to rename or otherwise template off of in order to avoid this exact thing. The defaults file is either merely a sample and not used, or otherwise tells you "hey fucker, you want different settings? Put a file in the .d folder for the service to configure Shit"
Debian package manager provides logic that installs the default config files at initial installation, but on upgrade it will only replace them if you didn't touch them in between and lets you choose if you did. And all it takes to use it is to put the names of those files in the appropriate list. The monkey that put together the abovementioned package was apparently incapable of doing even that.
-
@dkf No, seems to be a binary protocol. The other ones like STOMP do have a websocket plugin, this does not.
MQTT is also binary and does have a websocket plugin. And I remember seeing a guide telling you to just slap a generic websocket proxy in front of the AMQP port if you want that. So the only reason it does not have websocket encapsulation is that nobody cared enough yet.
I also noticed that the Azure hosted event service, which uses AMQP 1.0 (a completely different protocol from AMQP 0.9.1 that is default in RabbitMQ), does also have a simple switch to turn on websocket encapsulation.
@Bulb No,
Stream
is on port 5552 by default - it's not AMQP but a bit different.Ah, different just because. I noted it mentions they are AMQP queues though.
@Bulb It seems that HAProxy can do SNI-based routing - though I only found it in HAProxy's Enterprise documents. The "free" ones are a mess - they don't even contain a simple: "Here's how a simple proxy config should look like."
I believe Traefik does. () At least it implements the relevant part of the Kubernetes Gateway API, which is why I already considered switching to itâbecause we do have a RabbitMQ, using the normal AMQPs, and might want to actually multiplex it for multiple hosts on the same public IP address.
Didn't find a similar setting for nginx.
There is some effort for implementing the Gateway API for nginx too, but it was well behind in it last time I looked.
-
MQTT
Is that the protocol where you get 100xp for each message successfully sent, but if you roll two 1s in a row on a send check your server self immolates?
-
-
@HardwareGeek said in WTF Bites:
your server self immolates?
That depends. Is it a Tesla server?
The other question - is @Tsaukpaetra near by?
-
@dcon any HCF-compliant architecture can do this from rings < 0.
-
public void DoStuff(string aParameter) { try { [do stuff] } catch(Exception e) { throw new Exception("DoStuff failed"); } }
So, this is how 'standing on shoulders of giants' feels like.
-
@MrL my condolences for the brain cells you may lose trying to stand on those shoulders.
-
So, this is how 'standing on shoulders of giants' feels like.
Let's have Kevin refactoring this for us.
public bool DoStuff(string aParameter) { try { [do stuff] return true; } catch(Exception e) { LastError="DoStuff failed"; return false; } }
HTH
-
@BernieTheBernie The call site must be doing:
if (! DoStuff("...")) throw new Exception("");
-
As I assume the server just threw a 500. Um... That's not what a 500 means, Asus.
Edit: Also, as the URL gets changed you can't refresh to try and reload. And because how the Asus support site is built, the back button takes you back to the search page, not to the product you were looking at.
-
@Atazhaia Someone
assbuttumed that a 500 could only ever mean that.
-
Thinking to do a casemod for storage server and found something that could potentially be mounted inside it to hold harddrives.
16-Slot HaRddrivehoLder 3.5 Rustpr HaRddrivehoLder PC Classic IrOn HDD Stackingfa for 12 Cm FaNs A
With the following features:
- 3.5 storage compartment for external harddrive
- puts over
- 3.5 harddriveholder 16 slots
- Observe: Harddrives included .
- Size: 45,5X14X12,8CM (including curling)
Awesome!
-
@Atazhaia Someone
assbuttumed that a 500 could only ever mean that.But why would it even ever mean that?
-
@Atazhaia Someone
assbuttumed that a 500 could only ever mean that.But why would it even ever mean that?
Rumor has it Jeff is back, so why don't you ask?
-
But why would it even ever mean that?
500 is served from the front-end server, not the back end one that it proxies, and they've noticed that when things are down there's a 500.
Why would it be down?
Scheduled Maintenance! That's the only possible reason!
I'll make the change to the front end. [Subtext: so I can take my time bringing the back-end back online.]
-
Fucking hell.
So there is a vendor I am dealing with whereby I need to go to their portal, so the email told me.
I didnât remember where the portal was so I searched my email for âvendor name portalâ, got their intro email, hit the link, went to log in⌠nope. Forgot password? Nope.
Wrong portal.
So I Google âvendor name portalâ, get the right portal, where my browser saved my credentials, it accepts username/password, then asks for 2FA code via SMS.
I have previously ticked âremember this browserâ on the 2FA code screen in the vain hopes it actually would, but never does.
Today I donât bother ticking that, application shits itself with an unhandled IIS/ASP.NET exception about the value being null.
The vendor has had complaints about this shit before, including from me, but they keep using it. STG I could write a better one in Laravel in a few weeks for them.
-
-
@Zerosquare said in WTF Bites:
I didn't know Ikea sold IT equipment.
When I need USB cable (esp. Lightning), Ikea is the place to buy it. It is possible to find a cheaper one online, but the delivery times are often quite bad. Also, guinea pigs love them (which is why I need to buy new ones semi-regularly).
-
So, this is how 'standing on shoulders of giants' feels like.
Since everything is relative, how does it feel being 2 microns taller?
-
I have previously ticked âremember this browserâ on the 2FA code screen in the vain hopes it actually would, but never does.
att.com
?
-
-
@BernieTheBernie The call site must be doing:
if (! DoStuff("...")) throw new Exception("");
That's not Kevin style.
if (!(Dostuff("...")||Dostuff("...")||Dostuff("..."))) { LastError="Failure"; return false; }
-
@Zerosquare said in WTF Bites:
how does it feel being
2 micronstaller?Obviously the caffeine hasn't kicked in...
-
@Kamil-Podlesak said in WTF Bites:
@Zerosquare said in WTF Bites:
I didn't know Ikea sold IT equipment.
When I need USB cable (esp. Lightning), Ikea is the place to buy it. It is possible to find a cheaper one online, but the delivery times are often quite bad. Also, guinea pigs love them (which is why I need to buy new ones semi-regularly).
Why are your guinea-pigs on a USB line? Why haven't you considered Wireless Guinea Pigs? Or did they eat your wifi cables?
-
I created a Moodle plugin to delete old courses.
The task often fails with the same error message about some argument that can't be null.I traced the error to a plugin that listen for the course_deleted event.
Good, at least the error is not in my codeThis piece of code will delete all Outlook events that are related to the course, for each user.
the apiclient's delete_event function is
the second argument must be a string.
Let's look at the function that retrieves the upn
wait a sec...
Of course, this plugin is part of the O365 plugin suite.
Microsoft
-
@TimeBandit That is Consistent Inconsistency, isn't it?
-
@TimeBandit said in WTF Bites:
I created a Moodle plugin to delete old courses.
@TimeBandit, tomorrow:
Looks like I forgot to initialize the maximum age threshold, and it defaulted to zero. Also, the last working backup is 3 years old.
-
@Zerosquare I'll just blame Microsoft
-
public void DoStuff(string aParameter) { try { [do stuff] } catch(Exception e) { throw new Exception("DoStuff failed"); } }
So, this is how 'standing on shoulders of giants' feels like.
The code successfully snatches defeat from the jaws of victory (so close to being actually useful: if only it added the parameter and inner exception).
-
As I assume the server just threw a 500. Um... That's not what a 500 means, Asus.
Edit: Also, as the URL gets changed you can't refresh to try and reload. And because how the Asus support site is built, the back button takes you back to the search page, not to the product you were looking at.
And again. Damn, the people running the Asus support site are busy adding service enhancements. Every time I access it will inevitably go into maintenance!
-
Every time I access it will inevitably go into maintenance!
Maybe they just don't want to help you
-
I have previously ticked âremember this browserâ on the 2FA code screen in the vain hopes it actually would, but never does.
att.com
?No, some portal involving my lawyers.