| smohamud has quit (Remote host closed the connection) | 07:57 | |
| gabriel_jetro | good morning smohamud | 09:41 |
|---|---|---|
| smohamud has quit (Ping timeout: 480 seconds) | 09:52 | |
| gabriel_jetro | Good morning jelkner | 10:35 |
| smohamud has quit (Remote host closed the connection) | 10:43 | |
| jelkner | I'm on the phone with Sahnun | 10:44 |
| jelkner | thomasboimah, dcammue_, we're in a real inflection point here | 10:49 |
| jelkner | and we need to make good decisions if we're going to make it through the next period | 10:50 |
| jelkner | Sahnun and i tend to have contentious discussions ;-) | 10:50 |
| jelkner | but one thing he said that i can not disagree with is that he is the only senior NWD/JWD dev currently working with us | 10:51 |
| jelkner | so in my view, i need to let him take charge of the BIG projects | 10:51 |
| jelkner | NS AMS and CJS | 10:51 |
| jelkner | and stay out of his way | 10:51 |
| jelkner | the problem for me is that you all are asking me for money | 10:52 |
| jelkner | as i have said for a long time now, Santa Claus is dead | 10:52 |
| jelkner | i want to be your customer | 10:52 |
| jelkner | not your donor | 10:52 |
| jelkner | so you need to deliver value whenever you want me to send | 10:52 |
| jelkner | that's where smohamud and i have having our contention | 10:53 |
| jelkner | it seems we all agreed that JWD's most senior dev, thomasboimah, has agreed to work with smohamud | 10:53 |
| jelkner | i think that makes total sense | 10:53 |
| Jallah | Good morning everyone | 10:53 |
| jelkner | and i support that | 10:53 |
| jelkner | but, if you want me to send any money, you need to put together a more junior team to do other work | 10:54 |
| jelkner | i have the SJC website as my most pressing need | 10:54 |
| jelkner | so, dcammue_, you need to let me know how you want to proceed | 10:54 |
| Jallah | jelkner, thomasboimah, dcammue_ gabriel_jetro smohamud svaye | 10:55 |
| jelkner | if you want me to send money for JWD to work on the SJC website | 10:55 |
| dcammue_ | jelkner, i emailed you this morning, did you see it? | 10:55 |
| jelkner | no | 10:55 |
| jelkner | let me look now | 10:55 |
| dcammue_ | please check | 10:55 |
| jelkner | dcammue_: this looks great | 10:57 |
| smohamud | I will speak to my mom about the website and I will let you know if she's ready to proceed with her website improvements. If it works, Jeff has mentioned that I can be the main POC for Jetro while I'm paying the bill. My concerns are (1) financial stake matters but I don't like that the shift is based purely on that (2) I wouuld only want to work with Jetro if there's interest and (3) as a Coop, if we can't work well together and shift efforts / | 10:57 |
| smohamud | roles based on financial stake it conflicts with my values. (4) I want committed NWD members to be on board. | 10:57 |
| jelkner | but it's already outdated | 10:57 |
| jelkner | all of the email changes have been made already | 10:57 |
| jelkner | i did them | 10:57 |
| jelkner | it took me about an hour | 10:57 |
| jelkner | so $250 seems a bit steep ;-) | 10:57 |
| jelkner | but we have something we can work with | 10:58 |
| jelkner | how will be the JWD i will be working with? | 10:58 |
| jelkner | let's chat about that | 10:58 |
| jelkner | then let's setup a first customer meeting to talk about the details | 10:58 |
| smohamud | I believe Jeff and I can and the entire coop should shift our resources in a logical way to support ourselves and Jetro. If that means I am the POC and NWD-PM for Jetro through my mom's project, fine but I don't think it's the case. Jeff has deep knowledge of all of you and I would bring the needs of my mom's Project to the table and Engineering experiencce. | 10:58 |
| jelkner | using what you just sent at a starting proposal | 10:59 |
| dcammue_ | you will be working with gabriel_jetro, jkollie , and freena and dcammue | 10:59 |
| jelkner | and svaye, yes? | 10:59 |
| freena_ | Good morning jelkner | 10:59 |
| dcammue_ | yes, \ | 10:59 |
| dcammue_ | +1 | 10:59 |
| svaye | yes | 10:59 |
| jelkner | great! | 10:59 |
| jelkner | that's a wondeful team! | 11:00 |
| jelkner | any news on starlink? | 11:00 |
| thomasboimah | standup update: I have been working with Sahnun in our circle on our projects, most especially the Claudia Jones School project. Today I will complete the review of Sahnun's merge request and do my UoPeople assignment. No blockers. | 11:00 |
| thomasboimah | ACTION done | 11:00 |
| jelkner | it would be nice to have a Jitsi meeting now and then, though it isn't necessary | 11:00 |
| jelkner | dcammue_: when do you want to schedule our first customer meeting? | 11:01 |
| smohamud | standup update: CJS meeting went well, invoicing is on track to be setup between now and 11/21 next meeting. We will need sign a W-9 and potentially other forms for their Fiscal Sponsor. | 11:01 |
| dcammue_ | you can give the time that works best for you | 11:01 |
| jelkner | apologies, dear comrades, i'm interfering with your standup | 11:01 |
| jelkner | well, i'd like the whole team there | 11:01 |
| jelkner | how about Friday at 3 pm? | 11:02 |
| jelkner | my time | 11:02 |
| smohamud | Updated Event model for CJS in order to support recurring events more smoothly. Emailed CJS a follow-up with questions and updated Roadmap requirements. Today, finishing the EventSignup / Event model changes and ideally Event Detail UI/UX changes. Not blocked. | 11:02 |
| dcammue_ | okay | 11:02 |
| jelkner | that will be 19:00 UTC | 11:02 |
| jkollie | Alright | 11:02 |
| dcammue_ | works for me | 11:02 |
| jelkner | we can meet on #sjcompute at 19:00 UTC Friday | 11:02 |
| jelkner | i'll send an email | 11:02 |
| jelkner | i want to meet with the whole team this first time | 11:03 |
| dcammue_ | okay | 11:03 |
| svaye | Alright | 11:03 |
| freena_ | Okay | 11:03 |
| jelkner | though that won't usually be necessary thereafter if things move well | 11:03 |
| jelkner | so i'll put it on my calendar and send an email | 11:03 |
| jelkner | Meet on #sjcompute Friday, October 23rd at 19:00 UTC | 11:04 |
| dcammue_ | +1 | 11:04 |
| freena_ | +1 | 11:04 |
| jelkner | to attend: dcammue_, jkollie, svaye, freena_, and gabriel_jetro | 11:04 |
| jelkner | and jelkner | 11:04 |
| svaye | noted | 11:05 |
| jelkner | remove the email changes | 11:05 |
| jelkner | since they've been made | 11:05 |
| freena_ | Copy jelkner | 11:05 |
| dcammue_ | okay | 11:05 |
| jelkner | cool, see you Friday | 11:05 |
| jkollie | Alright | 11:05 |
| freena_ | You too jelkner | 11:05 |
| smohamud | Class link: https://prod.liveshare.vsengsaas.visualstudio.com/join?A893C4F45A8D61CCADCF3AF6E8B8162A5C04 | 11:05 |
| jelkner | ACTION signs off | 11:05 |
| jelkner has quit (Quit: Leaving) | 11:06 | |
| smohamud | Thomas and Jallah, still attending class today? Since it's been a while, I'm happy to hold a smaller than usual class. | 11:08 |
| Jallah | Trying to join now | 11:08 |
| smohamud | Ok, and Thomas? I see Daniel | 11:08 |
| smohamud | If you're planning to join class besides Jallah and Daniel, please reply with a +1 | 11:10 |
| thomasboimah | +1 | 11:12 |
| smohamud | Ok, I see two | 11:16 |
| smohamud | Jallah, we will have to get started since it's getting late. | 11:16 |
| smohamud | Apologies. I will write as much as I can in IRC. | 11:17 |
| smohamud | As a warmup, in 1-2 sentences explain what a "Class" is in Programming. | 11:17 |
| smohamud | Please share answers here in the next 3m. | 11:19 |
| smohamud | Please remember that it's important you share what you think so we can build on that basis. No expectations to answer correctly on the first go. | 11:21 |
| smohamud | Awesome, welcome Jallah :) | 11:21 |
| dcammue_ | It defines a set of properties (data or variables) and methods (functions or actions) that the created objects will have. | 11:22 |
| smohamud | Alright, time to share. | 11:22 |
| thomasboimah | A class in programming is a blueprint for creating objects, defining their properties (data) and methods (actions). In JavaScript, classes help organize code and support inheritance, allowing one class to reuse and extend the features of another class. | 11:22 |
| smohamud | Great job. Jallah, please submit something :) | 11:22 |
| Jallah | Class in programming is more of a template used to create objects in programming | 11:24 |
| smohamud | All of you are correct, with varying levels of details. | 11:25 |
| smohamud | Thomas and Daniel's definitions overlap a-lot but I also like Thomas mentioned key concept of Inheritance and the reason why Classes are useful programming tool. | 11:25 |
| smohamud | Jallah, yes, you and Thomas said similar thing with "blueprint" and "template" --- That's a great way to think about it. | 11:26 |
| smohamud | Let's dive into today's lesson.. | 11:26 |
| smohamud | JavaScript is a multi-paradigm programming language. It supports Object Oriented Programming but also other paradigms like Functional. | 11:27 |
| smohamud | Object Oriented Programming takes as its basic unit the Object, often used to model the Real World. | 11:28 |
| smohamud | The way Objects are created in JavaScript can be either through Object literals. But also, through the use of a class. | 11:28 |
| smohamud | Since ES2015, the most common way to declare a class in Javascript is by using the class keyword. | 11:29 |
| smohamud | In programming, there will often be abstractions that are built on other abstractions, often to make programming more efficient for developers or improve code quality (security, etc(. | 11:31 |
| smohamud | In JavaScript, *underneath the class keyword* there is a concept called "Prototype" that is the true engine that allows for core Class functionality, including Inheritance and Method definitions. | 11:31 |
| smohamud | Any questions so far? | 11:31 |
| thomasboimah | -1 for me | 11:33 |
| Jallah | -1 | 11:33 |
| thomasboimah | smohamud, please excuse me to go in the bathroom | 11:33 |
| thomasboimah | ACTION going in the bathroom | 11:33 |
| smohamud | Ok, we will continue without Thomas for now since it might take a while. | 11:33 |
| smohamud | In JavaScript, every object has a Prototype chain. Objects get a Prototype that allows certain functionality/values to be inherited. | 11:35 |
| smohamud | So, if you notice, there's a class "Object" that all Objects in JS inherit from. | 11:36 |
| smohamud | Any object's *prototype* is what exposes the methods/properties from the Base Object Prototype to Arrays, Objects. Both of them have "toString" method. It's because even though the Array has it's own Array Prototype that often overrides *how* the prototype is implemented. | 11:38 |
| smohamud | For now, that's the high-level description of how Classes work in JavaScript (underneath, it's using Prototype defined in an earlier JS version). | 11:40 |
| smohamud | Any questions before we jump into some examples? | 11:40 |
| Jallah | -1 | 11:41 |
| smohamud | Thomas, Daniel? | 11:41 |
| dcammue_ | -1 | 11:42 |
| thomasboimah | ACTION back | 11:42 |
| smohamud | Cool. | 11:43 |
| smohamud | So notice that when we created defined two Object literals | 11:43 |
| smohamud | personProtoShorthand | 11:43 |
| smohamud | and personProtoLonghand | 11:43 |
| smohamud | We use the built-in getPrototypeOf() function and log their prototypes. They're both of type "Object." Which is what we expect. | 11:44 |
| smohamud | Can anyone else tell me another JavaScript type or data structure they're curious about the Prototype? | 11:44 |
| thomasboimah | ye | 11:46 |
| thomasboimah | yes | 11:46 |
| thomasboimah | I’m curious about the prototype of an array in JavaScript | 11:46 |
| smohamud | awesome, let's hear it. | 11:46 |
| smohamud | Ok, let's test on line 38. | 11:46 |
| smohamud | So, we see it's an Object (!) | 11:48 |
| smohamud | Does that make sense based on what we know about Arrays? That they include Arrays in their prototype chain? | 11:48 |
| thomasboimah | +1 | 11:49 |
| smohamud | Yes. | 11:49 |
| smohamud | So, did everyone see the function I just pasted that walks the levels of the prototype chain? | 11:50 |
| smohamud | And the output. | 11:50 |
| smohamud | Notice that Array is in there, too! | 11:50 |
| thomasboimah | +1 | 11:51 |
| smohamud | Please see line 64 where Person is defined. | 11:51 |
| smohamud | There are a few important parts to this class definition | 11:52 |
| smohamud | (1) the constructor function. | 11:52 |
| smohamud | Who can tell me what that constructor is doing? | 11:53 |
| Jallah has quit (Ping timeout: 480 seconds) | 11:53 | |
| smohamud | Or take a guess at it (this is all new). | 11:53 |
| jallahkoleah_ has quit (Read error: Connection reset by peer) | 11:53 | |
| thomasboimah | It is getting the First and Last name? | 11:53 |
| smohamud | Ok, what do you mean by "getting"? | 11:54 |
| smohamud | That's the right track :) | 11:54 |
| thomasboimah | Okay let me explain | 11:55 |
| thomasboimah | I mean the constructor is receiving the first and last name as arguments and assigning them to the object's properties using this.firstName = firstName and this.lastName = lastName.” | 11:55 |
| dcammue_ | is a function storing the first and last name by having two arguments of fistname and lastname | 11:55 |
| gabriel_jetro | i'm tryna join smohamud | 11:56 |
| smohamud | Bingo, it's assigning them to the properties. | 11:56 |
| smohamud | (Sorry just added you, welcome). | 11:56 |
| smohamud | It programming / classes we often define "getters" and "setters" which is why I asked you to elaborate on "getting" | 11:57 |
| smohamud | Getters are responsbile for getting a value for usage, setters are used for setting the values on an Object (in a Class). | 11:58 |
| smohamud | Your answer is perfect but I wanted to make sure you know that the word "getting" comes with expectations of functionality. | 11:59 |
| smohamud | Continuing on, who can tell me the difference between a method and function? (Note that it's not defined anywhere but there's a common distinction) | 12:00 |
| smohamud | (Not defined anywhere that I'm aware of, I picked up of from StackOverflow at some point and it served me well). | 12:00 |
| smohamud | We will finish in the next 10m. Can anyone give it a try? | 12:01 |
| smohamud | If I don't hear anything in 2m I will move on (I'm pausing because it would've been nice to know this earlier in my career... It always confused me when the language switched for what looked like the same concept) | 12:02 |
| smohamud | Jallah, Daniel, Gabriel? Thomas has been answering (welcome to but more participation would be great). | 12:03 |
| thomasboimah | okay let me try | 12:03 |
| smohamud | thank you. go for it | 12:03 |
| thomasboimah | function is a reusable block of code that can be called independently, while a method is a function associated with an object or class. | 12:03 |
| gabriel_jetro | function are use to perform a block of code that are called for a specific output while method is used in a function to carry solve a specific problem in a given code | 12:03 |
| gabriel_jetro | for example... | 12:04 |
| smohamud | Thank you both! | 12:04 |
| gabriel_jetro | sudo systemctl reset-failed fwupd-refresh.service fwupd-refresh.timer | 12:04 |
| gabriel_jetro | gabriel@gabriel-Latitude-3189:~$ systemctl --failed | 12:04 |
| gabriel_jetro | UNIT LOAD ACTIVE SUB DESCRIPTION | 12:04 |
| gabriel_jetro | 0 loaded units listed. | 12:04 |
| smohamud | Thomas - yes, fantastic. | 12:04 |
| smohamud | Gabriel - I see you mentioned that "method is used in a function to..." | 12:05 |
| gabriel_jetro | class Person { | 12:05 |
| gabriel_jetro | constructor(firstName, lastName){ | 12:05 |
| gabriel_jetro | this.firstName = firstName | 12:05 |
| gabriel_jetro | this.lastName = lastName | 12:05 |
| gabriel_jetro | } | 12:05 |
| gabriel_jetro | for the class function person, the method is this.firstName | 12:06 |
| smohamud | Methods are not used in functions *but* functions can be embedded in a method. | 12:06 |
| gabriel_jetro | oops ight | 12:07 |
| smohamud | It's tricky, but Thomas' distinction is useful and essentially my mental model. If it's a function that's defined in a class/Object, we just call it a "method" | 12:07 |
| smohamud | Does that make sense? | 12:07 |
| smohamud | Great job, I can see you're wrestling with the concepts and that's exactly how we're going to all grow. | 12:07 |
| gabriel_jetro | But method are use in function, so i'm kinda confused, smohamud | 12:08 |
| smohamud | Ok, the last 3m of class I will give an overview of what we will do Friday. This is a big topic and there's a-lot to take in so 2 classes is warranted. | 12:08 |
| smohamud | Good point. So it isn't that methods aren't used in functions | 12:09 |
| smohamud | It's that the method's that are in functions are generally only *called* in a function. | 12:10 |
| gabriel_jetro | understood... | 12:11 |
| smohamud | For example, if I had a function to const printName = () => { console.log(SomeJetroMemberInstance.full_name()) } | 12:11 |
| smohamud | Sure, printName is a function and it calls the full_name method from SomeJetroMemberInstance | 12:11 |
| smohamud | But, to be a method, it needs to be associated with a class/object as Thomas mentioned. | 12:12 |
| smohamud | Ok, any questions up to now? | 12:13 |
| smohamud | Next class we will make sure everyone is familiar with the concept of an "instance," how to define class methods and how Inheritance works using the extends keyword. | 12:13 |
| smohamud | We will also talk about how JavaScript walks the prototype chain. | 12:14 |
| smohamud | Sounds good? | 12:14 |
| thomasboimah | +1 | 12:16 |
| dcammue_ | +1 | 12:16 |
| smohamud | Awesome. | 12:17 |
| gabriel_jetro | +1 | 12:17 |
| smohamud | Have a great rest of your day comrades. Reach out with questions anytime :) | 12:17 |
| smohamud has quit (Quit: leaves) | 12:18 | |
| thomasboimah has quit (Quit: Leaving) | 12:21 | |
| freena_ has quit (Quit: Connection closed for inactivity) | 13:19 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 13:33 | |
| jkollie has quit (Quit: Connection closed for inactivity) | 13:55 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 16:26 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 17:16 | |
| svaye has quit (Quit: Leaving) | 17:19 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 19:59 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 21:11 | |
| dcammue_ has quit (Ping timeout: 480 seconds) | 23:19 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 23:48 | |
Generated by irclog2html.py 4.0.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!