#voice-chat-text-0

1 messages · Page 256 of 1

stark river
#

i think it was apache echarts
definitely had apache in the name

rugged root
#

Shoot

#

Because Person only accepts the name argument

upper basin
#
def __init__(self, a, b, c):
    super().__init__(a, b)
    self.c = c
rugged root
#

So if Person had favorite_name as a parameter, then we would do that

#

But because it doesn't, we need to assign it in Student

#

self is implicitly passed

#

Bingo

#

super().__init__() is just running the parent's __init__ method

upper basin
#
class Person:
  def __init__(self, name):
    self.name = name

class Student(Person):
  def __init__(self, name, favorite_class):
    super().__init__(name)
    self.favorite_class = favorite_class

This is same as

class Person:
  def __init__(self, name):
    self.name = name

class Student(Person):
  def __init__(self, name, favorite_class):
    self.name = name
    self.favorite_class = favorite_class
rugged root
#

Right

near smelt
#

.

rugged root
#

Correct

stark river
rugged root
#

You'll be fine

stark river
#

it has cleaner apis

#

i loved it..

#

mostly becoz D3 gave me so much pain

rugged root
#

Ask the ones you're not sure of, and tell me what you think they are

#

I mean with the terms as well

#

Yep, I'm happy to guide

#

Nope

#

Terminology is important

#

You need to be able to talk with other programmers

#

And if you use the wrong terms, it'll be confusing

#

Like methods are just functions that are a part of a class and its objects

#

Stuff like that

#

Practice practice practice

#

Something that's helpful, try and teach someone how to do something

#

Teaching is one of the best ways to solidify your knowledge

#

@terse needle Suuuuuuuuup

#

Shoot

#

UML

#

It's a general flow chart for programs

#

Sort of

#

UMLs are specifically for program flow

#

In UML?

#

It is

#

Oh wait wait

near smelt
molten pewter
#

The unified modeling language (UML) is a general-purpose visual modeling language that is intended to provide a standard way to visualize the design of a system.UML provides a standard notation for many types of diagrams which can be roughly divided into three main groups: behavior diagrams, interaction diagrams, and structure diagrams.
The cre...

terse needle
#

The biggest pain in my backside in CS is the fact that they have a specification for psuedo code

rugged root
#

super() is a function

deft shadow
#

おh、、、

rugged root
#

And you use super() when you're inheriting from another class

#

Function

#

It's one of the built in functions like print()

#

Not a method

willow light
#

PlantUML is such a wonderful thing. Makes it much easier to keep my software development notes portable.

terse needle
#

I just got these new headphones and not being able to hear myself talk is really odd

rugged root
#

You can set up a monitor for that

upper basin
#
def __str__
terse needle
willow light
#

I have the PlantUML plugin for obsidian so I can have visual uml diagrams and sequence diagrams defined with code.

rugged root
terse needle
willow light
#

e.g. this is the uml for the project I'm working on right now

@startuml
class Item {
  +String name
  +int quantity
  +Category category
}

class Recipe {
  +String name
  +String description
  +List<Ingredient> ingredients
  +canBeMade(inventory: List<Item>): boolean
  +makeRecipe()
}

class Ingredient {
  +Item item
  +float quantityNeeded
}

class Category {
}

Item "0..*" -- "1" Category
Recipe "0..*" -- "0..*" Ingredient : contains >
Ingredient "1" -- "1" Item : is >

@enduml
rugged root
#

There's one in Windows, not sure where it would be in your distro

terse needle
#

I'll probably look into this though

#

I'm sure I have seen monitor somewhere on pulseaudio

rugged root
#

Ohhhh yeah it's tedious with pulse

stark river
#

i'm half tempted to work with someone building a viz software

rugged root
#

Just give me a GUI

willow light
#

Gotta love chrome's tendency to open new instances with every tab. As the IT desk at work calls it: Kage Bunshin no Bullshit

#

I really hope that lancebot thing is only for february

rugged root
#

It is

#

The holiday stuff is set for the given month

willow light
#

So we have one for Weasel Stomping Day?

rugged root
#

@willow light "You wouldn't download a bar -hic-"

#

More like suDON'T

#

amirite?

willow light
#

The file keeps getting worse. The admin credentials are hardcoded in plaintext.

rugged root
#

That'd be crazy

willow light
#

This is one hell of a code review session I'm leading

#
def analyzeUrl(url):
  global PATHS
  for path in PATHS:
    global response
    response = requests.get(f"https://{url+path}", timeout=999, verify=False)
      if response.status_code != "200":
        sys.stdout.write(f"URL: https://{url+path} Status Code: ConnectionError\n")
      sys.stdout.flush()

WTF

#

And yes, that is how it was formatted in the repo

#

You don't get to say python is a bad language if you write it like that.

#

<sarcasm>Exception handling? What's that?!?</sarcasm>

rugged root
#

@near smelt Yeah I can

near smelt
#

from abc import ABC, abstractmethod

class Animal(ABC):
@abstractmethod
def make_sound(self):
pass

class Dog(Animal):
def make_sound(self):
return "Bark"

if name == "main":
d1 = Dog()
print(d1.make_sound())

rugged root
#

So ABC is short for Abstract Base Class. It essentially specifies a framework for any classes that inherit from that class. Anything that inherits an ABC class means that it NEEDS to define its own method of the same name

#

Like what you have in your code snippit

upper basin
#
class Dog(Animal):

  def makesound(self):
    print("Bark")
rugged root
#

pass in this case means that you're not detailing any functionality for that method, because you're expecting anyone inheriting that class to define that functionality

#

Ask and I'll explain

#

Don't hesitate to ask

#

So pass tells Python, "Hey, I'm going to leave this code block blank, so you can carry on."

#

Hey Bot

rugged root
#

!e

from abc import ABC, abstractmethod

class Animal(ABC):
  @abstractmethod
  def make_sound(self):
    pass

class Dog(Animal):
  def make_sound(self):
    print("Bark")

class Cat(Animal):
  def make_sound(self):
    print("Meow")

dog = Dog()
dog.make_sound()

cat = Cat()
cat.make_sound()

