10,700 karma · joined April 22, 2012
Email: kellypmk@gmail.com or peter@pmkelly.net
Twitter: 0xpmkelly
https://www.pmkelly.net
http://blog.uxproductivity.com/
PGP key: http://www.pmkelly.net/pgp-key
Fingerprint: 5435 6718 59F0 DD1F BFA0 5E46 2523 BAA1 44AE 2966
For each statement, the compiler could keep track of the current "lock priority". If an attempt is made to obtain a new lock with a lower or equal priority, the compiler would reject this. Otherwise, the compiler would use the priority of the new lock as the lock priority for all statements within the scope of the block in which that lock is held.
Aside from modifying the language, the same basic idea could be implemented at the library level by exposing a lock type which still requires a priority to be specified at creation time, but tracks the current lock priority (per thread) at runtime and panics when the constraint is violated. Since the panics would be deterministic, they and the book-keeping required to track the current lock priority could be enabled only in debug mode.
The solution to the complexity of applications that are distributed as collections of interdependent containers is to put all of the different pieces inside a single container. This is equivalent to what people did before docker existed, and it's still perfectly viable today.
There's no need to over-complicate things.
Suddenly my whole life made sense, I understood that there are well-known and documented reasons for why I am the way I am, and that I'm not alone in my experiences.
So it's still possible to receive a diagnosis if you don't have hyperfixation but have two or more of the other section B criteria.
Here's an example of how to use it (obviously a minimal case, you can customise your handler do do whatever you need):
def mytrace(frame, event, arg):
if event == "call":
print("call", frame.f_code.co_name, frame.f_locals)
elif event == "return":
print("return", frame.f_code.co_name, arg)
return mytrace
import sys
sys.settrace(mytrace)
For example, given the following code: def three(z):
return 3
def two(y):
return three("BBB") - 1
def one():
return two("AAA") - 1
one()
It will output: call one {}
call two {'y': 'AAA'}
call three {'z': 'BBB'}
return three 3
return two 2
return one 1And you do understand the reason why having browsers verify that they're actually talking to who they think they're talking to is important, right?
IPFS uses QUIC as one of its supported transport protocols, and this works in the most common implementation, Kubo [1]. The spec for the QUIC transport used in IPFS [2] indicates the same certificate trust policy as for the TLS protocol [3]. The latter, in turn, relies on peer-to-peer authentication with automatically-generated self-signed certificates containing a libp2p-specific additional extension.
IPFS is particularly well suited to the use case of personal websites you've mentioned, as it's specifically designed to operate without any form of centralisation.
[1] https://github.com/ipfs/kubo.
Requiring all commits to be signed by trusted keys avoids the risks associated with someone tampering with a repository hosted on GitHub if they are able to get access to it, although it doesn't protect against code being leaked.
See here for details: https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work
Yeah that was sad to see :(
I like the attitude that if you don't like the rules, go and make your own thing where you can choose your own rules and not be constrained by those of other people. That's basically the origin story for a lot of successful entrepreneurs.
The best thing to do is to find some sort of constructive way to channel your experience. One path I would suggest is to consider launching your own rival competition, where the judges are volunteers from industry, and the prize is an internship at a company or something like that. This would not only provide your peers with a great opportunity to get quality feedback, but also serve as a really useful experience that would help you in your future career. What have you got to lose?
Perhaps you could even get GitHub to sponsor it :)
https://panic.com/blog/the-lightning-digital-av-adapter-surp...