#voice-chat-text-1
1 messages · Page 46 of 1
re zero is also good, although not a typical isekai one. MC is very weak.
they kinda ruined it in the new movie
Gamera
Gamera vs Godzilla is basically like DC vs Marvel from what i know from youtube videos
yeah it is really cool!
and sad too
yeah but animation is goofy
Just watched it, it was really sad
is black mirror good?
@misty sinew 👋
@stuck bluff Hello👋
@green skiff 👋

I hooked up the accelerometer, so Doom is now "playable" entirely on the brick.
The capacitive touch wasn't tuned very well, so it's a bit shooty.
@misty sinew 👋
Ushio & Tora
https://img.animeschedule.net/production/assets/public/img/anime/jpg/default/yoru-wa-neko-to-issho-20d3d205e4.jpg Yoru wa neko to issho. No idea about this, but if it had an alternate title: Everyone is on Drugs.
grea
@wicked flame I am now available.
I am now away.
Omg I wish I saw this sooner😭
@stuck bluff can you hear me
Oh no😭
PLS some1 help
Its not working
Its saying download error
And how i use free download manager with dis
!paste
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.
hi
can someone help me understand docstring?
specific docstring format or docstrings in general?
some functions have extra preconditions for being able to call it
which, at times, can be hard to remember
def sqrt(x):
"""
returns the square root of `x`
raises `TypeError` when `x` is not an instance of `Real`
raises `ValueError` when `x` is less than zero
"""
...
or, if it was like C,
def sqrt(x):
"""
returns the square root of `x`
`x` must be non-negative or the world explodes
"""
...
yeah, docstrings don't normally influence code
!d doctest
Source code: Lib/doctest.py
The doctest module searches for pieces of text that look like interactive Python sessions, and then executes those sessions to verify that they work exactly as shown. There are several common ways to use doctest:
• To check that a module’s docstrings are up-to-date by verifying that all interactive examples still work as documented.
• To perform regression testing by verifying that interactive examples from a test file or a test object work as expected.
• To write tutorial documentation for a package, liberally illustrated with input-output examples. Depending on whether the examples or the expository text are emphasized, this has the flavor of “literate testing” or “executable documentation”.
^ plus this
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]
>>> factorial(30)
265252859812191058636308480000000
>>> factorial(-1)
Traceback (most recent call last):
...
ValueError: n must be >= 0
Factorials of floats are OK, but the float must be an exact integer:
>>> factorial(30.1)
Traceback (most recent call last):
...
ValueError: n must be exact integer
>>> factorial(30.0)
265252859812191058636308480000000
It must also not be ridiculously large:
>>> factorial(1e100)
Traceback (most recent call last):
...
OverflowError: n too large
"""
...
(you can automatically test examples from docstrings)
thank you
waoh
!zen
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!
which vpn using?
the one that's advertised all over Russian opposition content on YouTube
which is?
"they don't pay me for advertisement, so I don't get anything from sharing the name"
I'm half-paying attention
and, if they were, that'd be rule 6
lmao
!voice
Can’t talk in voice chat? Check out #voice-verification to get access. The criteria for verifying are specified there.
What's best compared with React stack with node.js or Django with python? for application dev
You have to verify
i cant
Check the rules
what are other requirements?
Django offers more than just an HTTP server
Next.js should be a bit more productive option thanks to single-languagedness
but you'll need to fill in the gap of ORM
what are you comparing based on?
performance? library availability? ease of writing?
(what is the priority?)
performance with APIs
.
FastAPI (or starlette directly), if you're using Python
or anything in Java/C#/Rust
those should be performant enough without safety issues of C++
LiteStar seems pretty solid for API stuff as well (for Python)
What with?
!d mimetypes
Source code: Lib/mimetypes.py
The mimetypes module converts between a filename or URL and the MIME type associated with the filename extension. Conversions are provided from filename to MIME type and from MIME type to filename extension; encodings are not supported for the latter conversion.
The module provides one class and a number of convenience functions. The functions are the normal interface to this module, but some applications may be interested in the class as well.
The functions described below provide the primary interface for this module. If the module has not been initialized, they will call init() if they rely on the information init() sets up.
Wait
Is that you, AF
@proper ridge Sorry for not responding. We haven't had the Mayo appointment yet.
All good.
Did you mean to message here or dm?
for distributed systems you absolutely do need a lot of theory
can you send me some d;ocument
You're passing x as y.
It's an example winter.
Third part errors out because you never assign a value to x inside the function, so you can't add a 1 to x since you have no value for x.
!e
x += 1
print(x)
:x: Your 3.12 eval job has completed with return code 1.
001 | Traceback (most recent call last):
002 | File "/home/main.py", line 1, in <module>
003 | x += 1
004 | ^
005 | NameError: name 'x' is not defined
!e
def inner_use(not_used):
inner_number = 1
inner_number += 1
print(inner_number)
outer_number = 5
inner_use(outer_number)
print(outer_number)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
001 | 2
002 | 5
Think of them as blocks.
A function is a box.
You give it sth, it does sth, it may or may not output sth.
@hallow pendant
!e
def global_read(not_used):
print(outer_number)
print(outer_number + 1)
outer_number = 5
global_read(outer_number)
print(outer_number)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
001 | 5
002 | 6
003 | 5
!e
def do_shit(new_shit):
hidden_shit = "shit"
print(f"Here's some shit. {hidden_shit}")
shit = "Oh shiit"
# Shit is passed as `new_shit`
do_shit(shit)
print(shit)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
001 | Here's some shit. shit
002 | Oh shiit
base for some modern distributed systems
!e
def global_write_attempt(not_used):
outer_number += 1
outer_number = 5
global_write_attempt(outer_number)
print(outer_number)
:x: Your 3.12 eval job has completed with return code 1.
001 | Traceback (most recent call last):
002 | File "/home/main.py", line 5, in <module>
003 | global_write_attempt(outer_number)
004 | File "/home/main.py", line 2, in global_write_attempt
005 | outer_number += 1
006 | ^^^^^^^^^^^^
007 | UnboundLocalError: cannot access local variable 'outer_number' where it is not associated with a value
(it thinks outer_number is defined inside the function)
!e
def proper_modify(outer_number_argument):
print(outer_number_argument)
outer_number_argument += 1
print(outer_number_argument)
return outer_number_argument
outer_number = 5
outer_number = proper_modify(outer_number)
print(outer_number)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
001 | 5
002 | 6
003 | 6
!e
def global_write_attempt(not_used):
global outer_number
print(outer_number)
outer_number += 1
print(outer_number)
outer_number = 5
global_write_attempt(outer_number)
print(outer_number)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
001 | 5
002 | 6
003 | 6
6.0001 Introduction to Computer Science and Programming in Python is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small p...
foo bar baz
thanks hemlock, see ya
SSDs have been getting quite fast lately
it is possible, although completely illogical, to have a computer with somewhat modern RAM and SSD, where RAM is technically slower in terms of throughput
especially with all the paging overhead
and same for network
I would think the main issue would be throughput
SSD-to-network can outpace SSD-to-CPU-to-RAM-to-CPU-to-network obviously
duck taping
duck typing + duct taping
don't let ducks steal your ammo
"maximum entertainment"
truly entertaining
!e
a = [1, 2, 3, 4]
b = [0]
for x, y in zip(a, b):
b.append(x + y)
print(b)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
[0, 1, 3, 6, 10]
.latex
C_2^{n+1}
.latex
$$C_2^{n+1}$$
^ this
.
!e
a = [1, 2, 3, 4, 5]
for x in a:
print(x)
a.pop(0)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
001 | 1
002 | 3
003 | 5
Okay, would you write "a SOC" or "an SOC"
This
or sock
a SoC -- 2
an SoC -- 10
https://en.wikipedia.org/wiki/System_on_a_chip
`a' only after `in' for some reason
2020 part 6 coming soon
" In their midst is a grizzled soldier with mismatched armor, nicknamed “Rabbit,” looking as out of place as a fox at a henhouse."
It's interesting seeing how the terms freeware and shareware have gone by the wayside
Wait...
Oh derp
Hey @hearty heath 👋
Insulting saffron in front of an Iranian is surely a recipe for trouble.
A lot of people sell fake saffron btw
This does look really good https://www.youtube.com/watch?v=Pa3ao2TVn1A
Andy shows us how to make a delicious, crunchy Iranian rice dish.
Check out the recipe here: https://www.bonappetit.com/recipe/crunchy-baked-saffron-rice-with-barberries
Still haven’t subscribed to Bon Appetit on YouTube? ►► http://bit.ly/1TLeyPn
ABOUT BON APPÉTIT
Cook with confidence using Bon Appetit’s kitchen tips, recipes, videos, an...
Oh
Tahchin.
Most people use saffron for arabic coffee
Google Shole zard.
It's like the dessert form of tahchin.
Might be worth it if you buy in bulk 😄
You should visit too. I'll make you some good shole zard and tahchin.
This is an issue of scoping and delayed evaluation I think.
Could you post just that part of the code here?
Why are you delaying the evaluation of the dictionary values with lambda functions?
@proper ridge Could you paste that bit of the code here? Just the dictionary and the following two paragraphs.
I'll create a small example to illustrate the issue.
https://pythontutor.com/render.html#code= foo %3D {} for fruit in "apple banana coconut".split()%3A foo[fruit] %3D lambda%3A f"hello, I'm a {fruit}" print(foo["apple"]())&cumulative=false&curInstr=12&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false
See how when the function loop terminates, the variable fruit points to the last value in the list of fruit ("coconut"). The names that you refer to in a function will be evaluated at the time that you call the function, not at the time that you define the function.
They all have the same closure
So, because they're defined dynamically, they need to retain all the variables in the enclosing scope, which would otherwise go away when the function they're defined in ends. That's called a closure.
python has lazy evaluation?
def foo():
a = 123
def bar():
return a
return bar
``` The variable `a` is local to `foo`, so would go away when `foo` returns normally. But because `foo` returns `bar`, and `bar` needs to access `a` when its called, the variable `a` has to be retained.
Yeah, I think so 😄
foo = dict()
for fruit in "apple banana coconut".split():
foo[fruit] = lambda: f"hello, I'm a {fruit}"
print(foo[fruit])
apple_fn = foo["apple"]
print(apple_fn())
When you call the function it goes "hey what does fruit refer to? I'll go look that up now".
The key thing is that the lambda function delays the evaluation of the name fruit until you call the function. (This isn't special to lambda functions btw, it's the same for any function.)
@proper ridge
!e
def lambda_factory(fruit):
return lambda: f"hello, I'm a {fruit}"
foo = {}
for fruit in "apple banana coconut".split():
foo[fruit] = lambda_factory(fruit)
# foo[fruit] = lambda: f"hello, I'm a {fruit}"
apple_fn = foo["apple"]
print(apple_fn())
banana_fn = foo["banana"]
print(banana_fn())
coconut_fn = foo["coconut"]
print(coconut_fn())
:white_check_mark: Your 3.12 eval job has completed with return code 0.
001 | hello, I'm a apple
002 | hello, I'm a banana
003 | hello, I'm a coconut
Yeah that's a nice solution 
Erm, so, it passes the reference by value 😄
But yeah, each function returned by lambda_factory will have it's own closure with its own fruit variable.
format_factory = "hello, I'm a {}".format
!paste
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.
Wouldn't this be same as
a = {
"Banana": "Hello, I'm a Banana"
}
```?
Which doesn't have the lambda part to allow for lazy evaluation.
Gotta go 👋
Thank you so much!
there is some repetition still
Where?
I really want to fix these by end of this month.
Back later
just read more code
watch more talks
use different languages
polymorphism != abstraction
^ this probably@umbral rose
in C++/Rust it's very much not cheap in terms of code
try different things
compare
use abstraction to contain complexity
This talk explains why (and how) to implement polymorphism without inheritance in C++.
The talk contains many C++ tips and techniques, including many new features from C++11. During the course of that talk a key feature from Photoshop will be demonstrated and implemented.
NDC Conferences
https://ndc-london.com
https://ndcconferences.com
def convert(
self,
circuit: QuantumCircuit
) -> Circuit:
# Define a circuit
num_qubits = circuit.num_qubits
qickit_circuit = self.output_framework(num_qubits=num_qubits)
gate_type_dict = {"id" : "ID",
"x" : "X",
"y" : "Y",
"z" : "Z",
"h" : "H",
"s" : "S",
"sdg":"SDG",
"t" : "T",
"tdg" : "TDG",
"rx" : "RX",
"ry" : "RY",
"rz" : "RZ",
"p" : "P",
"u3" : "U3",
"u" : "U3",
"swap" : "SWAP",
"cswap" : "cswap",
"ccswap": "ccswap",
"mcswap": "mcswap"}
def x_func(function,
param_dict = {"x"
for gate in circuit.data:
gate_type: str = gate.operation.name
if gate_type in self.skip_gates:
continue
qubit_indices = [
int(qubit._index) for qubit in gate.qubits
] if len(gate.qubits) > 1 else [int(gate.qubits[0]._index)]
gate_name = gate_type_dict(gate_type)
function = getattr(qickit_circuit, gate_name)
if gate_name in set("ID", "X", "Y", "Z", "H", "S", "SDG", "T", "TDG"]:
function(qubit_indices)
elif gate_name in set("RX", "RY", "RZ", "P"):
function(gate.operation.params[0], qubit_indices)
elif gate_name in set("U3", "U"):
function(gate.operation.params, qubit_indices[0])
elif gate_name in set("SWAP"):
function(qubit_indices[0], qubit_indices[1])
:x: Your 3.12 eval job has completed with return code 1.
001 | Traceback (most recent call last):
002 | File "/home/main.py", line 1, in <module>
003 | print(set("a", "b"))
004 | ^^^^^^^^^^^^^
005 | TypeError: set expected at most 1 argument, got 2
optimal is in (a, b) if comparison is fast
hmm
!timeit
assert "J" in {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
10000000 loops, best of 5: 18.6 nsec per loop
!timeit
assert "J" in ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
2000000 loops, best of 5: 153 nsec per loop
!timeit
assert "J" in {"A", "B"}
:x: Your 3.12 timeit job has completed with return code 1.
001 | Traceback (most recent call last):
002 | File "/snekbin/python/3.12/lib/python3.12/timeit.py", line 330, in main
003 | number, _ = t.autorange(callback)
004 | ^^^^^^^^^^^^^^^^^^^^^
005 | File "/snekbin/python/3.12/lib/python3.12/timeit.py", line 226, in autorange
006 | time_taken = self.timeit(number)
007 | ^^^^^^^^^^^^^^^^^^^
008 | File "/snekbin/python/3.12/lib/python3.12/timeit.py", line 180, in timeit
009 | timing = self.inner(it, self.timer)
010 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
... (truncated - too many lines)
Full output: https://paste.pythondiscord.com/BF3DL2PSNP52WJIM62NWFYVGMQ
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
20000000 loops, best of 5: 18.1 nsec per loop
!timeit
assert "B" in ("A", "B")
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
10000000 loops, best of 5: 31.4 nsec per loop
okay seems like construction is actually quite fast
a bit unexpected
!timeit
assert "A" in {"A"}
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
10000000 loops, best of 5: 19.8 nsec per loop
!timeit
assert "A" in ("A",)
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
20000000 loops, best of 5: 17.5 nsec per loop
!timeit
a = [1, 2, 3, 4]
b = 4
match a:
case 1:
print("1")
case 2:
print("2")
case 3:
print("3")
case 4:
print("4")
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
2000000 loops, best of 5: 134 nsec per loop
tf?
in C++/Rust, performance trade-offs for hash/search are way different
a bit suspicious
what is cookin?
!timeit
a = {
"1": lambda: 1,
"2": lambda: 2,
"3": lambda: 3,
"4": lambda: 4
}
a["4"]()
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
500000 loops, best of 5: 401 nsec per loop
split
two blocks
!timeit
a = {
"1": lambda: 1,
"2": lambda: 2,
"3": lambda: 3,
"4": lambda: 4
}
a["4"]()
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
5000000 loops, best of 5: 42.3 nsec per loop
are dicts slower than lists?
only second one is repeated
!timeit
a = {
"1": lambda: 1,
"2": lambda: 2,
"3": lambda: 3,
"4": lambda: 4
}
a["1"]()
a["2"]()
a["3"]()
a["4"]()
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
2000000 loops, best of 5: 148 nsec per loop
hmm
<4x
:white_check_mark: Your 3.12 timeit job has completed with return code 0.
1000000 loops, best of 5: 224 nsec per loop
not getting caches invalidated
how to create a codeblock
that lambda returns an interned int
!code
!code
print('a')
read this
!e
code
!e
print('Hello world!')
@limber walrus for commands, the best option for development in Python is with decorators
!e
def crash():
try:
crash()
except:
crash()
crash()
:warning: Your 3.12 eval job timed out or ran out of memory.
[No output]
CPU caches
!timeit
exec(type((lambda:0).code)(0,1,0,0,0,b'',(),(),(),'','',1,b''))
:x: Your 3.12 timeit job has completed with return code 1.
001 | Traceback (most recent call last):
002 | File "/snekbin/python/3.12/lib/python3.12/timeit.py", line 330, in main
003 | number, _ = t.autorange(callback)
004 | ^^^^^^^^^^^^^^^^^^^^^
005 | File "/snekbin/python/3.12/lib/python3.12/timeit.py", line 226, in autorange
006 | time_taken = self.timeit(number)
007 | ^^^^^^^^^^^^^^^^^^^
008 | File "/snekbin/python/3.12/lib/python3.12/timeit.py", line 180, in timeit
009 | timing = self.inner(it, self.timer)
010 | ^^^^^^^^^^^^^^^^^^^^^^^^^^
... (truncated - too many lines)
Full output: https://paste.pythondiscord.com/KB65DD55UYZG7MFNST5FA2MZYA
tbf those are big
@proper ridge factoring out commonalities -- another adjacent description
So, the initial refactoring I did was abstraction?
what Override said is the primary meaning of abstraction
def convert(
self,
circuit: QuantumCircuit
) -> Circuit:
# Define a circuit
num_qubits = circuit.num_qubits
qickit_circuit = self.output_framework(num_qubits=num_qubits)
gate_type_dict = {"id" : "ID",
"x" : "X",
"y" : "Y",
"z" : "Z",
"h" : "H",
"s" : "S",
"sdg":"SDG",
"t" : "T",
"tdg" : "TDG",
"rx" : "RX",
"ry" : "RY",
"rz" : "RZ",
"p" : "P",
"u3" : "U3",
"u" : "U3",
"swap" : "SWAP",
"cswap" : "cswap",
"ccswap": "ccswap",
"mcswap": "mcswap"}
gate_param_dict = {"ID" : lambda: [locals()["qubit_indices"]],
"X" : lambda: [locals()["qubit_indices"]],
"Y" : lambda: [locals()["qubit_indices"]],
"Z" : lambda: [locals()["qubit_indices"]],
"H" : lambda: [locals()["qubit_indices"]],
"S" : lambda: [locals()["qubit_indices"]],
"SDG" : lambda: [locals()["qubit_indices"]],
"T" : lambda: [locals()["qubit_indices"]],
"TDG" : lambda: [locals()["qubit_indices"]],
"RX" : [lambda: [locals()["gate"].getattr("opperation").getattr("params")[0], lambda: locals()["qubit_indices"]],
"RZ" : [lambda: [locals()["gate"].getattr("opperation").getattr("params")[0], lambda: locals()["qubit_indices"]],
"P" : [lambda: [locals()["gate"].getattr("opperation").getattr("params")[0], lambda: locals()["qubit_indices"]],
"U3" : [lambda: [locals()["gate"].getattr("opperation").getattr("params"), lambda: locals()["qubit_indices"][0]],
"U" : [lambda: [locals()["gate"].getattr("opperation").getattr("params"), lambda: locals()["qubit_indices"][0]],
"SWAP" : [lambda: [locals()["qubit_indices"][0], locals()["qubit_indices"][1]]
}
param_dict = {"x"
for gate in circuit.data:
gate_type: str = gate.operation.name
if gate_type in self.skip_gates:
continue
qubit_indices = [
int(qubit._index) for qubit in gate.qubits
] if len(gate.qubits) > 1 else [int(gate.qubits[0]._index)]
gate_name = gate_type_dict(gate_type)
function = getattr(qickit_circuit, gate_name)
parms_list = gate_param_dict[gate_name]
function(*parms_list)
qickit_circuit.GlobalPhase(circuit.global_phase)
return qickit_circuit
build another scope within which you can be absolutely sure of its correctness
no need to use locals()
!e
x = lambda: y
y = 1
print(x())
:white_check_mark: Your 3.12 eval job has completed with return code 0.
1
!e
def main():
x = lambda: y
y = 1
print(x())
main()
:white_check_mark: Your 3.12 eval job has completed with return code 0.
1
even with closure
def convert(
self,
circuit: QuantumCircuit
) -> Circuit:
# Define a circuit
num_qubits = circuit.num_qubits
qickit_circuit = self.output_framework(num_qubits=num_qubits)
gate_type_dict = {"id" : "ID",
"x" : "X",
"y" : "Y",
"z" : "Z",
"h" : "H",
"s" : "S",
"sdg":"SDG",
"t" : "T",
"tdg" : "TDG",
"rx" : "RX",
"ry" : "RY",
"rz" : "RZ",
"p" : "P",
"u3" : "U3",
"u" : "U3",
"swap" : "SWAP",
"cswap" : "cswap",
"ccswap": "ccswap",
"mcswap": "mcswap"}
gate_param_dict = {"ID" : [lambda: qubit_indices]
"X" : [lambda: qubit_indices],
"Y" : [lambda: qubit_indices],
"Z" : [lambda: qubit_indices],
"H" : [lambda: qubit_indices],
"S" : [lambda: qubit_indices],
"SDG" : [lambda: qubit_indices],
"T" : [lambda: qubit_indices],
"TDG" : [lambda: qubit_indices],
"RX" : [lambda: gate.opperation.params[0], lambda: qubit_indices],
"RZ" : [lambda: gate.opperation.params[0], lambda: qubit_indices],
"P" : [lambda: gate.opperation.params[0], lambda: qubit_indices],
"U3" : [lambda: gate.opperation.params[0], lambda: qubit_indices],
"U" : [lambda: gate.opperation.params, lambda: qubit_indices],
"SWAP" : [lambda: qubit_indices[0], lambda:qubit_indices[1]]
}
param_dict = {"x"
for gate in circuit.data:
gate_type: str = gate.operation.name
if gate_type in self.skip_gates:
continue
qubit_indices = [
int(qubit._index) for qubit in gate.qubits
] if len(gate.qubits) > 1 else [int(gate.qubits[0]._index)]
gate_name = gate_type_dict(gate_type)
function = getattr(qickit_circuit, gate_name)
parms_list = gate_param_dict[gate_name]
function(*parms_list)
qickit_circuit.GlobalPhase(circuit.global_phase)
return qickit_circuit
it can't
it can't cache because values from local scope are used
in Python it should take the instance of a class as an argument
overhead of runtime inspection of variables is too high
like you need to walk up the stack to find the thing
!d inspect
The inspect module provides several useful functions to help get information about live objects such as modules, classes, methods, functions, tracebacks, frame objects, and code objects. For example, it can help you examine the contents of a class, retrieve the source code of a method, extract and format the argument list for a function, or get all the information you need to display a detailed traceback.
There are four main kinds of services provided by this module: type checking, getting source code, inspecting classes and functions, and examining the interpreter stack.
class Adapter[T](ABC):
@abstractmethod
def x(self, gate: T, indices: Indices) -> Indices: ...
@abstractmethod
def rx(self, gate: T, indices: Indices) -> tuple[Angle, Indices]: ...
def swap(self, gate: T, indices: Indices) -> tuple[Index, Index]:
_ = gate
return indices[0], indices[0]
# ...
what your thing is using
and T is external format
class QiskitAdapter(Adapter[QiskitGate]):
# def x ...
y = x
z = x
def rx(self, gate: QiskitGate, indices: Indices) -> tuple[Angle, Indices]:
return gate.opperation.params[0], indices
rz = rx
# ...
ig you don't actually need indices most of the time
and also (T) -> GateType
what you actually really should do is have some data-only intermediate format, that you later do whatever with
don't write it somewhere else and don't evaluate it on the spot
have a no-side-effect function
that returns a translated value
log is a wrong approach
don't do mutable
qc = qc.X(...) instead
minimise mutable access
then that's fine, yes
is it a pure function currently? (no changing self or anything else outside the scope)
ok
@misty sinew 👋
guys
QICKit
!paste
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.
@true valley
My first car
1992 Chrysler Voyager
0-60 ⏱️ 12.3 seconds
16 MPG
What I want 🤤
Don't do the ford.
why
All I want
^- general industrial equipment
^- Paintings and shiz
https://hibid.com/
^- General stuff
The leading online auction platform. Sell, search, bid, and win on Antiques, Collectibles, Coins, Estate & Personal Property, Cars & Trucks, Toys and more.
https://svdisposition.com/
^- Silicon Valley tech companies that die
Silicon Valley’s Premier Surplus Asset Management and Disposition Company
@mild flume That's your solution
does anyone have worked on Emails sending python projects
@dawn heath 👋
!voice
Can’t talk in voice chat? Check out #voice-verification to get access. The criteria for verifying are specified there.
@thorny lantern 👋
are you ai or what?
hey opal
ai
@dawn heath can you code in python?
can you help me with my python question please
tell me
what is the largest file i can load in memory?
i don't know yrr
yrr?
@dense finch 👋
I am just intermediate python student
@stuck bluff are you expert in python??
@thorny lantern are you?
this ai is good
you are an AI
yes i thik so
have you tried flask socketio
nah bro
are you sure you are not an AI
are you guys experts?
@dawn heath am i.. what?
expert or something?
@stuck bluff print("You are an AI")
i am from italy
@stuck bluff
if you_are_person:
leave_voice_chat()
else:
stay() # staying means you are AI
@stuck bluff in which language you are made?
are you guys real person or what?
are you guys trolling?
are you ai
@stuck bluff
this
@thorny lantern do you think it is ai
import sys
print sys.maxsize
9223372036854775807
@fair heron from where?
!e
import sys
print(sys.maxsize)
:x: Your 3.12 eval job has completed with return code 1.
001 | File "/home/main.py", line 2
002 | print sys.maxsize
003 | ^^^^^^^^^^^^^^^^^
004 | SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
!e
import sys
print(sys.maxsize)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
9223372036854775807
!e import os; print(os.environ)
:white_check_mark: Your 3.12 eval job has completed with return code 0.
environ({'LANG': 'en_US.UTF-8', 'OMP_NUM_THREADS': '5', 'OPENBLAS_NUM_THREADS': '5', 'MKL_NUM_THREADS': '5', 'VECLIB_MAXIMUM_THREADS': '5', 'NUMEXPR_NUM_THREADS': '5', 'PYTHONDONTWRITEBYTECODE': 'true', 'PYTHONIOENCODING': 'utf-8:strict', 'PYTHONUNBUFFERED': 'true', 'PYTHONUSERBASE': '/snekbox/user_base', 'HOME': '/home', 'LC_CTYPE': 'C.UTF-8'})
@vivid creek 👋
hi my mic is suppressed
!voice
Can’t talk in voice chat? Check out #voice-verification to get access. The criteria for verifying are specified there.
@stuck bluff
Hm?
in todays job market django or flask which will be better??
FastAPI
what kind of app do you need to build?
Flask, Quart and FastAPI are one of the simplest ones to use
ohh
if you ever use Flask, you should be aware of Quart
Quart is just Flask but with better support for concurrency
look at open positions wherever you can work, and learn things those jobs require
hey @delicate wren can you join vc
not right now; connection issues
I'm responsible for most of HTTP-related stuff where I work
Rust, JavaScript, Python
how many year of experience do you have?
depends on how it's counted
I started Python 7 years ago, but started working for money only last year
you working in office or from home?
mostly remote
can i ask your nationality?
I live and work in Russia currently
ohh how do you apply remote job?
I got an offer from one of the cofounders of the company, I've never applied
in Russia, there are quite a few websites for finding jobs and applying to them
I haven't used those
Hello
analogues to linkedin but without the social networking aspect
As I am beginner which jobs are good for remote job?Can you share your experience
for programming jobs, remote/non-remote depends more on specifics (e.g. culture) of the company rather than a field
at least for most fields
is doing backend web dev using flask good option??
(for working with hardware drivers/some complex networking setups and some security stuffs, there might be valid reasons to enforce non-remote)
Flask isn't going to be enough
What should i learn then?
for APIs, learn FastAPI;
to have templating and ORM included, learn Django
also backend is quite a wide definition
things like experience with SQL, message brokers, etc. are sometimes going to be more important than a specific HTTP server/framework
Thanks @delicate wren for spending your time to answer my question. I will forever be grateful for your suggestion. Thanks a lot
- you'll need to know aspects of the client-side code anyway, since that influences how the backend can/will be accessed
@gritty tiger how u doing?
@gritty tiger can't
fine. what are u programming?
sry what?
oh, yeah. i have also programmed a little games in vscode but i wanted to get into programmng games and stuff
python is the best and easiest but i find it kinda hard to now learn c++ when im switching to game development tho i can use GPScript
are you good at game development or programming @gritty tiger
@gritty tiger can you join the channel 2 below
@glad turtle er du dansk?
no
sup Zeki
@mild flume can i ask you to please unmute me i find it very irretating that i can't talk to all the people in chat and can't wait another day
@gritty tiger could you add me?
Patience is a virtue.
The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.
:incoming_envelope: :ok_hand: applied timeout to @misty sinew until <t:1731662246:f> (10 minutes) (reason: burst spam - sent 8 messages).
The <@&831776746206265384> have been alerted for review.
Hello, I am new to the field of programming. What are the best sources for distance learning?
**WHO know make joinner discord with token Dm Me !! Fast **
Good evening @mild flume, i was wondering if you would do me that little good thing, to add me back on discord. i would think you could be a good helper if you know unity, and your also very nice instead of some people on the server that just replies "ur mom, hahahahh". I am not from usa og england so sry if my english isn't that good : (
SQL, message brokers are more important than HTTP framework ? Then how will those get applied without frameworks
the original message contains the word "specific" for obvious reasons
the context of that conversation was about backend services
which, quite often, connect to each other with something other than HTTP
and the meaning of it was to learn actual useful things that are relevant to many problem domains instead of just focusing on learning frameworks
Each job market has conditions, and projects they are working on. So its better suggest to research before jumping ?
Many clients only allow migrations if and only if thy need it badly
how you all doing
:incoming_envelope: :ok_hand: applied timeout to @sacred shuttle until <t:1732365691:f> (10 minutes) (reason: duplicates spam - sent 4 duplicate messages).
The <@&831776746206265384> have been alerted for review.
def add_numbers(*args):
print(sum(args))
add_numbers(1, 2, 3) # Output: 6
@gritty tiger Django+HTMX
@gritty tiger there is a subset of JS that's very optimiseable
which is what emscripten used to do
and now it's WASM
which is a separate tech
it's a very JIT'able part of JS
there are some tricks to make JIT function better
for example, y = x|0 may hint to the runtime that y is an integer
and thus can use CPU instructions directly working with integers
instead of the default (floating point)
I still haven't done anything useful with HTMX
most of the things I make for the frontend rely on interactivity
(real-time interactivity, without requests to the server)
Why can't i join voice , I have completed all the requirements now
Still why can't i join the voice ?!?!?
have you pressed the verification button?
What button
where is it?
hi 🙂
hi guys
hello
print(roi)
3X+1 Rule I made it in Python :
even = [0, 2, 4, 6, 8, 10]
odd = [1, 3, 5, 7, 9]
num = even + odd
n=0
eo = 0
g = 0
pv = " "
while True:
n = input("Enter a integer from 2 > ")
if n == "exit":
break
try:
n = int(n)
except ValueError:
print("Invalid input")
continue
while True:
g = int(n)
while g > 0:
g-=1
pv = pv + "*"
print(str(n) + pv)
g = 0
pv = " "
if n == 1:
break
eo = int(n)
while eo > 10:
eo = eo - 10
if eo in even:
n = int(int(n) / 2)
elif eo in odd:
n = int(n)*3+1
print("Nothing to see here!")
@proper ridge Nothing impressive style-wise
As seen on triplem.com.au, Triple M's cheeky remix of Julia Gillard's new catchphrase.
Subscribe! http://bit.ly/SubscribeTripleM
Here at Triple M we love rock, and we love sport.
Expect to see exclusive interviews, exciting insight into the world of Aussie sport and all-round Aussie fun.
Website: http://www.triplem.com.au
Facebook: htt...
Ran out of time
Julia Gillard Moving Forward GPS Ad from The Chaser's "Yes We Canberra"
@mild flume Re: "Moving forward"
Looks really good!
I'd think a dark background would be better, but overall looks really clean!
Yeah. I would have made it nicer if I had time
I assure you, my query was not "bad graphs axes"
there is so much wrong in this image
the more I look at it, the worse it gets
wrapperee
@mild flume
@mild flume some event maps in R6 are tournament-themed
@mild flume
Ah damn, flipped it
I bite, awoof 🐺
and then get trolled by Git which sometimes does only unix paths because because
Where's your jam jar cracka!
I hate this
let callback = |Struct { .. }| todo!();
start(/* details omitted */, callback).await // error
start(/* details omitted */, |Struct { .. }| todo!()).await // ok
what
@mild flume it was higher a few hours ago
USD was
(compared to RUB)
114
I'm seeing 113.15 right now
I'm not willing to volunteer without a specific question
@umbral rose it's all dogecoin now
when done more correctly, it's not an investment, it's a (bad) diversification of assets
expected to lose value but less quickly than putting in the back and getting it seized
@zenith wedge not even bulbs towards the end; then it was mostly futures contracts to get bulbs later
nft market: dead
nft bros: just zoom out
nft market: still dead
I don't remember the last time I saw tilted selectable text
hello guyz 👋
Source code: Lib/xml/dom/__init__.py
The Document Object Model, or “DOM,” is a cross-language API from the World Wide Web Consortium (W3C) for accessing and modifying XML documents. A DOM implementation presents an XML document as a tree structure, or allows client code to build such a structure from scratch. It then gives access to the structure through a set of objects which provided well-known interfaces.
i also when i started javascript, found it has alot of crap in it, didn't really care because i can just not use the crappy part of the language and it works well enough
after a while ended up switching to typescript because of the type safety,
after a longer while switched back to javascript and just jsdoc to get typescript benifits in the editor because its just much lesser of a pain
“Type safety”
hi
@thin lintel "that assumes middle class exists"
(it's extremely thin in Russia; some researchers' views on it is that it's still irrelevant)
((and, yes, this is even mentioned as part of Russian school program on economics))
"and, in Soviet Russia, the requirement is 6 decades instead of 6 weeks"
@zenith wedge docker in GHA mostly just works
just make sure caching is caching
you need to store it somewhere
idk how much GH gives for free
like, half a gb, iirc
^ something you won't get trivially in self-hosted GitLab/Jenkins/nektos-act/wherever if you want to isolate runs well
@umbral rose it has/had python in system packages
that used to be an issue
or still is
time to alias python to uv run to confuse the system
wrote 140 lines in 100 minutes
"very productive"
half-asleep coding
@umbral rose @hallow reef WebRTC in Discord is a security hole, and that used to be problematic in direct calls
now they even claim to use e2ee in server VCs
not sure if true
canonically true since Wumpus is not among our friends, because Wumpus has no friends
Discord lore
only now noticed there's this-looking thing behind the tree
TIL it's named Kodama
this seems interesting
https://ui.shadcn.com/
hi can someone help me with cogs?
import discord
from discord.ext import commands
import os
from dotenv import load_dotenv
load_dotenv()
import asyncio
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents , help_command=None)
async def load_cogs():
cog_folder = os.path.join("C:\\Rudra\\Coding\\Official works\\discord bots\\Final bot\\cogs")
if not os.path.exists(cog_folder):
print(f"Error: The '{cog_folder}' folder does not exist.")
return
for filename in os.listdir(cog_folder):
if filename.endswith(".py"):
try:
await bot.load_extension(f"cogs.{filename[:-3]}")
print(f"Loaded cog: {filename}")
except Exception as e:
print(f"Failed to load cog {filename}: {e}")
@bot.event
async def on_ready():
print(f"Bot is online! Logged in as {bot.user} ({bot.user.id})")
await bot.change_presence(
activity=discord.Activity(type=discord.ActivityType.playing, name="Madwofl!")
)
async def main():
async with bot:
await load_cogs()
token = os.getenv('DISCORD_TOKEN')
if not token:
print("ERROR: DISCORD_TOKEN not found in the .env file.")
return
await bot.start(token)
if __name__ == "__main__":
asyncio.run(main())
my main code
!d pathlib
Added in version 3.4.
Source code: Lib/pathlib/
This module offers classes representing filesystem paths with semantics appropriate for different operating systems. Path classes are divided between pure paths, which provide purely computational operations without I/O, and concrete paths, which inherit from pure paths but also provide I/O operations.
If you’ve never used this module before or just aren’t sure which class is right for your task, Path is most likely what you need. It instantiates a concrete path for the platform the code is running on.
Pure paths are useful in some special cases; for example:
would you help me?
what is the issue?
apart from os.path
no issue in this code
it is loading only 1 file bcz there is same of classs named "general" in both folders
why is it General and General and not Av and Ping?
bcz i do not want to make it more complex .......... like changing is nessary but have no use
do i need to change for sure or there is any other way for it?
having separate names makes it easier to navigate the code and debug the code, so it's not really more complex
just name the class for what it represents
ok thanks for you opinion
i will surely change the name
or maybe remove the classes lol
@umbral rose
reflection on SQL should only happen for migrations (i.e. clever uses of it are mostly wrong);
ig that could be the reason they avoid simplifying it
if you don't do the whole-database-aware thing, pain happens
i will also be back in a few mins brb
This will give you the abstract idea of how json interact with python
https://stackoverflow.com/questions/26745519/converting-dictionary-to-json
think of it like saving process settings, for future reference
{
"Tasks": [
{
"description": "first task",
"completed": false,
},
{
"description": "second task",
"completed": true,
}
]
}
here is an example of how windows terminal stores my custom configuration in a json file
so that when i boot up the windows terminal all the configs are loaded
!paste
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.
@hallow reef what kind of mechanical keyboard
@gentle meteor you can also use switch statement to make your code more readable
The rule i follow from uncle Bob if it's not understandable in first read it's not good
Which is I mean unrealistic but we try
Soemthing like this :
<?php
echo "Please type a size : \n";
$size = "M";
switch ($size) {
case "S":
case "M" :
echo "Samll or Medium\n";
break;
case "L":
case "XL":
echo "large or extra large\n";
break;
default:
echo "Unknown Size";
}
$badAttempts = 2;
switch ($badAttempts) {
case 3:
echo "you are blocked\n";
break;
case 2:
case 1:
echo "Retry! \n";
}
Sorry, only had this handy on me 🙂
I am just suggesting that in this code since he is trying to keep track of the changes, and yeah like @cold trellis only useful in other languages like C and javascript
Ah, json.dump vs json.dumps, never really got to the bottom of that one XD
@gentle meteor would also split up the different functions, like handling writing to a json file, another one to read from the json file and finally another function that handles you deleting from the json file
Can make things modular and abstract utils and use in them.
pip freeze for the win !!
uv.lock
Googling asap
try making your own functions without relying on already made up functions
even if you use many functions from a library, making a smaller subset for your own needs is sometimes worth it
Sorry for the tangent question, but anyone knows what's up with advent of code this year ? any news on the same ?
with time you will end up learning new concepts and understanding why things work the way they work.
in C/C++ you actually often have to do this
because those compose so poorly it's not guaranteed to compile in the first place
What's the goal here? What are you trying to do with your code ?
(on screen it's just a demonstration of what json module can do)
@cold trellis pyright doesn't like to do it
at least by default
it's more lazy-indexing than pycharm lsp
write to temporary then move-replace
(although if the first part doesn't work, the overall scheme doesn't work)
"just use neovim over terminal that doesn't understand mouse clicks and copy the code by selecting it with a pointer"
have I seen this before 
probably
it's from https://roadmap.sh/projects/task-tracker
(only might've seen as a screenshot; I never read roadmap.sh for any reasons other than to find examples of how wrong it is)
I don't go to reddit
0.5 core, aws-style
I don't remember if they do lower
I might be confusing it with something else
definitely saw 0.5 core offered somewhere, can't remember where
when you go over the limit for too long, you get throttled
I'd expect
docker has that for containers
and aws has that for containers too
sounds like an awful experience though xD
if the container is expected to only run at ~10%, that sounds completely fine
i wonder what happens if you try to use multi-processing in that xD
@true valley
hello
sup
even exit() lags
I set --cpus to 0.1
damn 😮
nothing much lesser sick than yesterday though
okay, docker has problems stopping such containers
or my docker is just broken
probably that
okay what should we multiprocess
blackjack simulation? xD
try 0.5?
okay, fixed, was missing stuff in CLI
although weird behaviour anyway
!d multiprocessing
Source code: Lib/multiprocessing/
Availability: not Android, not iOS, not WASI.
This module is not supported on mobile platforms or WebAssembly platforms.
okay it's not yet critically slow
time to
with Pool(64) as p:
print(p.map(f, range(64)))
it lags after printing
(and before)
😮
stopping all the processes
or just waiting
but works anyway
but the performance is bad anyways though right
tomorrow testing with 0.1MB RAM then
now imagine a web server
the requests per second going down
0.1MB ram i don't think the python interpreter will even run
or probably start writing to swap and become really slow
it needs 2~20
I'm not providing any swap
MB
or MiB
close enough
yeah then probably just gonna crash
5MiB: docker does not allow
6MiB: crashes
7MiB: crashes after info message (version, etc.)
8MiB: seems to work
aligns with usual ~8MB usage
I have seen python compress to around 3MB before, I think
(after some GCing and running for a while)
idk how to reproduce or if was even real
how to get voice permision
This aint no english
hiiii
Gotta go folks
hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
Hi!
oh wait wrong browser
whats up
from where u r
nope but learning rn
hru doing today?
@hallow reef Hii hru doing today
hiii
hru?
continuing to work on my minesweeper implementation
all the best to u for ur work
i got a doubt can i ask
what's the question?
@chilly panther you have mic volume configured a bit too high
if you're on desktop/web, you can reduce it in settings
sorry i f up my alsamixer
what do you want to stream?
is english compulsory?
!rule 4
4. Use English to the best of your ability. Be polite if someone speaks English imperfectly.
we try to keep the communication within the server in English
im not that goood at it soo just enquiring
but if we have some hommies then
can we
use broken english
like only us
i will try my best
weird but it got your attention and u kinda advertised it
@stuck bluff can i call u tismlapo
No.
"for that 'list', __contains__ is defined but __iter__ isn't"
Hello to all of you, I have a question for all of you: At what level are you all in your Python journey?
beginner
idk means what
@dawn reef 👋
hi
spoiled is the wrong word for it
idk = i dont know
thats nice
all the best!
thank u
@vital tapir 👋
October Sky by Jake G is another good one
keeping separate ratings now
one includes games before each separate game was stored
and the other doesn't
"what is kiwiland to emutopia?"
I've seen and eaten that multiple times but never heard the name
Halva*
always welcome
that name I know;
but that one is a specific kind
Hello
Hello!!!
Ate turkey, saw family
Standard american holiday, just more turkey
wife's family
I am american
Send me $$$ every month, and in many months time, I will be wealthier and you will not. It works!
XD
That is not possible..
WHEEZE.
This reminds me of those "Buy my course boys it will get you to do this" courses.
@viral leaf "how to concentrate? just concentrate"
there's clear problem with that logic
after writing, I looked stuff up, read half of a sentence and didn't see that included
I'm being summoned elsewhere
Limbic system maybe
This is another good song:
https://youtu.be/O-kHB2fWUS8
This is an unofficial video for King Missile. Let's play ! Can you recognize some of these " sensitive artists " ?
S better analogy might be
Doctors are SWE,
Nurses are SRE
I don't think the analogies fit exactly. Maybe a rough representation yes.
@thin lintel fascinating
Basically because IT/SWE/SRE the knowledge is pretty much transferrable
I agree, I was thinking in terms of general vs specific, abstract vs concrete.
Aah! Yes. Like specific knowledge vs applied? ML Scientist vs ML Ops?
I don't think so
Kant ?
No
Emmanuel Kant?
No 😄
You can call me Kant
Its a derogatory word, so cannot correct you here 😄
I thought it would be censored if I said it...
@tame leaf lets not use that word here please
my bad
I think in Australia they are saying "can't"
But it sounds like
.... Anyway, ML is a better topic
LoL, "you're the girl"
LoL
League of Legends?
Laughing out loud.
I thought it was a cute way to refer to someone with mild surprise
Fun fact, I have a dog sleeping in my lap.
Oh?
Oh, @tame leaf you paste the text into the edit and precede it with a greater than sign?
yes
@outer oriole https://en.wikipedia.org/wiki/Laestadianism
Laestadianism (Swedish: Læstadianism; Finnish: Lestadiolaisuus; Meänkieli: Lestaatiolaisuus; Northern Sami: Lestadianisma), also known as Laestadian Lutheranism and Apostolic Lutheranism, is a pietistic Lutheran revival movement started in Sápmi in the middle of the 19th century. Named after Swedish Lutheran state church administrator and temper...
the article is not good, very bias and written by someone inside the religion
@outer oriole Your speaking diction is very good, can you give me advice because I don't have such diction?
What profession do you work in?
@sly pond why are you black hole
@summer shadow I love penguins, are you a penguin? If you are a penguin, I can give you a fish, my little friend.
Im emperor penguin wannabe
nope
Actually, I want to talk, but my accent is terrible, no one will understand what I'm talking about, so it's best to write.
Dude, you are really an energetic person. You never get tired of talking. I have never seen anyone as energetic as you in my life. @outer oriole
what is better a student with foreign key group id or group that has the list of students