animal = Animal()
animal.make_sound()
wise cargoBOT
#

@rugged root :x: Your 3.12 eval job has completed with return code 1.

001 | Bark
002 | Meow
003 | Traceback (most recent call last):
004 |   File "/home/main.py", line 22, in <module>
005 |     animal = Animal()
006 |              ^^^^^^^^
007 | TypeError: Can't instantiate abstract class Animal without an implementation for abstract method 'make_sound'
sacred whale
#

y

rugged root
#

!e Also, if we didn't have pass in the make_sound() method...

from abc import ABC, abstractmethod

class Animal(ABC):
  @abstractmethod
  def make_sound(self):
    

class Dog(Animal):
  def make_sound(self):
    print("Bark")
wise cargoBOT
#

@rugged root :x: Your 3.12 eval job has completed with return code 1.

001 |   File "/home/main.py", line 8
002 |     class Dog(Animal):
003 | IndentationError: expected an indented block after function definition on line 5
rugged root
#

Good ol' error

#

Bingo

#

Yeah you got it, @near smelt

#

Also, just a terminology thing, if it's defined in a class, it's a method

#
class Dog(Animal):
  def method(self):
    print("Bark")


def function():
  ...
#

Take it easy

near smelt
#

likewise

rugged root
#

No no, @upper basin

#

It was to him

#

You're fine

#

Hmm?

#

@dark swan What's new with you?

#

@stark river Whatcha up to?

#

Yeah

#

You're steaming good code content

#

You're fine

stark river
#

unfortunately nothing.. facing intermittent power outages here 😦

rugged root
#

Yikes. Is that common there?

stark river
#

it is .. but today was election day .. so .. these are of the corruption kind

rugged root
#

My condolences

stark river
#

my idea is that politicians should just write their manifesto in a readme and post it on github where people can read it
no need to speak into a mic

rugged root
#

github doesn't need that stress

#

@dark swan Sorry, Perl script?

stark river
#

i'd prefer to read their plans instead of long boring speeches that are ephemeral

rugged root
#

I know about Perl, just never heard if referred to as perl script.

#

You sound like you're in your 20s or mid-30s

#

Called it

#

@dark swan I'm typing in here

#

Co-worker is back here with me

#

So I try not to talk

#

For sure

#

You been well?

#

My condolences, that's always tough

#

The loss of 0% interest rate has been hurting folks from what I'm hearing

#

I offer $20 and a pizza

#

Frozen pizza

#

What was the bid?

#

Sure sure

#

That's a fairly healthy amount

#

What does your company do again?

echo garden
#

you know what else is fairly healthy amount @rugged root ... your words

upper basin
rugged root
#

Oh right right

#

I can for sure hear the weariness in your voice

echo garden
#

there was

#

oh not me

rugged root
#

In fairness, not all start ups do

echo garden
#

*ignored

rugged root
#

That pizza would have been a good offer then

echo garden
#

mental ignore is the worse to be in

#

someone willingly ignores my words for the sake of hilarity, and i will admit its funny

#

whines in spoiled.

rugged root
#

"Too woke"?

#

How so?

echo garden
#

IBM is woke how?

rugged root
#

No genuinely

#

I'm curious what you mean

#

True

#

Dude, you said it

#

Most of thier income is support contracts, as far as I know

#

Mainframes

echo garden
#

like nearly 50 years right?

rugged root
#

More I think

#

@gentle flint Sup

#

Are they? I haven't seen anything from them that imply that to me

#

More likely that I just haven't been paying attention to that area

upper basin
#

Maybe.

rugged root
#

But like...

upper basin
#

I don't really like them.

#

in MY field, again, they do a lot of stuff.

#

They're more focused on politics and marketing than actual research and development.

rugged root
#

Are they?

upper basin
#

Like smaller companies with much less budget and man power are outdoing them.

#

They are.

rugged root
#

Fair enough

upper basin
#

Very political.

rugged root
#

Political in what way?

#

I'm going in blind to this is why I'm asking

upper basin
#

They don't even allow certain nationalities to apply to the jobs, even if you are living somewhere that NATO is good with.

echo garden
#

@upper basin thats cause they are using brain power instead of marketing mayhem

rugged root
#

It's government contracts

echo garden
#

i was talking about how smaller companies are out doing the bigger badder ones

upper basin
rugged root
#

Woke is a term that's typically meant as an insult to folks who are more progressive or liberal. Support for LBGTQ+ rights for example

#

That's why I was confused by the use of woke

#

It's a right wing slur

#

Well

#

Owning a company is politics

#

Your decision to not be acquired was a political move. Making sure that your name is still known

#

"A man is not dead while his name is still spoken" I think is the phrase?

#

Everywhere is screwed up

#

Just depends on the flavor you want

echo garden
#

i always thought woke is seeing beyond that social norms and understanding brain washing and that sorta thing

rugged root
#

That was the meaning

#

Now it's gotten twisted

echo garden
#

ah so we twist the term now get chaos

rugged root
#

"Awoken to the truth"

#

It's not a younger age word

#

It's usually said on political news shows complaining about the left

#

Exactly

#

Which is why it hasn't crossed you

#

Sure sure

#

I don't blame you

echo garden
#

in the 90's woke ment something different to me

rugged root
#

You're fine, ACE

#

It's just why I was asking for clarification

#

Not going to boot you for anything

#

Within reason

#

So long as it stays civil

#

Right, which is fair

#

We're good, we're on the same page now

#

Let's move on

#

Fair enough

echo garden
#

oh hidden material

rugged root
#

?

echo garden
#

subliminal @rugged root

rugged root
#

Oh man

#

Dodge a bullet

echo garden
#

hehe

rugged root
#

Good luck

#

I heard the dog

echo garden
#

i heard Ray

obsidian dragon
#

rayhound

rugged root
#

Fair

#

@obsidian dragon Your mic's open

echo garden
#

BACKGROUD

rugged root
#

Moved you to AFK until you get that figured out

#

I am

#

Whenever my co-worker is done for the day

#

I'm always on the office when I'm on here

#

I don't get on Discord when I'm at home

#

That's my chill out and play video games time

#

And spend time with wife

#

In PyDis? Very

