| smohamud has quit (Remote host closed the connection) | 00:37 | |
| smohamud has quit (Ping timeout: 480 seconds) | 05:30 | |
| smohamud has quit (Remote host closed the connection) | 06:17 | |
| smohamud has quit (Ping timeout: 480 seconds) | 07:56 | |
| smohamud has quit (Remote host closed the connection) | 08:36 | |
| smohamud has quit (Ping timeout: 480 seconds) | 09:04 | |
| gabriel has quit (Ping timeout: 480 seconds) | 10:25 | |
| jelkner has quit (Read error: Connection reset by peer) | 10:59 | |
| jelkner | yesterday i attended nwd meeting. today i start my new class. no blockers. | 11:00 |
|---|---|---|
| jelkner | ACTION done | 11:00 |
| jelkner | apologies, dear comrades | 11:00 |
| jelkner | i had a more detailed summary prepared, but the power went out | 11:00 |
| jelkner | where are thomas and daniel? | 11:00 |
| smohamud | Standup: updated CJS Requirements Draft, edited and sent NSS data draft in prep for tomorrow's meeting. Met w/Stephen, Thomas, Gabriel, Daniel yesterday to finalize the Infrastructure App requirements. Pushed updates to JS Class Repo. | 11:00 |
| smohamud | Not blocked. Done. | 11:00 |
| zOnny | Good morning team, these past few days I've focused on NS AMS UI improvements, along with work on the LibreOrganize project to set it up using Git submodules. Making good progress on both fronts. No Blockers. | 11:01 |
| zOnny | ACTION done | 11:01 |
| thomasboimah | I attended the project meeting scheduled with Dr. Hubbard. I cloned and reviewed the method that zOnny used to make the Claudia Jones repo use git submodules. I also attended Sahnun's JavaScript and React class. No blockers. | 11:01 |
| thomasboimah | ACTION done | 11:01 |
| freena_ | Yesterday i started with module 1 on JavaScript. Today i want to continue my css practice and open a git account to put my practice work in it. No blocker for now | 11:01 |
| freena_ | ACTION done | 11:01 |
| jelkner | i only have a few minutes | 11:01 |
| jelkner | since it is the first week of school and i need to be ready for classes | 11:02 |
| jelkner | can we talk about weekend schedule? | 11:02 |
| smohamud | Sure | 11:02 |
| jelkner | dcammue_, we had talked about a long meeting on friday | 11:02 |
| jelkner | but i have a meeting at GMU at 9:30 am EDT (13:30 UTC) | 11:03 |
| svaye | Monday I continued the business renewal process, and I still have some things to take care of as it relates to the business renewal. blocking on finalizing the business renewal | 11:03 |
| jelkner | are you available saturday instead? | 11:03 |
| jelkner | svaye: if you can't make that, perhaps you can prepare with dcammue_ so he can be ready | 11:03 |
| dcammue_ | Good morning, i attended the roadmap meeting yesterday, but i dropped off due to some challenges, today, i will be attending the js class and researching on tax related matter around the virginal tax | 11:03 |
| dcammue_ | ACTION donr | 11:04 |
| gabriel | Greetings, every yesterday i attended the meeting with Dr. Stephen on for the fixmycd app, today i was working on setting up the Claudia Jones School repo zOnny created for properly deployment repo that handles everything automatically. there's no blocker now. | 11:04 |
| gabriel | ACTION done | 11:04 |
| jelkner | dcammue_? | 11:04 |
| dcammue_ | ACTION done | 11:04 |
| jelkner | i have just a few minutes | 11:04 |
| dcammue_ | sure | 11:04 |
| jelkner | let's do this *fast*! please | 11:04 |
| svaye | jelkner, Saturday is fine for me | 11:04 |
| jelkner | ok, dcammue_, we have our stand up at 11:00 UTC | 11:04 |
| dcammue_ | yes, we can have the meeting on saturday | 11:05 |
| jelkner | right after that, i'll be asking you to show me how to access gnucash for both NWD and JWD | 11:05 |
| jelkner | that's our agenda, right? | 11:05 |
| jelkner | since you need to show me that before we ask Lindsey to meet with us | 11:05 |
| jelkner | btw, dcammue_ and svaye, i start my new class today | 11:06 |
| dcammue_ | it will be flexible since we all will be on weekend | 11:06 |
| jelkner | https://slu.catalog.cuny.edu/courses/1515631/general-aoYks | 11:06 |
| dcammue_ | okay, willing if you need my help | 11:06 |
| jelkner | yes, dcammue_, i need your help | 11:06 |
| jelkner | perhaps we can even use jitsi to screen share | 11:07 |
| jelkner | so 11:30 UTC on saturday, yes? | 11:07 |
| jelkner | and you'll be ready to guide me | 11:07 |
| jelkner | please confirm | 11:07 |
| dcammue_ | +1 | 11:07 |
| jelkner | sweet | 11:07 |
| jelkner | thanks! | 11:07 |
| svaye | That's wonderful jelkner | 11:07 |
| dcammue_ | so, are you teaching the course or learning lol | 11:07 |
| jelkner | no, dcammue_, i'm a student in this one!! | 11:08 |
| dcammue_ | okay, | 11:08 |
| jelkner | but i'll be meeting a lot of wonderful people | 11:08 |
| jelkner | it is a graduate course at City University of New York (CUNY) | 11:08 |
| dcammue_ | willing to get a great feedback from you as you encounter great lessons | 11:08 |
| jelkner | +1 | 11:09 |
| jelkner | that's why i enrolled | 11:09 |
| jelkner | since this is the kind of training we need | 11:09 |
| dcammue_ | sure | 11:09 |
| jelkner | ok, until friday everyone | 11:09 |
| jelkner | i have to get ready for students | 11:09 |
| jelkner | ACTION signs off | 11:10 |
| jelkner has quit (Quit: Leaving) | 11:10 | |
| dcammue_ | hi svaye | 11:10 |
| dcammue_ | hi smohamud | 11:10 |
| smohamud | Good afternoon comrades :) | 11:11 |
| zOnny | Is there any questions for me? | 11:11 |
| dcammue_ | Good after smohamud | 11:11 |
| dcammue_ | *afternoon | 11:11 |
| gabriel | Not yet for me, zonny | 11:11 |
| thomasboimah | zOnny, that git submodules solution was great! | 11:11 |
| svaye | Good morning smohamud and zOnny | 11:11 |
| smohamud | Gabriel, could you create a Live Share for us and share it in this chat? | 11:12 |
| smohamud | Class will begin shortly. | 11:12 |
| zOnny | thomasboimah: I hope it is the right move, since having theme with multiple branches isn't the most project base repo | 11:13 |
| thomasboimah | I looking into it once I understand it better I will try to do Jetrowebdevelopment and other repo the same way you do Claudia Jones | 11:13 |
| zOnny | thomasboimah: that would be great | 11:13 |
| zOnny | thomasboimah: I know you focus on the React project | 11:14 |
| zOnny | thomasboimah: we will transition into this eventually | 11:14 |
| thomasboimah | +1 | 11:14 |
| zOnny | thomasboimah: I wanted CJS be the pilot project so we understand the pros and cons | 11:15 |
| smohamud | Everyone please pull the latest repo | 11:15 |
| smohamud | For Intro to JS Class. | 11:15 |
| thomasboimah | Yep zOnny | 11:15 |
| zOnny | alright I will let you continue the class | 11:15 |
| smohamud | Gabriel - are you getting the Live Share setup? | 11:16 |
| thomasboimah | Okay zOnny have a nice day | 11:16 |
| zOnny | ACTION signs off for the day | 11:16 |
| zOnny has quit (Remote host closed the connection) | 11:16 | |
| smohamud | I'm sure you've all noticed that we have a-lot of disconnections while working with Live Share. | 11:17 |
| smohamud | More than we have from IRC. | 11:17 |
| smohamud | Today, I want everyone to disable all other VS Extensions temporarily and let's see if it goes smoother for us. | 11:17 |
| smohamud | To disable, open "Extensions." CTRL + SHIFT + P or click it on the top menu under "View" | 11:18 |
| gabriel | i'm on it gimme a sec | 11:18 |
| smohamud | Correction: CTRL + SHIFT + X | 11:19 |
| smohamud | When there, you can Right Click on the Extension and select "Disable" | 11:20 |
| gabriel | it ain't going on my machine, smohamud | 11:20 |
| smohamud | Ok. | 11:21 |
| smohamud | Thomas. Could you start a session and share with us? | 11:21 |
| gabriel | yeah it keeps loading forever | 11:21 |
| smohamud | Something we need to figure out is how to get you guys better WiFi... Collaborative coding will be critical to our success. | 11:22 |
| thomasboimah | okay smohamud | 11:22 |
| thomasboimah | on it | 11:22 |
| smohamud | If it interests you, I will be offering Pair Programming session for those who are interested. I will be "Driving" and directing what to do, and you will be writing the code and navigating the codebase. | 11:23 |
| smohamud | Thanks Thomas. | 11:24 |
| smohamud | I've yet to receive the "Developer Experience Survey" from everyone. Is anyone planning to send it that hasn't already sent it? | 11:25 |
| gabriel | thomasboimah is said he's setting up his github account to log into VS code to setup his live | 11:26 |
| smohamud | If there's one assignment to turn in of all the past and future ones, it's this one. It helps me plan classes and teach at a level that works for you individually. | 11:27 |
| smohamud | Yes Gabriel. | 11:27 |
| smohamud | Reminder to pull the latest code from Intro to JS repo. | 11:27 |
| smohamud | Gabriel, let's see if it works when Thomas shares a link. | 11:29 |
| smohamud | Comrades - we're going to have to make the setup process more efficient. | 11:30 |
| smohamud | We're spending 10-15m *just getting the Live Share going* and it should not be this difficult. Starting next class, we will have someone with a Live Share from the beginning so that during the Standup everyone can begin the connection process. | 11:31 |
| smohamud | Does that work? | 11:31 |
| thomasboimah | sorry i am trying to get in my github account | 11:32 |
| smohamud | No worries. | 11:33 |
| smohamud | Do folks like the idea of improving the Live Share process? | 11:34 |
| thomasboimah | https://prod.liveshare.vsengsaas.visualstudio.com/join?5CEC0DB58C08469CB9AC8B891F56FBAC2039 | 11:34 |
| thomasboimah | their is it | 11:35 |
| thomasboimah | https://prod.liveshare.vsengsaas.visualstudio.com/join?CFDF1A262AD67E3FF1EB384503548696FDD8 | 11:36 |
| thomasboimah | only daniel is in | 11:37 |
| smohamud | Ok, I see me, you and Daniel are in. | 11:39 |
| smohamud | Is anyone else still trying to connect? | 11:39 |
| thomasboimah | gabriel, is in | 11:39 |
| smohamud | Thomas, can you please pull the latest code. I pushed this morning. | 11:40 |
| thomasboimah | done | 11:40 |
| smohamud | Thank you. | 11:41 |
| smohamud | Hearing no one else. Let's begin and shoot for max 45m. | 11:41 |
| smohamud | Ok, so, before we get started. Does anyone have any questions about what we've gone over up to this point in the class? | 11:41 |
| thomasboimah | -1 from me | 11:42 |
| jkollie | i'm in | 11:42 |
| smohamud | Awesome, I see you jkollie :) | 11:42 |
| smohamud | Today, we're going to begin with two data types that can be confusing. | 11:43 |
| smohamud | Null and Undefined. | 11:43 |
| dcammue_ | i want to understand why javascript store object in memory and string in variable? | 11:44 |
| smohamud | Good question, Dcammue. | 11:45 |
| smohamud | So, let's clarify "in-memory" vs "in-variable" | 11:45 |
| dcammue_ | but both are assigned to variable right? | 11:45 |
| smohamud | Both are stored in the JS memory. | 11:45 |
| smohamud | Yes. They both begin as variables but how they're stored in-memory is different as you suggest. | 11:46 |
| smohamud | The reason is that JS manages memory through what's called a "Heap" and a "Stack" | 11:48 |
| smohamud | The Stack allows for efficient operations but it requires knowing in advance the "size" of the variable. | 11:49 |
| smohamud | The Heap, where Objects live, is less predictable because after a function executes that same object could grow down the road... So, it's hard to allocate a fixed chunk of memory for an object and instead it gets more space. | 11:50 |
| smohamud | Does that help? | 11:50 |
| dcammue_ | +1, thanks | 11:50 |
| smohamud | Personally, I don't fully understand the reasoning but in a nutshell, if you look into the Stack vs. the Heap and how they have different requirements that would probably answer your question better than I can at this point. | 11:51 |
| dcammue_ | okay, thanks' | 11:53 |
| smohamud | A string is a string, it'll only take so many bits. A Number is a Number, it'll only take so many bits, ever. An Object can mutuate, grow, shrink and if the program is trying to allocate memory *efficiently* then it makes sense that it'll use the smallest allocation possible when it can to save memory. Primitive sizes are predictable. | 11:53 |
| smohamud | Ok, any other good questions? | 11:53 |
| gabriel | javascript is more like c programming from what is being said | 11:54 |
| smohamud | Correction, I cross-checked and strings are *not* fixed size and therefore not predictable in size. It's true for other things like Booleans, Numbers, Null and Undefined. | 11:55 |
| smohamud | So, Strings end up on the Heap along with Objects. | 11:55 |
| dcammue_ | okay, that's great | 11:56 |
| smohamud | Gabriel - I haven't written C but I wouldn't be surprised if much of the JS Engine was written in C. | 11:56 |
| smohamud | Today let's nail down Null and Undefined. | 11:57 |
| smohamud | The most important thing to keep in mind is, as a programmer, set a variable to null when you want to indicate that you're intentionally not including a value. | 11:58 |
| smohamud | undefined is the default for when a variable lacks a value. | 11:58 |
| smohamud | Let's try an example in Live Share. | 11:58 |
| gabriel | sure I guess, Null and Undefined are the same i JS right, Null return nothing undefined are empty variable | 11:59 |
| dcammue_ | ACTION needs to drop for like two minutes to setup his username and come back | 11:59 |
| dcammue_ has quit (Quit: Leaving) | 11:59 | |
| smohamud | Ok | 12:01 |
| smohamud | Thomas can you run the script? | 12:01 |
| smohamud | Who thinks undefined and Null both evaluate to false on their own? E.g. if(null) or if(undefined) | 12:02 |
| smohamud | What I just wrote there, and this is new, is how IF statements are done in JavaScript. | 12:04 |
| smohamud | Very straightforward. Just if(condition){ } | 12:05 |
| smohamud | There are multiple ways to write IF statements but this is the most common. | 12:05 |
| smohamud | Ok, anyone want to give it a try ---> Will both evaluate to true? One true one false? | 12:06 |
| smohamud | Ok, Thomas, let's go ahead and run it. | 12:06 |
| smohamud | Thanks. So, as you can see in the terminal, BOTH evaluate to false. Anyone surprised by that? | 12:08 |
| gabriel | Null always false because it returns nothing which is 0, but for that undefined variable i think it'll return true because there is a variable with no value that's why make it undefined | 12:08 |
| smohamud | Gabriel, exactly right on null always returning false. However, in JavaScript, undefined also evaluates to False. | 12:09 |
| smohamud | you can think about like, if you declare a variable that name now exists as long as you're in the correct scope. No reference error. | 12:10 |
| smohamud | Whether that variable is set equal to null or undefined, both *identifiers* exist and can be referenced. So that doesn't separate null from undefined. | 12:10 |
| dcammue | so if we console.log the totalclasslength, what will be the output? | 12:11 |
| smohamud | With undefined, imagine you just declare a variable but *don't* set it's value... It's also like asking if "nothing" is true because the value is undefined, there's no sepcific value. | 12:11 |
| smohamud | does that help Gabriel? | 12:12 |
| gabriel | sure | 12:12 |
| smohamud | dcammue, just added the log. Before we execute it, what do you expect? | 12:12 |
| dcammue | i am also asking what to expect, | 12:13 |
| dcammue | but i expect the program to run and shows nothing for that line | 12:13 |
| smohamud | glad to hear that Gabriel. Boolean logic is often *not* intuitive and languages do it differently. For the comprehensive answer on when to expect a value to evaluate as True, use the MDN documentation (official JS, linked at the top of this file). | 12:14 |
| dcammue | beside the ' total class length | 12:14 |
| smohamud | Let's run it Thomas | 12:15 |
| smohamud | Did it show nothing? | 12:16 |
| thomasboimah | it show undefined | 12:16 |
| smohamud | Yes. Do you see that dcammue? | 12:16 |
| dcammue | okay, copied | 12:16 |
| smohamud | The reason is that if a variable is *not* assigned a value, JavaScript will go in itself and set it to undefined. | 12:17 |
| smohamud | It is related to the var keyword hoisting lesson a few days ago. If we declare var totalClassLength = 100 at the bottom of the file and then try to call it at the top, it does not result in a reference error (the name was hoisted!) | 12:19 |
| smohamud | But, importantly, var is assigned later in the file and remember that programs execute line by line, top to bottom. | 12:20 |
| smohamud | Would you like a quick demo of how logging var before it's declared results in undefined? | 12:20 |
| smohamud | If not, let's go straight to the last portion for today. Loose vs Strict equality. | 12:21 |
| dcammue | sure | 12:21 |
| smohamud | So, there are two types ways to determine equality in JavaScript. One is called "loose" equality and it uses two equal signs, like this if(varA == varB) | 12:22 |
| smohamud | The other "Strict" equality and it uses three equal signs, like this if(varA === varB) | 12:22 |
| smohamud | Let's say you have two arrays with a bunch of numbers, ids. numberIdsArrayOne = [123, 345, 678] and stringIdsArrayTwo = ["123", "345", "678"] | 12:25 |
| smohamud | Imagine for whatever reason, your program uses both data types for the ids but sometimes there are places where you want to compare if an id from one is equal to an id from the other... | 12:26 |
| smohamud | You *could* convert all the ids of one into the data type of the other... Which is more code, and depending on size of the arrays, time consuming. | 12:27 |
| smohamud | OR, you could use "loose" equality to compare them. Let's do an example of two loops. One using String equality, the other loose equality. Then, we will call it day. | 12:28 |
| smohamud | Sounds good? | 12:28 |
| dcammue | +1 | 12:28 |
| thomasboimah | +1 | 12:29 |
| gabriel | +1 | 12:31 |
| smohamud | Thomas, please run it and let's see if we get some equalty when it's Loose. | 12:32 |
| smohamud | This is an overly complicated example... But, just think about it as one loop going through all the stringIds one by one and then for that one stringId, it checks if any of the numberIds are equal. It should log true for each element in the array. | 12:33 |
| smohamud | Oh I've been disconnected? | 12:33 |
| smohamud | Can anyone see the code? | 12:33 |
| gabriel | -1 | 12:34 |
| thomasboimah | https://prod.liveshare.vsengsaas.visualstudio.com/join?77C3B17DC8DF07F1905857028ACD95D9A5CC | 12:34 |
| dcammue | no | 12:34 |
| smohamud | Can you see my cursor now? | 12:35 |
| thomasboimah | yes | 12:35 |
| gabriel | +1 | 12:36 |
| smohamud | Great. So what I've done here, much simpler example now, is declared two arrays. One "stringUserIds" and another "numberUserIds" then I pull out the first element in each and set them to variables. | 12:38 |
| smohamud | Finally, the IF statement checks if they're "loosely" equal | 12:38 |
| smohamud | two equal signs "==" | 12:38 |
| smohamud | If they are, it will log out a message. If they aren't, it will log out a message saying they're not. | 12:39 |
| smohamud | Everyone following? | 12:39 |
| smohamud | Questions before we run it? | 12:39 |
| thomasboimah | -1 from me | 12:39 |
| gabriel | -1 | 12:40 |
| smohamud | Thomas please run it. | 12:40 |
| dcammue | -1 | 12:40 |
| smohamud | Ok, as you can see, they're loosely equal! | 12:41 |
| smohamud | Now, let's try with three equal signs. | 12:41 |
| smohamud | If they're strictly equal | 12:41 |
| smohamud | Thomas, please run it | 12:42 |
| smohamud | That's the lesson on strict vs. loose equality. "Strict' means the data types *must* be the same and JavaScript won't do the work of converting one to the other. | 12:44 |
| smohamud | Loose means, sure, you give me a 2 and a string 2 and I get what you mean. | 12:44 |
| smohamud | Any questions on anything we've gone over today? | 12:45 |
| thomasboimah | -1 from | 12:45 |
| smohamud | jkollie I noticed you dropped off. Any questions for me? | 12:45 |
| dcammue | quick one | 12:46 |
| jkollie | I tried reconnecting but couldn't | 12:46 |
| smohamud | great, let's hear it. | 12:46 |
| jkollie | am not sure why | 12:46 |
| smohamud | Ah, sorry to hear that. We'll have to work on making our connections more reliable. | 12:47 |
| jkollie | okay | 12:47 |
| dcammue | if you add the string 2 and 2 using two(++), it sum up to 2 I believe. just saying something, not really question | 12:47 |
| smohamud | I also disconnected and had to rejoin. My internet speed is ~10Mbps which isn't great... | 12:47 |
| smohamud | So, that's a related concept, it's called "implicit type conversion" | 12:48 |
| dcammue | sorry *4 | 12:48 |
| dcammue | so here where the question come in | 12:49 |
| smohamud | It means that JavaScript, rather than throwing an error wondering why two data types are being combined, will convert one of the data types because it noticed you're doing Math on a string that could be a number. Let's test it! | 12:49 |
| smohamud | Let's run it Thomas. | 12:52 |
| smohamud | Now that's interesting right... | 12:53 |
| smohamud | The product is 8 which means that JavaScript interpreted the string "2" as the number 2. | 12:53 |
| svaye has quit (Quit: Leaving) | 12:53 | |
| smohamud | Let's log the data type using typeof the results and see that too real quick. | 12:54 |
| smohamud | Thomas please run then we're going to finish for the day. | 12:55 |
| smohamud | What we've done is we're multiplying a string by a number, adding strings and numbers, and logging out the resulting sum & product as well as their data types. | 12:56 |
| smohamud | sorry, run again please. That was because otherProduct variable was defined twice.. | 12:57 |
| dcammue | so if we add another + to the second console line, it will output 4 instead 22 | 12:59 |
| smohamud | So, yes, dcammue, JavaScript will sometimes allow different types to combine and give us a result. Let's do one last test, combining undefined and a boolean with a string. | 12:59 |
| smohamud | Do folks want to try it or call it a class? I'm getting too into it lol and happy to do this last example if there's interest. | 13:00 |
| smohamud | We've gone over an hour which we must get better at sticking to...45m is the goal.. | 13:00 |
| dcammue | call it a class! | 13:01 |
| dcammue | thanks for the time | 13:01 |
| smohamud | Sounds good! | 13:01 |
| dcammue | see you then | 13:01 |
| thomasboimah | +1 | 13:01 |
| smohamud | Let me know if you have any questions between now and next class. I will be sending out the HW for Friday tonight. | 13:01 |
| smohamud | Good work today and good questions. | 13:02 |
| thomasboimah has quit (Quit: Leaving) | 13:03 | |
| smohamud has quit (Ping timeout: 480 seconds) | 13:19 | |
| jkollie has quit (Quit: Leaving) | 13:21 | |
| freena_ has quit (Quit: Connection closed for inactivity) | 13:39 | |
| smohamud has quit (Ping timeout: 480 seconds) | 14:10 | |
| gabriel has quit (Ping timeout: 480 seconds) | 14:16 | |
| dcammue has quit (Ping timeout: 480 seconds) | 14:20 | |
| smohamud has quit (Read error: Connection reset by peer) | 14:51 | |
| smohamud_ has quit (Remote host closed the connection) | 14:52 | |
| dcammue_ has quit (Remote host closed the connection) | 15:27 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 15:33 | |
| gabriel_jetro has quit (Ping timeout: 480 seconds) | 16:07 | |
| dcammue_ has quit (Ping timeout: 480 seconds) | 17:01 | |
| dcammue__ has quit (Ping timeout: 480 seconds) | 17:59 | |
| resl has quit (Quit: resl) | 21:18 | |
| resl has quit (Quit: resl) | 22:14 | |
| resl has quit (Quit: resl) | 22:40 | |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!