atheken

joined 2 years ago
[–] atheken@programming.dev 6 points 2 years ago

Along with this, once you’ve dealt with enough kinds of problems, you end up developing an intuition for how something was probably implemented.

This can help you anticipate what features are probably included in a framework/library, as well as how likely they are to work efficiently/correctly (you know that XYZ is a hard problem vs. ABC which is pretty easy for a journeyman to get right.)

As an example, a friend of mine reported a performance issue to a 3rd-party vendor recently. Based on a little bit of information he had on data scale and changes the 3rd-party made to their query API, he basically could tell them that they probably didn’t have index coverage on the new fields that could be queried from the API. That’s with almost no knowledge of how the internals of their API were implemented, other than that they were using Postgres (and he was right, by the way).

That’s not always going to happen, but there are just a lot of common patterns with known limitations that you can start to anticipate stuff after awhile.

[–] atheken@programming.dev 3 points 2 years ago

I would recommend email for this. It’s a text-based protocol and the original RFCs 821/822 are pretty straight-forward. There are some additional rabbit holes related to content encoding, but if one can implement a simple MTA, a huge amount of the magic of the internet becomes accessible.

I would not recommend trying to build a “production grade” MTA, as there is a lot of minutia to get right, and it’s easy to screw up.

[–] atheken@programming.dev 2 points 2 years ago* (last edited 2 years ago) (3 children)

I agree with the need, but not your rationale, I’m in the “always curly braces” camp for two reasons:

  • when a second line gets added in a condition block, the braces might not get added, a bug.
  • one less decision to make while coding. Anything that removes trivial decision-making can speed up authoring and reading code.
[–] atheken@programming.dev 2 points 2 years ago

Not at all! Glad it was something simple!

[–] atheken@programming.dev 16 points 2 years ago (7 children)

I believe the setting is user.email so maybe confirm that’s what you have set in both? Git will silently ignore settings that aren’t used/defined.

[–] atheken@programming.dev 2 points 2 years ago* (last edited 2 years ago)

Your question, as best as I could tell, is that you want DNS traffic to exit through your VPS node, rather than your client machine.

I posited one reason this could be happening, and additionally, a similar setup that provably routes traffic through the VPN based on the method I described.

Nobody in here is obligated to help you, I gave you a couple threads to pull on to resolve your question, so maybe consider accepting it graciously, rather than being obstinate.

[–] atheken@programming.dev 2 points 2 years ago* (last edited 2 years ago)

Of course, you have to trust that third party, which may/may not be prudent.

[–] atheken@programming.dev 1 points 2 years ago (2 children)

It’s not completely clear what you mean, but I’m guessing you’re only routing a subset of your traffic through wireguard, probably only IPv4, and there may be some IPv6 traffic that is not being routed over your wireguard connection.

You can specify any IPs you want for DNS with wireguard, and if your allowed IPs include those addresses, then it should flow over your VPN.

I do this with Pihole at home, and it blocks ads while I’m away.

With whatever test you’re running that says stuff is “leaking,” keep in mind that the website is going to report any traffic that originates from your VPS as “unprotected” because it’s not their system, and even if you run your own DNS server, it’s still got to query upstream to a public DNS. All they’re really doing is demonstrating which upstream DNS server you have configured, and it’s up to you if you want your VPS’s IP to be connected to the query history of that upstream DNS provider.

You will usually need a hostname in DNS for your VPN server to make it easy to find/connect, which will use your normal DNS resolution. Once connected, if you have it set up correctly, new dns queries should route through your VPN connection. Just keep in mind that various results can be cached on your system and in web browsers, so you should quit and reopen your browser after you connect to the VPN before you run your “leak” test.

[–] atheken@programming.dev 0 points 2 years ago* (last edited 2 years ago) (1 children)

LLMs aren’t going to give you a roadmap or prioritize concepts. They also frequently produce contradictory information.

They’re good tools if you already have some experience and vocabulary in the field, but a more structured approach to building some projects and acquiring skills is better.

[–] atheken@programming.dev 1 points 2 years ago

In my 20 year career, I’ve never had a single position where I could ssh into my work machine from a remote location.

I would say that if you have been able to do that, it’s exceptionally rare, and there are a number of security red flags of your organization is allowing that.

[–] atheken@programming.dev 1 points 2 years ago

And you can do the previous years of the coding challenge at any time.

I took some time off, and this was a good source of solving “real” problems, rather than trying to write something to optimize for l33tcode (which, is fine… just not a good measure for typical software engineering responsibilities, IMO).

view more: ‹ prev next ›