#

I have to be "on" if that makes sense

#

34

echo garden
#

god i feel old

rugged root
#

More my knees

echo garden
#

mine feels like its 45

rugged root
#

When I crouch then stand back up it sounds like I'm walking on gravel

#

Used to

#

Retail, grocery, stocking, etc.

#

Allllll knees

echo garden
#

ouch

#

you old man

rugged root
#

Like Rice Krispies

#

Depends on my mood

#

Currently playing "Like a Dragon: Infinite Wealth"

#

It's the latest in the Yakuza series

#

Great games

#

It's hard for me to recommend this one unless you've played some of the older ones, though

#

There's a LOT of referring to the old games

#

Like

#

There's an entire couple chapters dedicated to it

#

Well it is Sega

#

Well

#

Actually they did Virtua Fighter not Tekken

#

Oh the campaign is fun

#

I have not

upper basin
#

MW 2019

rugged root
#

I think the last one I played was modern warfare

#

COD 4

#

Nope, I'm not an Xbox boy

#

That's why

#

I'm prefer Playstation

upper basin
#

Did ya play Uncharted or TLOU?

rugged root
#

No different than Football and Basketball

#

Weird

#

Open sores

#

Yarp

#

HA

#

Carousels

#

Back in a bit

upper basin
#

"October 13th, I witnessed my brethren get massacred by the malicious mammal. I could not closeth my eyes, perhaps I could not-th."

"Ocobter 14th, I survived the great massacre. "Thou must carryth our legacy.", said my father as he was torn limb from limb like a KFC 10 piece. I shall honor my father."

"October 20th, I have begun a spiritual journey of healing and acceptance. Though my kin has moved to the next plane, I will carry our sacred way of living."

"October 25th, the humans are smothering me with attention. Perhaps, to amend their incompetence to care for our kin. Today they bestowed upon me their sacred and worshipped supper, I believe they call it "Tak-O Bill"."

"Ohh SHIIII-"

whole bear
#

hi milien

#

wyd

peak depot
whole bear
#

weird

rugged root
somber heath
#

@stray blade @stoic quartz @errant depot 👋

stoic quartz
#

yoyo

rugged root
#

Make sure Firefox is up to date

stray bay
#

opens site
secure connection failed

whole bear
civic chasm
rugged root
#

I like them

stray bay
#

bye bye, imma go lay down and read a book! 👋

civic chasm
#

best time for me is 23:00 -> 02:00 at night everyone sleeps

rugged root
#

sfc /scannow; dism /online /cleanup-image /restorehealth; sfc /scannow

#

@whole bear

#
MDN Web Docs

The flexible box layout module, usually referred to as flexbox, was designed as a one-dimensional layout model, and as a method that could offer space distribution between items in an interface and powerful alignment capabilities. This article gives an outline of the main features of flexbox, which we will be exploring in more detail in the rest...

stark river
#

remember mobile first

somber heath
#

@copper wolf 👋

gentle flint
copper wolf
#

@somber heath @somber heath thanks

minor sage
civic chasm
#

i have simple comparison operator but i dont understand what im doing wrong

stark river
#

if the operator is is use == instead

civic chasm
#

def value_of_ace(card_one, card_two):
"""Calculate the most advantageous value for the ace card.

:param card_one, card_two: str - card dealt. See below for values.
![return](https://cdn.discordapp.com/emojis/1006984905596616755.webp?size=128 "return") int - either 1 or 11 value of the upcoming ace card.

1.  'J', 'Q', or 'K' (otherwise known as "face cards") = 10
2.  'A' (ace card) = 11 (if already in hand)
3.  '2' - '10' = numerical value.
"""

value_one = value_of_card(card_one)
value_two = value_of_card(card_two)

total_value = value_one + value_two

total_value + 11 <= 21:
    return 11
return 1                problem is if  card_one  or card_two is 'A' it must return 11
#

xD i had to add this line
if card_one == 'A' or card_two == 'A':
return 1
if total...

#

today i learned

