[-] radarsat1@lemmy.ml 6 points 1 year ago

my favorite part of that video is when he says (paraphrasing):

this is like a video call, and that's cool.. but we can do so much more.. like, we can ... have meetings

such vision :)

[-] radarsat1@lemmy.ml 88 points 1 year ago

I spend my days in emacs and terminal emulators and I want this very badly in a laptop form factor so I can comfortably work outside.

[-] radarsat1@lemmy.ml 5 points 1 year ago

I would argue that what's going on is that they are compressing information. And it just so happens that the most compact way to represent a generative system (like mathematical relations for instance) is to model their generative structure. For instance, it's much more efficient to represent addition by figuring out how to add two numbers, than by memorizing all possible combinations of numbers and their sum. So implicit in compression is the need to discover generalizations. But, the network has limited capacity and limited "looping power", and it doesn't really know what a number is, so it has to figure all this out by example and as a result will often come to approximate versions of these generalizations. Thus, it will often appear to be intelligent until it encounters something that doesn't quite fit whatever approximation it came up with and will suddenly get something wrong that seems outside the pattern that you thought it understood, because it's hard to predict what it's captured at a very deep level and what it only has surface concepts of.

In other words, I think it is "kind of" thinking, if thinking can be considered a kind of computation, but it doesn't always capture concepts completely because it's not quite good enough at generalizing what it's learned, but it's just good enough to appear really smart within a certain distribution of inputs.

Which, in a way, isn't so different from us, but is maybe not the same as how we learn and naturally integrate information.

[-] radarsat1@lemmy.ml 3 points 1 year ago

Apparently if people are gullible enough you can even use video calls to commit crimes, no AI needed!

It was through a video call – where only the photograph of a man who was the same as Minister Jackson, with a cap and glasses – was seen where the imposter began to give orders to the two workers, who work at night. First, they removed 50 laptops from the different floors of the ministry. https://newsrnd.com/news/2023-07-22--negro-chico---the-prisoner-who-posed-as-a-chilean-minister-and-put-the-boric-government-on-the-ropes.r1-S2_TOcn.html

[-] radarsat1@lemmy.ml 2 points 1 year ago

We use Notion at work and one thing that worries me is how the hell I'd make a local backup of all the data we're putting on there. If there were a way to import my Notion data into something like this it would make a fantastic solution.

[-] radarsat1@lemmy.ml 3 points 1 year ago* (last edited 1 year ago)

I was using Jerboa because i was used to Sync for reddit. But, I got a bit tired of hiw rough around the edges it is, so I switched to just installing my Lemmy instance fromt page as Firefox "app" on my phone and realized it's not that bad as a UI, so sticking with it for now.

I'll probably try apps again in the future but I feel more open to "installing" good web apps now. Incidentally I tried the same trick with Reddit's mobile interface after Sync stopped working and realized it's also not so awful as I remembered. I did prefer Sync but I'll see how it goes with this method. So it's mobile web interfaces on Android for me for now.

Having said that, in both cases I think I'd prefer a more "simple HTML" type experience like old reddit over these dynamic SPA things they both have going.

[-] radarsat1@lemmy.ml 13 points 1 year ago

Literally had a meeting with someone yesterday who, after starting late because of trouble logging in and things crashing, started off the meeting by apologizing for using Teams but said it was just easier because it's the default. Made me chuckle.

Anyone who chooses Teams because they actually think it's better.. I just.. are we even using the same program?

[-] radarsat1@lemmy.ml 4 points 1 year ago* (last edited 1 year ago)

How do you block people using a VPN by region? Just block the whole VPN?

[-] radarsat1@lemmy.ml 1 points 1 year ago

Maybe. I'm interested in the specifics.

[-] radarsat1@lemmy.ml 1 points 1 year ago

likely violate that data’s usage agreement.

It doesn't seem to be too common for books to include specific clauses or EULAs that prohibit their use as data in machine learning systems. I'm curious if there are really any aspects that cover this without it being explicitly mentioned. I guess we'll find out.

1
submitted 1 year ago by radarsat1@lemmy.ml to c/python@lemmy.ml

Let's say I have a context manager that provides a resource that then mutates on exit:

from contextlib import contextmanager

@contextmanager
def context():
    x = ['hi']
    yield x
    x[0] = 'there'

I found that if I want to make another context class that uses this, such that the context (before mutation) is valid, I have to pass it in:

class Example1:
    def __init__(self, obj):
        self.obj = obj
    def use_obj(self):
        print(self.obj)
    def __enter__(self):
        print("start")
        return self
    def __exit__(self, *exc):
        print("end")

with context() as x:
    with Example1(x) as y:
        y.use_obj()

prints:

start
['hi']
end

However, what I don't like is, let's say that obj is an internal detail of my class. I don't want the user to have to define it beforehand and pass it in.

The only way I can figure how to do this is by calling the context manager's __enter__() explicitly:

class Example2:
    def use_obj(self):
        print(self.obj)
    def __enter__(self):
        print("start")
        self.ctx = context()
        self.obj = self.ctx.__enter__()
        return self
    def __exit__(self, *exc):
        print("end")
        self.ctx.__exit__(None, None, None)

with Example2() as y:
    y.use_obj()

which also prints,

start
['hi']
end

For comparison, just as some other random attempt, the following doesn't work because the context ends when self.obj is created:

class Example3:
    def use_obj(self):
        print(self.obj)
    def __enter__(self):
        print("start")
        with context() as x:
            self.obj = x
        return self
    def __exit__(self, *exc):
        print("end")

with Example3() as y:
    y.use_obj()

which prints,

start
['there']
end

Okay, so my point is that Example2 is the right solution here. But, it's really ugly. So my question is, is there a better way to write Example2?

radarsat1

joined 4 years ago