#ot2-the-original-pubsta
652 messages Β· Page 63 of 1
huh. let me search this thing.
ah, found it. All I had to do with that was that I edited the question and fixed their formatting, five years ago
No idea why they'd try to ping me because of that, probably just saw my name on the page. It's here https://askubuntu.com/q/825327/367990
I deleted that comment, lol
hahaha nice
found it funny to see a ping of you on a random programming horror thread
Back on the rust thing (SOrry a bit busy today) but yeah, I can make a multithreaded application so easily in Rust, even scaling out to the 24 cores of the rackmount we have in the laundry room
granted, I can do that on Python, too. But the use cases for those two things are far different :)
I love how this goes from how nice rust is to flexing on us with a home server with 24 cores.
π
react native?
probably just react in general lol
true. but on the react discord server its so common to see people who know only the "react" framework itself
like some dude says he doesnt know how to write basic js, only knows jsx
the web dev job market has a shit ton of react requirements, so im not surprised
@languid osprey hi :D
i use #ot0-fear-of-python as little as possible
Ok
π€
WHAT THE FUCK RUST HAS DOCUMENTATION BUILT IN
docs.rs ftw
but not like this, where you can run it in vsc
yes i named my crate rusty
i am so lost regardless rn
lost osul.
where is how to use ::?
soul
classmethods, basically
i think its called scope resolution operator
or maybe thats what its called in c++ but not sure if rust calls it the same
yeah thats trying to use something from a namespace
from The Book
use std::io;
fn main() {
println!("Guess the number!");
println!("Please input your guess.");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");
println!("You guessed: {}", guess);
}
Python ships with docs, too, technically. On a Unix machine, try python3 -m pydoc -b
i think that :: is like . in python?
py: io.read()
rs: io::read()
assume that read is a valid method
its for scoping
like i mentioned above
except in python the dot operator can also scope
right - so Python's sys.stdin is Rust's io::stdin
think its called static
huh. probably lol
let mut guess = String::new();
let - defines variable
mut - allows the program to edit it later
guess - name of the variable
= - assignment operator
String - Built in class String
:: - pretty much equal to . in python
new - the method to create a new string object
() - calls the method
; - rust syntax
:: - pretty much equal to . in python
This is a little incorrect, though
class Foo:
@staticmethod
def bar():
pass
Foo.bar()
In this context, yes. In Rust you'd use Foo::bar()
However, if you did
class Foo:
def bar(self):
pass
you'd do foo().bar() in both Rust and Python
Well, in Rust... you'd probably actually do like foo = Foo::new() and then do foo.bar()
why would it still be foo.bar()?
:: is for directly accessing from the struct/enum and . is for accessing from instances
!mute 727402153156673556 π
:incoming_envelope: :ok_hand: applied mute to @oblique scroll until 2021-06-08 05:51 (59 minutes and 59 seconds).
uh
i can write my code and not worry about formatting until after
that's how it is in most languages, yes
you're not hitting the formatting hotkey every 5 seconds? π
I have used autohotkey and java, but not for a few months
i hit it after I finish the brackets lol
but its actually formatting my code and removing a new line i really really want for rn
and something sucks
i was running it with a debugger, made some edits, and vscode did not recompile
hm, what flags is taht
ikr
You don't turn on autosave and format on save?
rust-analyzer actually gets really laggy for me sometimes, so I probably shouldn't
Ah
I'm still deciding between rust and rust-analyzer
Since rust analyzer warned me about having them both on lol
Lol
yes
what is segmentation fault?
int main(void)
{
char key[5];
string n[5] = {"a, b, c, d, e"};
for (int i = 0; i < 5; i++)
{
//check if it's all alphabets
if (isalpha(n[i]))
{
key[i] = tolower(n[1][i]);
}
}
printf("%s", key);
}
i get it jus from doing this
it can compile
whats string
so string is char const[]
anyway, segmentation fault means you accessed an array out of bounds generally
when u access memory thats not urs to access
usually
i watched cs50
string n[5] = {"a, b, c, d, e"};
its good
isn't this just one string
yeah
yes
n[5]
the default initializer for a pointer is NULL
when its not 5 long
so that array {"that string", NULL, NULL, NULL, NULL}
so yes, that will segfault
"a", "b", "c"
yup^
so i put " " around each element
yup
ye
it still says segmentation fault
don't tolower and isalpha operate on chars?
I think they are special functions made by them earlier
n[1][i] is wrong, yes
oh right
yeah
i jus changed it
but still segmentation fault
bruh
could you post the fixed program?
actually, better idea
uh the original program is like very long
tolower(n[i][1]) ?
they teach u that in later lessons of cs50
well, they clearly need it now
i see
not later
lol
true
i think they want them to fix these kinds of issues by themselves before introducing better tools
its one of the problem set
the wholle thing?
ok
lol nice
yeah there
@jovial island
i wanna do this without having to repeat the query selector, i thought i might be able to use this for doing so but i havent been able to get it working
document.querySelector("#testselector").addEventListener("mouseover", () => {
document.querySelector("#testselector").classList.add("testsuccess");
});
lemme check what event listener returns hold on
also @hot pulsar here.
as you replied something
That's not the same element, though
i guess, still that feels sloppy to me, i would have thought there would be some way to reference the element that has the listener on it
we get event and by event we can get source
probably can, you probably dont want an anon function
Oh, I meant the element in the first and second screenshot are not the same element
yes, they are
Hmm
Oh, a class was added; that explains the missing class
is event passed into the arrow function?
just console logged event, seems like it has event.target so I'll try that
Success!!!
temp1.addEventListener('mouseover', event => {
var source = event.target || event.srcElement;
console.log('hey', source)
})
thats it
there's a reason why || lemme see
if target is undefined it takes the srcElement ig
yeah that is implied ofc
ye
seems odd that the target could be undefined, i thought it would be the queried element at temp1? or is it when there are multiple elements at temp1 eg a class selection
yeah im searching why did they put both
we got the solN but not 100% answer
is it that srcElement would be the element that triggered the event, whereas target would be the selector element
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
this works
.srcElement is deprecated
Initially implemented in Internet Explorer, Event.srcElement is a [non-standard] alias (defined in the DOM Standard but flagged as "historical") for the Event.target property.
your issue i think is your anon function use
it doesnt bind this
you need to not use an anon function so 'this' is the div rather than the page or smthg
ohhhhh
dont need event.target or anything tho
i forgot that arrow functions reference this of the nearest parent function
@hot pulsar how?
rather than binding their own this
yeah arrows are quite different
i linked it
theyre like python lambdas, except way better than python lambdas
oh yeah you're not using arrow thats why
you dont have to make a whole new function saved if u want you can just put it all in the event
document.querySelector('.class').addEventListener('mouseover', function mouseover() {
this.classList.add('hi')
});```
i like making new func just in case u wanna use it again tho but ye
you can still bind this if you wonna use fn but that'd be overkill
Oh, yeah
i'll probably do event.target.classList... in an arrow function, personal preference. your solutions work just as well
returns null right?
i cant get it to add it to the div of the text on googole
same i tried too lol
docu.queryselector will return null
oh its giving
Probably close and re-open the Developer Tools?
wait you can define functions and pass it as an arg at the same time like that?
working in mine
document.getElementById('aa').addEventListener('mouseover', (e) => {console.log(e)})
tho i used by id, but doesnt matter its html element
MouseEventΒ {isTrusted: true, screenX: 274, screenY: 199, clientX: 272, clientY: 128,Β β¦}
ohhh im dumb
it only grabs the very first one
i forgot how query selector works LOL
yeah, anonymous fns
Ah, there it is
yea u gotta do the query all if you want a list of everything
selector is just the very first element that matches π
ya this is js
its all about callbacks and shit
eh, promises too!
gross
i prefer the sugar of async/await over promises
purest form of love
() => {}
bruh
uwu
I would personally say async/await is still readable
not sure how you can argue that async/await is anything but readable. its very python esque
line by line, this then that
Yeah
its kinda opinion thing, thats why i don't debate over both.
but async await it too flat
const makeRequest = () => {
return getJSON()
.then(data => {
if (data.needsAnotherRequest) {
return makeAnotherRequest(data)
.then(moreData => {
console.log(moreData)
return moreData
})
} else {
console.log(data)
return data
}
})
}``` not sure how you can prefer this ^^ over this vv
```js
const makeRequest = async () => {
const data = await getJSON()
if (data.needsAnotherRequest) {
const moreData = await makeAnotherRequest(data);
console.log(moreData)
return moreData
} else {
console.log(data)
return data
}
}```
like yes, its more flat. i see your point you are right
can't help but i like 1st way better.
flat is love ?
in some cases no
i have no clue what im in when im in that middle console.log, how many am i deep, callback hell!!
no flat is does not give handling on top view, promise gives nice top view
you can read without going in so much details if needed
handlling eh?
const makeRequest = () => {
try {
getJSON()
.then(result => {
// this parse may fail
const data = JSON.parse(result)
console.log(data)
})
// uncomment this block to handle asynchronous errors
// .catch((err) => {
// console.log(err)
// })
} catch (err) {
console.log(err)
}``` promise ^, async v
```js
const makeRequest = async () => {
try {
// this parse may fail
const data = JSON.parse(await getJSON())
console.log(data)
} catch (err) {
console.log(err)
}
}```
while in async await you need to find
yeah ik you can pass functions like
mainFunc(()=>{callback shiz})
but
didn't know
mainFunc(function callback(){callback shiz})
is valid too
to be fair, i think that example is a bit loaded to make it biased. they put in a lot tof comments on the top
yeah both function() and () => are different, function() is from a long time actually
wats the diff between function() {} and () => {}
being a react guy i always used () => from day one in js
this
^
never understood this
theres still time in react to not use ()
in js
i may or may not have that bookmarked and slowly read it to keep reminding myself
the main issue is you just need to keep track of what 'this' refers to, and thats why you need to use both anon functions () => and the older normal function name() {}
anon doesnt show up in call stack and doesnt bind this to it
so this will refer to whatever is the object above that function
Wheeee ActiveClient needs to be updated before I can do literally anything. Today's off to a productive start -_-
https://jsisweird.com was fun
I'll take it
would have got 18 but brain.exe stopped working for a second
not even worth learning those man
how do you know those random things that dont matter but you dont know this !!
uwu who made tis web?
idk i found it on reddit
lol
20/25
Though I can't say I'm happy I know that
Like I'd rather not have all this in the language at all than know most of it
[] not being falsey used to weird me out, but that's just how JS rolls
The only falsey things are undefined, null, empty string and 0
As well as false, obviously
[] being false would be useful
The truthiness of objects is basically "If it exists (i.e. is not null or undefined), it's truthy", so empty arrays are considered truthy
noobscript
I tripped on the trailing comma, Math.pow, misclicked on true++ (lol), null+0 and something else, I forget what
true++ π
Oh, and true == 'true', that one
i got the true == 'true' right
Funnily enough, I only figured the octal one out because I remembered python prohibits leading zeroes and demands 0o instead, and JS (unlike python) is nonsense, so it probably treats that as octal
entirely solved by just not using ==
and using typescript
you can be a great coder and know all of 0 of these, because they actually dont matter
you do it to yourself lol
i knew the octal thingy because i learnt it at school π
TS is the relatively sane version
It doesn't relieve you of shit like this binding, but it solves most of the problems I have with it
i dont find this hard tbh
but im sure i maybe just dont make complex enough applications
its simple enough on a base level, it pass through anon and it doesnt pass through non anon. ez pz pick the function type you want and it all works
no
yes
:^)
i mean you gotta memorize the different uses and check back if u forget but like
the concept isnt hard
you can also just manually bind if you want, const self = this and then you can use self all over and deeper and without caring about what your doing and itll work
I mean, the part that broke everything for me was that I assumed doing obj.method would bind this automatically, naive, I know
It took me a while to figure out why would this be undefined when iterating over an array of "bound" methods, and then I just converted the methods to arrow functions
my go to is just always use arrow functions unless i want to manually rebind this, then i use a named function. works well enough tho it may be a little bit of a naive way of doing it since that possibly hurts the stack
i mostly use node tho not web js so maybe its different. i havent really seen it hurt me yet
I guess I'm just spoiled by python semantics
python definitely spoils us
ok
lol
I envy you
damn
yea its great lol
man i am really liking frontend ive built some super cool stuff last week or two using just html/css thus far
show pics π
nothing really to show, just recreating shit like googles homepage, apples homepage etc
its not functional no links work etc
i also tend to give up 2/3 of the way through so its a little janky, but i could easily do the rest if i cared to devote another 10 hours to making it look perfect
but its cool ive never done uis before
:D
im running through odins frontend course on html/css https://www.theodinproject.com/paths/full-stack-javascript/courses/html-and-css
i mean, idk if its the best or greatest way to learn haha, but its working for me
i can ez build non functional cause no js but looks good web pages like the major sites
js comes next
Yeah, I only care for learning the basics for most things
i know node but idk much about editing the document
I'm a believer in "experience is everything"
they have a small section on ui/ux which is what im running through right now, not learning much for this part tho
im not a creative type
I really only know how to use Rocket to serve don't static files
some
beyond that β I'm clueless
I meant some
Rocket is a web framework for the Rust
programming language that makes it simple to write fast web applications
without sacrificing flexibility or type safety.
ah
rocket
π
it's quite neat
Tbh you don't really need a deep understanding of editing the document with JS, your framework does that for you, whether it's react, angular or vue
well, i want to learn vanilla first
then move into react
i did a bit of react already its quite cool, and making the same html elements all by calling the same function twice with diff args and stuff, super sweet
I've been wondering if I should eventually try out Yew
but i want to be able to make a decently good page with pure vanilla and doc editing and stuff first before i hop on the ez pz ride
I wanna be ambitious
Technically you can do that already
Brython is a thing, and it's p good, but the load time is a little, uhhh, bad
There were some others, but brython was the most faithful one IIRC
I only know the JS one
i mean, maybe you technically can, but its not like 'good' yet
Browser python
i think I'm confusing this for an interpreter
The only bone I have to pick with it is the startup time
From a dom modification standpoint, it's leagues more convenient than JS
True
lmao
It's treated more like a toy than a serious tool
And tbh in its current state it really is
There was some weird project that was basically a python copy of react
But it didn't run on the frontend, it used a websocket to connect to the server that actually handled the script
Which was uhhhh
Bad
Interesting project otherwise
I like the direction WASM is going in tbh
WASM definitely has a lot of potential, I'm all for it
Yet again,
Python interpreter in WASM when
There's this, but it's the exact opposite https://github.com/ethereum/py-wasm
what was WASM
Web ASseMbly
does rust or typescript compile into this?
Typescript doesn't need to IG
Since it compiles to JS and JS can already run in the browser
performance tho
Still salty that JS is the one who gets the special treatment π
WASM is another language?
is okay, i disable javascript from running on websites i visit
it's like... binary for browsers I thought
i mean
windows xp in browser emulators exist
but ig its not actually running in the browser
IT DOES :D
Rust has built in support for it, cuz LLVM
I mean eventually it's entirely possible browsers will become home to half of what you currently do
like... IDE? Sure. Games? Yuh. Other applications? Probably
Same
Yeah, me neither... as long as browsers keep up
LLVM?
Its a type of compiler backend
Makes it so much easier to write compilers
Many languages use it
i see some of the tradeoffs of static typing vs language flexibilty
Rust and WASM are a godly duo
Indeed
Rust is what you get when you expose bare metal wafer to the C.
Doesn't Kotlin compile to WASM as well
That's also a pretty pog one
Oh, nevermind then
Brainfuck's all I need
haha
Delete the others
kotlin also compiles to js right?
so basically
I think it can, yeah
Technically you just need JS/TS
ew go
Only rust
just write typescript and compile to js
Still kinda ew ngl
the reason i don't like go is because its made by google
Like TS fixes a lot of issues with JS, but I'd much rather have... something else
what the fuck
what can rust not be compiled to
Compile Rust to WASM, and compile the WASM to JS
ah
i am so glad i didn't learn react native
haha
although ig, can rust be used to create mobile apps?
Hm, let me check
Technically, I'd guess so
You can make GUI's in Rust
And you can compile APK's with rust
how
How?
I have no fucking idea
Rust is not frontend, is it? (Without compilation)
You can compile it to JS
rust has frontend frameworks
when you can use a Rust thing
because rust
oh yeah, rust has a similar thing, doesn't it
elm is a great language for very very few tasks
Yew is ew amirite
pine is better
unless you really need a working website, don't bother tbh
F# seems nice
it is mostly useless
lmao
I like it for learning functional programming due to nice errors etc
Yeah hold on F# is super nice
Isn't there also immutable js?
is this smth that @limber pollen wrote?
pure uses purescript, but they are not the dev for it
they made type level lists for it
F# is functional, right?
yup
I write stuff in it
yes
Alright, what is it good for?
skylark uses F#
but not as strictly purely I love math as haskell etc
is haskell worth learning
really depends
I might learn it for fun
The nice thing about F# is you can still play with it from the .net ecosystem
.net is cool
F# is nice because it has good C# interop, meaning you have enough libraries to actually get things done
So you can have your fun monads and TCO, but then make the calls from C#
So writing a web site, you could still host asp.net core in C#, but then write a lot of your business logic in F#
yeah, purescript is similar there
I'm looking that up now, that sounds interesting
you have unsafe js interop which means you don't have to deal with impure functions in purescript
guys i went overboard on wsl
no matter how "cool" and "interesting" monad transformers may be, they really suck to get right and don't have great error reporting
do you have wsl 2?
if I install apps on it, why the fuck does it take space on my C drive
@languid osprey wsl --list -v
yes
Mhm
idk, I'd say that the monads are the error reporting, at least when you're doing stuff probablistically
I think they're less academic and more practical than most people think
lol
lmao
large d drive π
ah no, I mean the type errors you get when code inside a monad transformer is wrong
async await are monads
Oooh that I get
I'm not sure what you mean with type errors, are you referring to the purescript stuff?
I only ever used monad transformers in haskell, but I can't imagine purescript being any better
Wow purescript is cool
I doubt I'll get my team to go for it, but it would be way cool to get this kind of thing rolling here
https://github.com/maiavictor/formality there is also super nerdy stuff like this
so
@jovial island i am here to help
ok
hahastinkypoop sucks at python
wow
π’
can't we use a help channel
true
nah we're fine here
oh ok bro
u are cooler at python
help channel are kinda warm, no air circulation
if it's python it should really go in a help channel
lol
i see what he means
w8 so are you getting a help channel
yes
no pls π’
lmao
so i come from java background
so i understand scoping in simple terms
int whatever = 9;
{
int c = 9;
// yeah i know whatever
}
// what the fuck is c
while py is weird
if something:
c = 5
else:
c = 7
# WHY THE FUCK DO I KNOW c
so i mean its all global?
ye, if-elses don't create their own scopes
yes
neither do loops
!e
if True:
c = 5
else:
c = 7
print(c)
yes
@jovial island :white_check_mark: Your eval job has completed with return code 0.
5
ye
thats why you can still acess
so there is no scoping in py?
variables in for loops
can you please use a help channel π
guys
functions
i think we need to listen to incosnstitentet time units
incostinnuvnifhjrd
yes
theelz.
theelz
oh wait its x apparently
dab
theelx
but he was a random troll on the internet
wym? so functions have scope?
lol
yes like
its uvuvwevwevwe onyeteneninyenve ugwemubwem osas
functions variabels are local
yes
alright so why would they do it like this?
i mean
won't it cause runtime issue?
condition = someHellaBigCondition
if condition:
a = {'b': 5}
# now to access a.b i need to even check a
who has ever written it like that for a single if statement
i did just now.
js habits amirite
yeah old habits we get the point
python sure is weird stuff
so if you're the only one to do it, and you can tell there's a problem with it, why not learn the normal way
Hello inconsistent unit time
hello time unit inconsistent
look, i come from java, so i love scoping, and to offend that i do not like something i will try to create a problem. so that is why i did. its simple straight forward.
because when we put conditions in js/java like this, we initialise
and to offend that i do not like something i will try to create a problem
sorry, i don't get what this means
alright makes sense.
what danger noodle said
i knew that solN i was curious about what else.
ok javaer
how about
if cond:
a={'b':3}
else:
a={}
anyways thanks alot @dusky cliff @odd sphinx @tranquil ridge @thorn dragon
i dunno why but this seems weird to me, scoping is simple to understand(atleast to me) and kinda more better IMO
yeah but again, else.
why not
a = {'b': 3} if cond else {}
because long expressions suck more than typing a variable name twice
disagree, but it's a matter of preference
yes
yeah thats what i'd use more probably
agreed, conditions can be long and this turnary can get ugly with that, and else comes at the end on top of that
i even sometimes just create variable for conditions if they are ugly
i mean for me
eh = .......................
if eh:
# do stuff
is better than
if ..................:
# do stuff
interesting preference
or may be function for re usability if needed
sometimes, it does make sense to name an if condition
indeed
yeah i do cursed stuff sometimes in c. im trying to leave those days now.
i now give more weight to readability
its alright for me to have 10 more lines if its easier to read.
all grown up
@sweet meteor the theme on my windows terminal is called material ocean
oooh thank you
gonna try that out
Wait you can set windows cmnd themes?
yes
Ohmyposh or something like that
no
no
Oh
https://github.com/JanDeDobbeleer/oh-my-posh this for prompt customization in powershell
I just googled it and got it
nice
i have windows terminal preview because I'm not a "" user
ooh is it like an "oh-my-zsh" for ps?
looks that way
i have a rule that all program names must follow.
all names must eval to true
(?:insiders?|beta|canary|dev|preview|alpha|ptb)
unless, a software does not have a beta program
Ya
how do the workers work for github webhook filtering?
i assume they work just like a discord url, but how is it configured?
1sec
is_noisy() is based on a bunch of factors
this is the full logic which condenses down into a single boolean on the last line
and then if shouldIgnore is false, it calls the github webhook endpoint of the discord api
and then all that combined returns either a 203 (Non-Authoritative Information) or a 204 (No Content), former meaning it was ignored, latter meaning it ended up at Discord
I have some charts of the events passing through actually
hmmm
also by the types of events that come from GitHub
Which part of the code makes the charts?
every request gets shipped to https://www.honeycomb.io/ through https://github.com/cloudflare/workers-honeycomb-logger
Honeycomb delivers observability for modern engineering and DevOps teams to observe, debug, and improve production systems efficiently.
A library to easily send request events and traces to https://honeycomb.io - cloudflare/workers-honeycomb-logger
Every worker also triggers that worker?
no, that's a library that is used in the github worker
Ah
what is this name's meaning-
.randomcase aren't you a core dev
don't
Hoiio
heya
Sup pythoneers
sup
whatcha doin
hanging around on discord
what is the meaning of ur discord username
its reversed
english.
what are those weird symbols lol
cats
cats?
yep
how are those cats
Just like this is shrug Β―\_(γ)_/Β―
my network graphs
I'm proxying all my traffic through a London server, so figured I'd set up some nice metrics while I'm at it
I can zoom in browser and it works
weird
that top one is probably the most boring β it's just listing how many networks I have visibility into
I see them fine when I open in browser
challenge: shortest randcase function, takes a string as input and outputs a string
hmm
Lmao
lambda s: ''.join([str.lower, str.upper][randint(0,1)](x) for x in s)
omg you did the same thing as me-
you need __import__("random").randint or else it's cheating lol
ok ok
another challenge
get input from user, and print Palindrome if string is palindrome else Not Palindrome
i still think this can be shortened... but how
ooh...
lambda s: "palindrome" if s[::-1] == s else "not palindrome" tested, works
you need to get the input lol
oh... then lambda won't suffice
yep
print("not"*(i:=input())!=i[::-1],"palindrome")
noice
print(['Not Palindrome','Palindrome'][(s:=input())==s[::-1]])
``` this was my sol
actually, lambda works
omg-
still not very golfy
it might be != or ==, too lazy to confirm
your sol beats me
lack of spaces hurts
true, i'm still very beginner in golfing
i suggest don't be an expert at it haha
also
lol true
can't resist the urge to golf every piece of code you write
you should update your powershell :[
:D
π
gotta go now, got some work to do
isn't that idle
That's the Python interpreter in powershell
pretty sure thats idle with that purple theme
or... "repl" I think it's called
nvm my soln missed a ()
print("not"*((i:=input())!=i[::-1]),"palindrome") works
Where do you see purple?
sorry im colorblind, some bluish color
and super sure powershell doesnt have syntax highlighting
IDLE has a white background tho
idle has themes
could swear it was white
you can opt for that "dark" theme
hm
brug
I just don't use IDLE
even tho i don't use idle
I just go into my terminal and go ipython
ipy \π
yeah, I had an alias to ipy lol
smort
C:\Users>ipy
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:
echo "alias ipy=ipython" >> ~/.zshrc
\π©
k
@scarlet portal I'm pretty sure there isn't a single person employed as a Python instructor who can effectively teach OOP
All the people who know Python seem to teach it online for free or make YouTube videos π€·π»ββοΈ
π€·π»
and the error award of 2021 goes to...
https://media.discordapp.net/attachments/663730648627937311/852187946291691520/unknown.png
burh
lol
wow
happy birthday, @tawdry ingot, and welcome back to the community!
I dedicate this otname in your honor
!otn a patient-birthday-gargoyle
:ok_hand: Added patient-birthday-gargoyle to the names list.
our most patient member ever.

for those of you missing context, here's the backstory:
this is the kind of commitment we need in our lives
why don't we all ping @tawdry ingot and welcome them back to the community?
<@&267630620367257601> assemble! π€
@tawdry ingot
no no. you have to write a nice welcome message.
welcome
haha
@tawdry ingot o/ welcome back
π @tawdry ingot
hey @tawdry ingot welcome back
wonder what it would be like to come back to 200 pings
Welcome @tawdry ingot o/
@tawdry ingot 
Haha that's epic. Welcome @tawdry ingot !
welcome @tawdry ingot!
@tawdry ingot
the return of a king
Welcome @tawdry ingot and happy birthday!
Jeez, hello staff, thereβs a lot of you
@tawdry ingot π₯³
welcome @tawdry ingotand welcome to the community.
@tawdry ingot welcome, happy birthday!
gargoyle hasnt replied
i do hope its the same person
lol
ur efforts are futile
@tawdry ingot 
Shh, I was thinking that too
welcome back to the pyquack community @tawdry ingot!
nah its the same person
@tawdry ingot π
Welcome, again π
lmao
pretty god around here
can someone tell me who gargoyle is
he is my son
I wouldn't set the ping mob on someone if I wasn't sure they were the same person.
2 owners
4 admins
Loads of helpers
Wow Iβd love to be @tawdry ingot (welcome back)
wait fr?
context
Hey @tawdry ingot!
woah
OH
understood
yes. he has been waiting 3 years to join us
Lmao
gday @tawdry ingot
holy
and today is his birthday
Welcom π
welcome @tawdry ingot !
happy birthday, and welcome @tawdry ingot
he said he was from scotland
happy birthday 
Happy birthday @tawdry ingot
serious doubt
π
damn if only everyone wished me happy birthday like this π
HAPPY BIRTHDAY
s ame
tell us when it's your birthday then
pydis birthday calendar when?
im just kidding
just wish him now
we where in scotland, his english was not all that well developed
then we can all wish you happy birthday @odd sphinx
alright
lmao
its july 14
at europycon
better wish me then π«
hbd zee!
or there will be problems
.bm 852212146208899073
mods can y'all set a reminder for this
Lmao I plan on it @odd sphinx
just realized its june
with 200k members, that'an average of ~550 birthdays everyday
does !remind work with a date
wow. it's 6/9
lmao
probably