somber heath
#
if card_one == 'A' or card_two == 'A':
    ...```

```py
if 'A' in (card_one, card_two):
    ...```
civic chasm
#

cool ty

somber heath
#

Ignore the one I deleted.

mystic haven
#

hello

#

how is everyones day

somber heath
#

@feral sky There was some small improvement.

#

Now it is poor.

#

I told you. Your microphone quality is poor.

#

The accent barrier is also a contributing factor.

feral sky
#

But can you understand?

#

I don't know why it's bad

somber heath
#

Only very occasionally.

#

@delicate rover 👋

delicate rover
#

hello! i guess i cannot talk lol

somber heath
delicate rover
#

yes, i just joined so i guess i have to sit out a few more days! but it was great to talk to you for a few seconds.

#

there isnt much more I can do im afraid haha

feral sky
#

@somber heath Can't you hear me??

somber heath
#

I can not hear you.

feral sky
#

Calm down

#

Are you listening well?

somber heath
#

Yes, I'm sure saying that to someone always achieves its worded purpose.

feral sky
#

Do you want me to speak louder?

#

Or is that ok?

somber heath
#

I am calm. I'm curious as to why you would suggest otherwise.

somber heath
#

I can be not calm.

#

@kindred hinge 👋

feral sky
#

But I think my voice comes out louder on the other microphone.

somber heath
#

@feral sky You are entirely indistinct.

feral sky
#

I'm trying to do something

#

But I'll need another dc

#

I'll be right back

somber heath
#

@heady basalt 👋

heady basalt
#

Hi

somber heath
#

@feral sky It's still difficult for me to hear you. I just happened to hear and understand your suggestion.

#

It's currently half past two in the afternoon.

#

1428

feral sky
#

It's hard to understand you too

#

This is 00:29

somber heath
#

I don't travel.

feral sky
#

Why not?

somber heath
#

Travel without reason does not appeal to me.

#

Nor does it appeal in general.

#

@whole bear 👋

#

Additionally, there are reasons why it would be a very bad idea for me to travel.

#

Reasons I will not go into with you.

feral sky
#

I can't speak ;-;

somber heath
#

Has your microphone gone to God?

feral sky
#

I don't know

#

But I can't speak ;-;

somber heath
#

@latent atlas 👋

latent atlas
#

Hi

somber heath
feral sky
#

Vix

#

I do not know what happened

somber heath
#

Is it possible that you changed a setting?

feral sky
#

Are you listening now?

somber heath
#

I was always listening. I was occasionally hearing. I was frequently not understanding.

feral sky
#

I do not know what to do

#

My life is an endless struggle

#

I feel like I'm in space

somber heath
#

We are.

feral sky
#

All the time looking for me

somber heath
#

@sweet sorrel 👋

sweet sorrel
#

Yooo

feral sky
#

There are days in life when we think we won't make it

somber heath
#

@zealous echo 👋

zealous echo
#

I cant I already tried

sweet sorrel
#

Why is this guy actin like a robot

zealous echo
#

who is?

sweet sorrel
#

Is that an autism thing? I’m autistic and could totally see it as an autism thing

#

Like a clock that says ten till 5

#

By why robotic

#

Beil I understand u

#

Ah

#

One more day and I have vc

#

Wooo

somber heath
#

@mighty gyro 👋

worthy token
#

when in drought find the difference between tuple and list

mighty gyro
#

Hi

sweet sorrel
#

Hey @somber heath remind me in 10 mins to turn off the stove

mighty gyro
#

hello

sweet sorrel
#

Hey @somber heath play Despacito

#

I’m going back to Alexa @native hazel @somber heath

#

Why is there so many opals

#

Opal

#

Can I show you my first python project?

somber heath
#

Because people thought it would be funny.

#

If you like.

sweet sorrel
#

Life my first time ever coding project I finished this week

feral sky
#

Ok

somber heath
#

!code

wise cargoBOT
#
Formatting code on Discord

Here's how to format Python code on Discord:

```py
print('Hello world!')
```

These are backticks, not quotes. Check this out if you can't find the backtick key.

For long code samples, you can use our pastebin.

sweet sorrel
#

Add me so I can dm you it.

#

If not it’s cool

#

It’s in production, I was wanting to show you the bot I made

worthy token
#

apparently dota2 uses Lua

mighty gyro
#

Roblox does too

sweet sorrel
# somber heath !code

I made a discord server with many discord servers inside, and each server has its own ban list, moderators and everything is cross referenced via a database

#

I still don’t know what a function is

mighty gyro
#

Luau?

#

wait

#

what's that

#

can you type in chat pls

wet scroll
mighty gyro
#

ok

#

What's the difference?

sweet sorrel
#

I’m going to turn it into a dnd thing so each dungeon master can have their own server without having to make one separately

mighty gyro
#

between Luau and Lua

sweet sorrel
#

Is a function the Def line?

wet scroll
mighty gyro
#

Gameplay Performance?

sweet sorrel
#

Def add,
Add (1, +2)

#

Is “Def” defying a function

wet scroll
#

i dont really know stuff about how luau works, i just use it

sweet sorrel
#

Is def anything other than functions

somber heath
#

!e ```py
def func():
print('Hello, world.')

func()
func()
func()```

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

001 | Hello, world.
002 | Hello, world.
003 | Hello, world.
mighty gyro
#

Yeah i think its gameplay performance

#

so its faster

#

maybe Lua is slower

wet scroll
#

im 100% sure that lua is slower than luau

somber heath
#

!e ```py
def func(obj):
print(obj)

func('argument')```

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

argument
sweet sorrel
#

For a discord bot, would
def command add ()
be a functi

somber heath
#

!e ```py
def func():
return 123

print(func())```

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

123
sweet sorrel
#

So functions do something within its Column until you mark it with a exit / output

somber heath
#
print(123)```
sweet sorrel
#

Everything that’s tabbed in

#

I got you.

#

Returning is printer to terminal or doing an action.

mighty gyro
sweet sorrel
#

Hmmm

#

Question how do I see how many hours I have

#

I really want to talk with you

worthy token
#

is lamda a fuction ?

sweet sorrel
#

#bot-commands

#

Does VC work by hour or just the actual date once it hits midnight

#

We are about to find out

somber heath
#

!e py data = [5, 1, 2, 3, 7, 10] data.sort() print(data)

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

[1, 2, 3, 5, 7, 10]
sweet sorrel
#

See you in 51 mins

somber heath
#

!e ```py
def func(v):
return abs(v - 5)

data = [5, 1, 2, 3, 7, 10]
data.sort(key=func)
print(data)```

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

[5, 3, 7, 2, 1, 10]
somber heath
#

!e ```py
def func(v):
print(v)
return abs(v - 5)

data = [5, 1, 2, 3, 7, 10]
data.sort(key=func)
print(data)```

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

001 | 5
002 | 1
003 | 2
004 | 3
005 | 7
006 | 10
007 | [5, 3, 7, 2, 1, 10]
somber heath
#

!e py data = [5, 1, 2, 3, 7, 10] data.sort(key=lambda v: abs(v - 5)) print(data)

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

[5, 3, 7, 2, 1, 10]
obsidian dragon
#

QTpy

somber heath
#

!e py a = lambda n: [i for i in range(n)] # Avoid assigning variables to lambdas. It annoys the purists. print(a(3))

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

[0, 1, 2]
somber heath
#

@void crane 👋

obsidian dragon
somber heath
#

!e py lambda (a, b): (a, b)

wise cargoBOT
#

@somber heath :x: Your 3.12 eval job has completed with return code 1.

001 |   File "/home/main.py", line 1
002 |     lambda (a, b): (a, b)
003 |            ^^^^^^
004 | SyntaxError: Lambda expression parameters cannot be parenthesized
somber heath
#

!e py a = lambda v: None a(v = 1)

wise cargoBOT
#

@somber heath :warning: Your 3.12 eval job has completed with return code 0.

[No output]
worthy token
#

!e

a = {
    'first': lambda n: [i for i in range(n)],
    'second': lambda b: [i for i in range(b)]
}

print(a['first'](3)) 
print(a['second'](4)) 
civic chasm
upper basin
somber heath
#

@crude slate 👋

#

@safe forum 👋

crude slate
somber heath
crude slate
#

yeah, i dont know any python, i usually learn by speak and wathcing others

#

typing in discusisons when your a beginner is quite pointless cause i dont know what to discuss lol

somber heath
#

!resources

wise cargoBOT
#
Resources

The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.

somber heath
#

@lofty valve 👋

obsidian dragon
#

@somber heath 👋🏿

somber heath
#

@cold steppe 👋

cold steppe
upper basin
#

Naknak Nak. Naknak nak? Naknak naknak Naknak naknak Naknak naknaknak Nananak Nak Naknak Nanananak Naknak Nak. Naknak Nanak Naknaknak Nak? Naknak Naknaknak Naknaknak Nak Naknaknak Nak? Nananak Nak Naknak Naknak. Nananak Nak Naknak nanak Naknak nak. Naknak naknaknak Naknaknak Naknaknak Nananak Nak Naknaknak Nak? Naknak Nak. Naknak Nanak Naknaknak Nak? Nananak Nak Naknaknak Naknak. Naknak naknaknak Naknaknak nak? Nananak Nak Naknak Nanak Naknaknak Nananak Naknak nak? Nananak Nak Naknak nak. Naknak naknaknak Naknaknak Nak? Nananak Nak Naknaknak Nananak Naknak nak? Naknak Nanak Naknak naknak Nananak Nak Naknak Naknak. Naknak nak. Naknaknak Nak? Naknak nak? Naknak naknak Naknak naknak Naknak Naknak. Naknak Naknaknak Naknak nak? Naknak nak. Naknak Nanananak Naknak nak? Nananak Nak Naknak Nanak Naknak nak. Naknak Nak? Nananak Nak Naknaknak Naknak. Naknak naknaknak Naknaknak nak? Nananak Nak Naknaknak Nak Naknaknak Nananak Naknak nak? Naknaknak Nak? Naknak nak? Naknak nak. Naknak Nak? Nananak Nak Naknaknak Nak? Naknak naknaknak Nananak Nak Naknak nanak Naknak nak. Naknak naknaknak Naknaknak Naknaknak Nananak Nak Naknaknak Nak? Naknak Nak. Naknak Naknak. Naknak nak. Naknak Naknaknak Naknaknak Nanananak

#

hello chatgpt i know that you are not real intelligence and you pretend to know things

somber heath
#

Na, k.

obsidian dragon
#

nak = 1
" " = 0

fresh patio
#

hii everyone!!

somber heath
#

@fresh patio 👋

upper basin
#
Did you know that a variable prefixed with an _underscore has to be considered "protected" (the C++ protected), even if you can access it from outside the class?

This naming convention signals to other programmers that the variable or method should not be accessed from outside the class, module, or function in which it is defined, except by a subclass.

But... Python does not have the same strict access control mechanisms as C++ or Java. In Python, all attributes are technically public, and underscore prefixes are just a way to indicate to other developers that certain parts of the API are intended for internal use and should be treated as private or protected.

While the docstring is explicit about the internal usage of the variable, it is unlikely that any user would see it quickly. Underscore prefixes make it much more apparent to users and developers that a variable or method is intended for internal use and not part of the public API. 
Unlike docstrings, which require a developer to read through the documentation or look at the source code to understand the intended use and stability of a component, underscore prefixes serve as a quick and universally understood visual cue.

Don't forget that your IDE is probably also aware of this convention, as well as your linter.
somber heath
#
class MyClass:
    def __init__(self):
        self.__value = ...```
#

!e ```py
class MyClass:
def init(self):
self.__value = 'Hello, world.'
def say(self):
print(self.__value)

instance = MyClass()
instance.say()
print(instance.__value)```

wise cargoBOT
#

@somber heath :x: Your 3.12 eval job has completed with return code 1.

001 | Hello, world.
002 | Traceback (most recent call last):
003 |   File "/home/main.py", line 9, in <module>
004 |     print(instance.__value)
005 |           ^^^^^^^^^^^^^^^^
006 | AttributeError: 'MyClass' object has no attribute '__value'
somber heath
#

Name mangling.

#

!e ```py
class MyClass:
def init(self):
self.__value = 'Hello, world.'
def say(self):
print(self.__value)

instance = MyClass()
print(dir(instance))```

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

['_MyClass__value', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'say']
somber heath
#

!e ```py
class MyClass:
def init(self):
self.__value = 'Hello, world.'
def say(self):
print(self.__value)

instance = MyClass()
print(instance._MyClass__value)```

wise cargoBOT
#

@somber heath :white_check_mark: Your 3.12 eval job has completed with return code 0.

Hello, world.
somber heath
#

!zen

wise cargoBOT
#
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

somber heath
upper basin
#
Here’s the plan: when someone uses a feature you don’t understand, simply shoot
them. This is easier than learning something new, and before too long the only living
coders will be writing in an easily understood, tiny subset of Python 0.9.6 <wink>.1
—Tim Peters, legendary core developer and author of The Zen of Python
somber heath
#

@pallid peak👋

upper basin
#

325 -> 3 dimensional vector, with each dimension describing a power of 10.

#

[3, 2, 5]

#

0.2358

#

[2, 3, 5, 8]

somber heath
#

@digital ermine 👋

austere hornet
#

Macabre Tales peak junji ito

#

Hanging Balloon.

digital ermine
austere hornet
#

am i in the correct voice chat?

#

i don't mind tho

#

Opal's voice is so soothing

#

i might go to bed now

#

10:05pm

keen abyss
#

@somber heath hi

somber heath
#

@whole bear 👋

whole bear
#

hi

#

Opal

austere hornet
#

hmm

#

im about to go sleep

#

but maybe not

#

i might just do some orac

#

and get scolded by my parents for sleeping so late

somber heath
#

@vivid quarry 👋

austere hornet
#

everybody is sleeping rn

#

idk what to do

somber heath
#

Listen to us?

#

Read?

austere hornet
#

i'm still gonna get told off

somber heath
#

@slender sierra 👋

austere hornet
#

but i have the inability to sleep

#

and i wish i could join in

slender sierra
austere hornet
#

but my tiny apartment means no talking

#

Maybe whispering?

#

ASMR vc???

#

lmao

somber heath
#

Ew.

crystal fox
austere hornet
#

ASMR session with @austere hornet

somber heath
#

Hurp.

austere hornet
#

In Voice Chat -1

#

i still wanna participate tho

somber heath
#

You are.

austere hornet
#

AUSTRALIA??!!

#

umm

#

imma try whispering

#

maybe

#

my mic is shitty tho

#

bruh

#

a bayonet?

#

im just breathing into my mic 😭

rugged root
#

Intentionally?

austere hornet
#

no

#

i can't whisper

#

idk how to

#

it hurts my throat

rugged root
#

Fair

austere hornet
#

pithink soft-spoken asmr then?

somber heath
#

I hate whisper asmr stuff.

austere hornet
rugged root
#

I'm going to have to be a little quiet. The boss that isn't super keen on me being on Discord is in earshot

austere hornet
#

ohh no

rugged root
#

@crystal fox

austere hornet
#

im bad at english 😭

#

Im stuck on these three paragraphs

#

😭

#

@obsidian dragon 👋

rugged root
#

God damn it. STOP RESTRICTING MAX CHARACTERS

austere hornet
#

my essay is due on mon

digital ermine
#

11 characters = mobile number

austere hornet
#

🤓 quantum computing uses quantum mechanics 🤓 🤓 🤓

#

It's so painful

digital ermine
#

Chat GPT created the following password

#

rJ9$u6&Z#tP@2vQ
This password includes a mix of uppercase letters, lowercase letters, numbers, and special characters, making it difficult to guess. Make sure to keep it safe and don't share it with anyone you don't trust. Additionally, consider using a password manager to securely store and manage your passwords.

rugged root
#

Hold on, gonna write that down to use for one of mine later

austere hornet
#

·°‡‹⁄‹·°€‡⁄‚·°‹‡›‚·°‡€‹°€ÒÔÓψŒ¨Œ‹·¥‰¨ŒW

digital ermine
#

eek

austere hornet
#

Two very good passwords.

peak depot
#

iW4nn4qu1tth15j0b69

digital ermine
#

what is irc?

austere hornet
#

x={-b±√(b²-4ac)}/2a

#

Best password

digital ermine
#

IRC stands for Internet Relay Chat. It's a protocol used for real-time text-based communication over the internet. IRC allows users to connect to a network of servers where they can join channels (chat rooms) and engage in conversations with other users.

#

so says Chat GPT

#

it's fine

austere hornet
#

i don't belong in this vc 😭

#

umm...

digital ermine
#

ah thanks for explaining. I don't think i came across it.

austere hornet
#

gn guys...

#

im dead

#

and kinda sad

#

have a good rest of your days

digital ermine
#

ohh hang on i think i remember it...

#

like a node that died

#

neurons which wire together firetogether

#

synaptic plasticity in Neuroscience

#

just don't use your phone. yuk

obsidian dragon
rugged root
peak depot
digital ermine
#

got to go guys and dolls. Really nice listening in. take care.

rugged root
#

Catch you later

crystal fox
peak depot
crystal fox
rugged root
obsidian dragon
rugged root
obsidian dragon
burnt jetty
#

cute

obsidian dragon
burnt jetty
#

かわよ

obsidian dragon
burnt jetty
#

connection...
接続の悪さよ

#

I have no idea what they are saying, but I enjoy listening to them speak English.

obsidian dragon
#

anata wa jp?

burnt jetty
obsidian dragon
#

⭐_⭐

burnt jetty
obsidian dragon
#

genki desu ka

burnt jetty
obsidian dragon
#

🤔 \

burnt jetty
#

I know very little Python, but I participate in VC this way because it is interesting to hear English. My specialty is only C++.

#

I am using a translation, so please let me know if I am doing something wrong.
Or rather, why don't I have a say in this?

upper basin
#

Are you using an english translator?

burnt jetty
#

yes

#

間違えた

upper basin
burnt jetty
#

oh no...

upper basin
#

For now, please copy paste your code here

#

!code

wise cargoBOT
#
Formatting code on Discord

Here's how to format Python code on Discord:

```py
print('Hello world!')
```

These are backticks, not quotes. Check this out if you can't find the backtick key.

For long code samples, you can use our pastebin.

upper basin
#

!pastebin

wise cargoBOT
#
Pasting large amounts of code

If your code is too long to fit in a codeblock in Discord, you can paste your code here:
https://paste.pythondiscord.com/

After pasting your code, save it by clicking the Paste! button in the bottom left, or by pressing CTRL + S. After doing that, you will be navigated to the new paste's page. Copy the URL and post it here so others can see it.

upper basin
#

Or use this paste bin if your code is too large.

burnt jetty
#

!code

import os
entries = os.listdir()

for entry in entries:
  print(entries)
wise cargoBOT
#
Formatting code on Discord

Here's how to format Python code on Discord:

```py
print('Hello world!')
```

These are backticks, not quotes. Check this out if you can't find the backtick key.

For long code samples, you can use our pastebin.

obsidian dragon
rugged root
#

You don't need to do the !code part

#

It was just to bring up the embedded message

burnt jetty
upper basin
obsidian dragon
#
import os
entries = os.listdir()

for entry in entries:
  print(entry)  #print one at a time
rugged root
burnt jetty
woeful salmon
burnt jetty
#

The only language I can do is C++, so I am trying to make a Python module in C++, but Python already has a full range of modules, and there is no room for me. I want to cry.

woeful salmon
#

reinventing the wheel for the sake of pure learning is never a bad thing

rugged root
#

The key there is for the sake of learning

obsidian dragon
#

I hear you would like this hem

#

@rugged root

woeful salmon
#

reinventing a wheel where the wheel is broken or not durable enough is sometimes required anyways tho xD i had to remake some neovim utils using treesitter for cpp for ease of use with my game engine recently

rugged root
#

It's my jam

obsidian dragon
#

dont' it just say this is filler text

woeful salmon
woeful salmon
stark river
#

how good is the regex on this bot?
i don't love

#

nice

rugged root
#

It's in there somewhere

obsidian dragon
#

how to prevent these things from splitting in the middle

#
    <a href="mailto:NightWolfBusinessproton.me">
      <i style="color:#8A90C7" <i class="fa-solid fa-envelope"></i>Email</a>
stark river
#

feels like something is not closed there

obsidian dragon
#
a {  
  white-space: nowrap;
}
#

got it

woeful salmon
#

pretty sure he means after so much time not so many times@obsidian dragon xD so not stalker i think

whole bear
#

@upper basin you have to have party in iran actually.

woeful salmon
#

a bit late now xD

#

context is gone

woeful salmon
peak depot
upper basin
#

@rugged root do you know what's the name of the VSCode extension that does type checking?

#

It like redlines the variables that are not consistent with the type annotation, like saying you return an int, and then returning a float.

woeful salmon
#

@rugged rootnot minor it has none / basic / strict typechecking

#

strict is actually stricter than default mypy

peak depot
#

need rest..

rugged root
#

I also recommend getting one for ruff

#

@azure pagoda Your connection is cutting in and out really bad

#

@azure pagoda It's really bad dude

#

We're getting a word ever 2 seconds

#

@pulsar island ❤️

#

Have to stop talking now since a co-worker is back here

#

Always happy to see you, brother

#

Have you done the tutorial?

obsidian dragon
rugged root
#

It's getting there. The paragraph block feels a bit stretched

#

But I'd say finish your general layout and tweak from there

obsidian dragon
#

try mobile

rugged root
#

@pulsar island I honestly phased out

#

Works got me pinned a bit

#

Tax season

#

Later Fal

azure pagoda
#

@upper basin

rugged root
#

I think ACE stepped away a sec

#

@vernal bridge Sup brah

woeful salmon
rugged root
#

Or just saying Office Worker

digital rose
#

anyone with some experience willing to help me with a few questions, I just finished the harvard intro to python course and i have some experience with quickbasic in highschool - i get the logic but i need to help set up my environment and ask questions to a human instead of gpt to understand what/why

rugged root
#

Of course, just ask away

#

What part has you tripped up, black?

digital rose
#

im super new

vernal bridge
rugged root
#

Eh

digital rose
#

but basically, i dont understand why when i type hello.py in my terminal it doesnt* execute

rugged root
#

I'm conscious, that's about all I can ask for

#

So you have to tell the computer that you want to use python to run it

digital rose
#

freak

#

i put python in front and that worked

rugged root
#

Yep

digital rose
#

is there a way to make it so i dont have too?

woeful salmon
# digital rose

.py files are just text files with python code not executables so you cannot execute them, instead you give the file's path to the python executable which then interprets that code as instructions and does whatever your code is supposed to do

digital rose
#

ty noodle

#

im day 0 corder

#

coder*

rugged root
#

Uno momento

digital rose
#

thank you for the help

#

ill need a lot more

woeful salmon
rugged root
#

@upper basin If you want to stream I'll take a look

#

Trying to figure out the type hinting thing

#

One moment

woeful salmon
#

@azure pagoda if you don't want to stream right now then its not that useful as the stream perms are not permanent as we cannot control what people stream while noone is moderating

rugged root
#

Remove the Pylance one

#

It should be in the regular Python install already

#

@woeful salmon ^

#

Either?

#

Hold on

#

Let me double check....

#

His type hinting is weird is what he's saying

#

Same

#

Cheers

#

Wait say again?

#

@civic chasm You have my curiosity

#

How.... classy

civic chasm
rugged root
#

Interesting

#
def test(ham: str):
  ...

test(3)
#

That should also complain

woeful salmon
#
foo: str = 2
rugged root
#

@limber oar Yo

rugged root
#

Fair enough, I am indeed wrong

#

The base Python install (VS Code extension) does not have the type checking

#

Interesting

rugged root
#

Right, but I thought the base DID install PyLance

woeful salmon
rugged root
#

Then...

woeful salmon
rugged root
#

Something's amiss

woeful salmon
#

its off by default

rugged root
#

Whyyyyyy

#

It's not that heavy

abstract lantern
#

Hello.

rugged root
#

Yo Arsen. How've you been

#

That's my bad then

#

I lead him wrong

#

You can

#

Uhhhhhh one sec

#

You have to put type before the variable name

#

So like

type Vector = list[float]
#

You can do that as well

#

Which?

#

You can

#

Wait wait

abstract lantern
#

Anyone familiar with simple TTS module for existing wav files not like pyttsx3?

rugged root
#

Sounds familiar, Ace

#

One more time?

woeful salmon
rugged root
#

Oh the type stubs

#

Uhhhh

#

I don't think they're strictly necessary

#

It won't affect runtime speed

#

It's purely for your editor or type checker being faster at checking stuff while you're coding

#

Fun fact, there are things that let you auto gen the .pyi files

whole bear
#

@upper basin charge your laptop

upper basin
#

!e

import numpy as np
from collections.abc import Iterable

a = np.array([1, 2, 3])

print(isinstance(a, Iterable))
wise cargoBOT
#

@upper basin :white_check_mark: Your 3.12 eval job has completed with return code 0.

True
rugged root
#

I've been phased out

#

Sorry

#

Maybe if you're making a library

#

Exactly

#

Then yeah, might as well

#

It's especially beneficial if it's a large lib

#

Yep

#

Yep

#

Helper methods that are meant to be private or used internally to process stuff, not as much

#

But I'd still document them

#

Actually do auto doc generators let you filter out helper methods and what not?

#

Doesn't need to be ai

#

That

#

Yeah

#

No no

#

I'm not saying for the doc strings

#

I'm saying things that take doc strings and make documentation from that

#

Sphinx for example

#

Not sure what np.pad() returns

#

That's not messing with it

#

I don't think anyway...

#

Although it's worth trying

#

It's square

#

Yeah

#

That's why I'm here

upper basin
#

yeahhh

rugged root
#

Wait

#

Is pad in place?

#

Does it just modify data?

#

Oh right

#

Hmm

#

May be too deep of a recursion

#

Wait wait wait

#

Actually no, I'm wrong on that

#

Try typing that variable

#

NO no

#

Not that

#

As in adding the type hint to that variable

#

^^^

#

Adding the NDArray to the variable

#

It's uncommon

#

colon

#

:

#

Da fuq?

#

Hold on

#

I'm looking at the docs

#

That's weeeeeeird

#

Oh I'm sure it will....

#

I don't think it's a PyLance issue

#

And you'd be committing to PyRight

#

Fair point

#

Oh huh

#

There's some specific stuff for numpy typing

#

Didn't know that

#

It's possible to mutate the dtype of an array at runtime

#

Yeah that'd complicate things...

#

It'd throw an error rather than return None

woeful salmon
#

@upper basin

rugged root
#

Wait, did you install the MyPy plugin?

#

Because it looks like there's a setting

#

@woeful salmon

#

Or rather did we have him do it

#

Oh okay

#

My b

#

Nah nah

#

Was just curious

#

Wait really?

#

Yeah the thing that everything has

#

Oh it will

#

If you don't have anything defined.

dense ibex
#

@upper basin find and replace?

limber kelp
#

Hiii everyone

dense ibex
rugged root
#

Underwhelming?

#

Describe what feelings are coming to you now that you have fame

#

@woeful salmon

woeful salmon
#

reddit is reddit afterall :3

rugged root
#

Internet is what internet does

stark river
#

start snake farming

rugged root
#

@odd lynx Yo

stark river
#

in 1800s, delhi had a snake infestation
british govt decided to give a snake bounty
so people started farming snakes and then getting paid on the dead snakes they delivered

rugged root
#

People will always game the system

#

How goes it

#

Doing well, slav?

#

Cool cool

#

Jesus, what kind?

#

Fuck that

#

The hell it is

#

Interesting, I thought in most religions that snakes were bad omens

#

Fair

#

Holy shit

odd lynx
rugged root
#

The population of Dehli is over 5x larger than the population than the entire state of Missouri

stark river
#

still smaller than karachi

upper basin
#

Highly dense areas

odd lynx
#

Hi @whole bear

whole bear
#

Hi

rugged root
#

Coworker has returned

#

Hey Char

#

Just workin'

stark river
#

the Return of the Coworker

rugged root
#

Wait why would they hate your post?

#

Actually, one sec

#

There we go, now I can hear

#

@whole bear What's got you stuck?

woeful salmon
#

but ppl are complaining that its still rng

rugged root
#

Well no shit

#

Drops are still drops

woeful salmon
#

yeah but apparently they still wanna say my post is bad cuz its not 100% definitive increase in drops

#

lol

rugged root
#

Those are pretty neat

#

Of course

#

Drop it like it's hot

#

Yep

rugged root
#

Fluent Python is amazing

#

Yep. All thanks to dunders

#

And meta methods

#

But more often than not, dunder

#

One sec, have to grab some copy paper

upper basin
#

c struct

rugged root
#

collections is great. itertools is cool as well

#

Counter is my bread and butter

#

Love that

#

?

#

!d collections

wise cargoBOT
rugged root
#

HA

#

Oh that's gooooooold

#

That has to be a kick in the dict

#

!d itertools

wise cargoBOT
#

This module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML. Each has been recast in a form suitable for Python.

The module standardizes a core set of fast, memory efficient tools that are useful by themselves or in combination. Together, they form an “iterator algebra” making it possible to construct specialized tools succinctly and efficiently in pure Python.

For instance, SML provides a tabulation tool: tabulate(f) which produces a sequence f(0), f(1), .... The same effect can be achieved in Python by combining map() and count() to form map(f, count()).

rugged root
#

!d functools

wise cargoBOT
#

Source code: Lib/functools.py

The functools module is for higher-order functions: functions that act on or return other functions. In general, any callable object can be treated as a function for the purposes of this module.

The functools module defines the following functions:

rugged root
#

That's amazing

#

I do like the term dictionary more than hashmap

#

True, the underlying part

#

Because like JS objects aren't hashmaps, right? Even though they kind of meet that format

#

True

#

Whyyyyyy

#

I guess the LSP's do cover your ass most of the time anymore

#

True

#

Yeah that's fair

#

Fair

#

Some

#

There are some minor ones

#

Right

#

I was thinking about minor optimization

#

During the TS to JS part

#

Yeah

#

That's more what I was thinking

#

Sure sure

#

It's an itty bitty part

#

Always async

#

Does it do that with promises?

#

Gotcha

pale sigil
#

How do I get Circuit element symbols on mac?

#

Can't find anywhere

rugged root
#

What do you mean, cal?

whole bear
#

Hemlock is my fav admin

pale sigil
rugged root
#

Node is single threaded

#

Yep

whole bear
#

Cause he's the one I talk to the most

rugged root
#

NodeJS is single-threaded, but can make use of multi-core systems with Cluster module.
From what I'm seeing anyway

pale sigil
# pale sigil

is there like a website I can download these kinds of fonts from

rugged root
#

Not yet

#

Correct

#

That's a thing now

#

That sounds right

#

I'll look at the changes, but I'm pretty sure you're right

#

Ah yep

whole bear
#

Ok bye everyone

rugged root
#

!pep 684

wise cargoBOT
rugged root
#

We all have at least once

#

Ohhhhhhhhhhhhhhh

#

Okay that makes more sense

#

@upper basin Just use triple quotes

#
"""
string 
on
multi
line
yo
daw
"""
woeful salmon
#
Node.js runs JavaScript code in a single thread, which means that your code can only do one task at a time. However, Node.js itself is multithreaded and provides hidden threads through the libuv library, which handles I/O operations like reading files from a disk or network requests. Through the use of hidden threads, Node.js provides asynchronous methods that allow your code to make I/O requests without blocking the main thread.

Although Node.js has hidden threads, you cannot use them to offload CPU-intensive tasks, such as complex calculations, image resizing, or video compression. Since JavaScript is single-threaded when a CPU-intensive task runs, it blocks the main thread and no other code executes until the task completes. Without using other threads, the only way to speed up a CPU-bound task is to increase the processor speed.

@stark river

rugged root
#

Interesting that they're "hidden"

#

That'll tell you what you need to know about the voice gate

whole bear
#

@upper basin plug out your charge cable now.

rugged root
#

We're what sorry?