Traceback (most recent call last):
File "/root/routes/game.py", line 395, in get
audio_filepath = audioSubmission['filepath']
TypeError: 'NoneType' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/tornado/web.py", line 1467, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "/root/routes/game.py", line 445, in get
user=self.get_current_user().decode('utf-8'),
AttributeError: 'NoneType' object has no attribute 'decode'
Without seeing the actual code base, `audio_filepath = audioSubmission['filepath']` smells like a security vulnerability. Also calling `decode` on a user object seems wrong...
The code in the example isn't faulty. The goals are faulty in an non-obvious way, and drives the AI to optimize a solution to a fitness function in a way that humans might consider pathological behavior.
> to Comcast paving the future of the AI?
Comcast's goals are faulty in a non-obvious way. Comcast's goals are to maximize shareholder profit, and in doing so creates a culture of fraudulent billing and a horrifying gauntlet of a cancellation process that humans might consider pathological behavior. And AI is the next logical step to optimizing those corporate values.
I think the core point is that corporations are fairly general-purpose machines, designed to do things too "big" for individual people. (But smaller and easier to analyze than "civilization.")
Their hardware stack is different, but lessons about their computational structure and design pitfalls may be applicable.
The issue is a different one, I believe you're considering one specific situation while there are others to ponder. What would happen if someone copy & pasted part of the hash, or had some tool that always reduced that output to the first few digits, or other situations like these, how would you be able to tell that the user was actually after the oldest commit?
It seems much easier to indicate there's a problem, a conflict, and let the user solve it.
How do you apply your rules considering what's available today? Which services are you using? It sounds like it would be a big headache to orchestrate the automation among all these different providers.
My productivity increases so much when I shutdown chat apps I can only wish people responsible for setting them up at companies would stop for a minute and read this. Only the fact that the app is running is enough to reduce my output since I'll switch to it regularly no matter what.
The problem is that the tools we invent to solve the old problem create new problems that are worse.
- At least meetings had a defined start and end time. With email you're expected to be "always on"
- At least emails can be dealt with asynchronously, so you can focus on work for a while and then circle back and deal with email. With chat you've got to be at least semi-engaged with the tool at all times
> Maybe we just need some kind of flat "only talk to people 2 hours a day" rule for developers...
I'm not sure if it was Brooks or if it was another one of the guys who were doing investigation into engineer/programmer productivity at the time that discovered something along the lines of: "The most productive workplaces allow and encourage their engineers to switch off their desk telephones whenever the engineer requires it.". [0]
Maybe in a hundred years we will have learned that lesson for good.
[0] Remember, this was back in the 1980s or so, so you got desk phones, intra-office mail, or walking down to talk to a guy.
Won't it be faster if you disable the notifications at the OS level?
If your output is more important than instant communication with your peers, it should be OK to not be notified. Otherwise you'll just have to accept your destiny.
So, why LibreSSL went with a 2+ year old version of that file?
The LibreSSL philosophy is to (at least initially) clean up the parts of OpenSSL that are "cruft". E.g. dropping support for long-dead computer architectures and protocols, removing homebrew malloc(). Stuff like that.
The LibreSSL guys have tried to stay away from the highly tricky crypto stuff. Messing with that could have serious security implications. They can address math and crypto later. For now there's still a lot of low hanging fruit they can pick.
I'm aware of that but it seems specially interesting that they decided to go with a specific old version of some files. I don't think this kind of decision was ever made public, was it?
The general clean up idea is mentioned all over, but selecting old versions of specific files is not.
I don't think this kind of decision was ever made public, was it?
Not that I'm aware of. I follow the misc, tech, and libressl mailing lists and there seems to be a lot of OpenBSD related stuff missing from there. I think the cabal uses other, more private, more informal, means of communication for a lot of their discussions and decisions.
selecting old versions of specific files
But did they really select an old version? Rather, perhaps they just declined to pull the changes that the OpenSSL people made.
Are the hardware specs available somewhere? Is it possible I'm confusing this with an interface for launching EC2 instances at a premium disguised as being actual dedicated hardware?
There are no guarantees that your function will be called. The design of this service is meant to provide the proper motivation for calls to be executed, but it is entirely possible that certain calls will be missed due to unforseen circumstances.
Strictly speaking, there is no such a thing as "guarantee". Your alarm clock may malfunction in an important moment. An asteroid can suddenly wipe civilization with all insurance providers (now that's an idea...) So you - in a strict sense of a word - always have to estimate and compare probabilities.