Hacker News new | past | comments | ask | show | jobs | submit | ludbb's comments login

    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'
so many wrong things with this..


debug mode is fully on!

We're working on the problem now. Everyone churned through audio faster than expected. New hams coming up.


Without seeing the actual code base, `audio_filepath = audioSubmission['filepath']` smells like a security vulnerability. Also calling `decode` on a user object seems wrong...


It's just UTF-8 decoding, not something dangerous.


And I thought I was pessimistic. I must be missing something, how did we go from a faulty code, to KPIs, to Comcast paving the future of the AI?


> how did we go from a faulty code

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.


> Comcast's goals are to maximize shareholder profit

It's nitpicking, but no, no big company has the goal of maximizing shareholder profit.

Most have the goal of maximizing board members profit, what is mostly aligned, but different in a non-obvious way from maximizing shareholder profit.


> Comcast paving the future of the AI?

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.


Dates are available for some objects, see http://stackoverflow.com/a/39930978/1832154 for more details about what is/isn't available.

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 does it compare performance-wise?


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.


And who monitors your company monitors? :)


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.


This is all funny because 3 years ago it was email overload, use chat instead. Now we are up to chat overload. With no tools we have meeting overload.

Maybe we just need some kind of flat "only talk to people 2 hours a day" rule for developers that transcends communication method.


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.


One 15 minutes meeting spoils 1 hour of development time.

One 2 hour meeting spoils 3-4 hours of development time.


And LACK of the right 15 minute meeting wastes months of development time as we build the wrong thing and then throw it out.

The trick is knowing which piece of communication is the one that will actually matter. I have no idea how to solve this one.


Experience helps. But there is no magic answer that fixes the problem.


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.


Interestingly, looks like LibreSSL avoided the BN_mod_exp bug.

OpenSSL history for crypto/bn/asm/x86_64-mont5.pl can be seen at: https://github.com/openssl/openssl/commits/d73cc256c8e256c32...

LibreSSL is using an old version of that same file found at http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libssl/src/.... LibreSSL is using a version (possibly with patches on top of it) that is at least before https://github.com/openssl/openssl/commit/cf6d55961cfaa00eb1..., which introduced the bug reported.

BoringSSL patched it here: https://boringssl.googlesource.com/boringssl/+/e701f16bd69b6...

So, why LibreSSL went with a 2+ year old version of that file?


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.


libressl is based off openssl 1.0.1.


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?


Each Dedicated Host is home to a specific number of EC2 instances.

Check out the EC2 instance types (https://aws.amazon.com/ec2/instance-types/) to learn more.


I believe the reference is coming from http://docs.ethereum-alarm-clock.com/en/latest/overview.html...:

Guarantees - Will the call happen?

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.


Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: