I cannot find the reference to the port being flimsy. I did however find the part where the top hotswap component (touchpad and the place where the plate is) is having problems. The only side port that they mention is the charging port. But the again, as I said, the firmware must be redone to account for said removeable dGPU. Now you may be wondering how big of an effect does it make when adding removeable dGPU. Off the top of my head, the motherboard must have the power supply circuitry remade to account for the additional power draw when needed. That alone will make the firmware for power control need to be redone. It can have wide range of effect for other components too because power firmware is really far reaching and may break assumption in other firmware. Not to mention a part of the cooling system is also removeable now. Framework has gone out of their way trying to invent a new standard for removeable dGPU on a laptop.
Btw, here is the quoted article that mentions the side port.
Twice, the touchpad suddenly stopped scrolling and stopped accepting button presses until I physically removed it from the system and reseated it. I’ve repeatedly gotten a Windows message about how my “USB device might have limited functionality when connected to this port” even if I’m just plugging in the charger.
Oh really? I didn't know that once since I only referenced the article. The article had issues with the modular top side, not the port. So I guess we were talking differently from the beginning.
Uhh, does the model 13 have a modular panel? IIRC, they don't. Also, manufacturing modular panel and modular port are very different and the knowledge transfer cannot be that big. The port for example has a looser tolerance since they aren't really that visible most of the time. So being snug but not flush is good enough. I can imagine the panel doesn't have that luxury. Stability issue, that I can agree. But then again, I'll give them the benefit of the doubt since they must handle additional assumptions that cannot be made on other laptops. Namely, modular GPU. Writing a firmware with that new assumption could be a PITA.
You do realize the 13 doesn't have the back part for replaceable dedicated GPU right? That means the chassis itself must be redesigned since the hole will make the previous experience in the 13 different enough.
For NAT, there is apparently a way to traverse NAT. I haven't tried it tho, but the dude has a lot of research on the topic (NAT traversal), so if that didn't work, maybe others will
Uhhh, no. I think it is better to implement something akin to federation than breaking up a company just because. If anyone wanted to sue valve, then they can enforce interoperability at the very least. But not dividing their business model. We don't force apple to split their software and hardware did we? We force apple to have a choice of interoperability. From then, it is all fair since anyone can link their data from valve and any other store that opt to implement the interoperability protocol.
Why can't anyone develop said features? Should the competitor worsen themselves just because no one is able to develop the same features? As far as I remember, valve doesn't patent something ridiculous like regional pricing or family sharing, so anyone is welcome to develop it themselves. They even make proton open source but apparently Epic doesn't like the idea of them on the linux market.
So let me get this straight. Any client that wanted to have steam features, like the forum, hosting, workshop, chat, and all the jazz, should be able to do so without paying steam any fee? Why didn't they develop it themselves? Or should steam sell that as a service to those who wanted it? Say for example, epic wanted to have family sharing. Steam should sell their family sharing feature to epic as a service?
Not at all. It is indeed helpful to differentiate between an iterable and literal list. After all, sometimes it will bite you in the ass when you don't differentiate between the two.
No problems. Learning a new concept is not stupid. So you are familiar with C. In C term, you are likely to do something like this:
int a[10] = {0}; // Just imagine this is 0,1,2,etc...
int b[10] = {0};
for (int i=0; i < 10; i++) {
b[i] = a[i]*2;
}
A 1 to 1 correspondent might looks like ths:
a = range(10) # 0,1,2,etc...
b = []
for x in a:
b.append(x*2)
However in python, you can then simplify to this:
a = range(10) # Same as before, 0,1,2,etc...
b = [x*2 for x in a]
# This is also works
b = [x*2 for x in [0,1,2,...]]
Remember that list comprehension is used to make a new list, not just iteration. If you want to do something other than making a list from another list, it is better to use iteration. List comprehension is just "syntactic sugar" so to speak. The concept comes from functional programming paradigm.
You can. Whatever the method returns will be the element of that list. So if for example I do this:
def mul(x):
return x*2
list = [mul(value) for value in range(1,20)]
It will have the same effect. But this:
def mul(x):
return
list = [mul(value) for value in range(1,20)]
Will just makes the list element all None
Edit to add more:
List comprehension works not from the range function. Rather, the range function is returning a list. Hence the name, "list comprehension". You can use any old list for it.
What it did under the hood is that it iterates each element on the list that you specify (the in ...), and applies those to the function that you specify in the very first place. If you are familiar with the concept of Array.map in other languages, this is that. There is also a technical explanation for it if it helps, but it requires more time to explain. Just let me know if you would like to know it.
List comprehension is not whatever you're doing there. An example of list comprehension:
list = [value*2 for value in range(1, 20)]
See, list comprehension is used to make a list from an existing list. The value of the new list is defined by a function. In this case, the value of a will be 2,4,6, etc.
Your current syntax list[...], is trying to access an element of a list.