IRC log of #novawebdev for Monday, 2026-09-21

smohamud has quit (Read error: Connection reset by peer)06:11
dcammue__ has quit (Ping timeout: 480 seconds)06:46
smohamud has quit (Ping timeout: 480 seconds)08:29
smohamud has quit (Ping timeout: 480 seconds)09:16
dcammue has quit (Remote host closed the connection)09:45
jelknerHello gabriel_jetro 10:25
jelknerare you here?10:26
gabriel_jetroGood morning jelkner10:26
thomasboimahGood morning jelkner and gabriel_jetro!10:27
jelknerGood morning!10:28
jelknerlol10:29
jelkneri just tried to call dcammue on signal10:29
jelknerthat will be my new way of reaching out when i don't see anyone here ;-)10:29
jelknerthomasboimah, do you have a few minutes to plan?10:29
thomasboimahsure10:29
gabriel_jetroYes i am here, jelkner, I am sorry you've not seen me online since wednesday, i was rob by knife men's men on wednesday afternoon, they took the phone you give me and i am unable to track it for the past few days now.10:29
jelknerso sorry to hear that gabriel_jetro10:30
thomasboimahdcammue when with jkollie and Fkoikoi to the credit union10:30
jelknertheft has long been a concern10:30
jelknerthat's an awful experience10:30
jelknersorry you had to go through it10:31
jelknerperfect thomasboimah10:31
jelknerok, thomasboimah, i want to get you and zOnny reconnected10:31
jelknerhe is feeling underutilized10:31
jelknerand we are not in a place were we can waste our very limited resources10:32
jelknerespecially when there is so much waiting to be done10:32
thomasboimah+110:32
gabriel_jetro+110:32
jelknerthomasboimah, did you hear about the SJC meeting yesterday?10:32
thomasboimahI did read the log10:32
jelknernice!10:33
jelkneryou rock, thomasboimah 10:33
thomasboimahYour guys have three circle now.10:33
thomasboimah*you10:33
jelknerjust like our old friend replaceafill, we can count on you to be on top of things10:33
jelkneryes, 3 circles10:33
jelknerbut what i wanted to talk to you about was the 4th10:34
jelknerthe Mutual Aid circle10:34
jelknerwith Care First Liberia as its first project10:34
thomasboimahNice, btw I and Joseph will be going to the credit union this week10:34
jelknerexcellent10:34
jelkneri owe you a donation10:35
jelkneronce the banking is set up, we can do that10:35
jelknerok, here's the other thing i wanted to talk about10:35
jelknerin both SJC and NWD, people are asking for a nice, simple, project management tool we can use to help track what needs to be done10:36
thomasboimahThat sound like a work for Jetro :-)10:37
jelknerwhen we looked into this in the past, cjones and smohamud recommened something called a kanban board10:37
jelkneri've never used it10:37
jelknerbut i remember the conversation10:37
jelknerso, here's what i'm pitching to you (hopefully working with zOnny)10:37
jelknercan you look into a Django kanban board we could use?10:38
thomasboimahSure10:38
jelknera quick search yielded this:10:38
jelknerhttps://github.com/misterpoloy/kanban-django10:38
thomasboimahand document all what i can find put it in md and share with you10:38
jelknernice!10:38
jelknerwe want Django!10:38
jelknerwe need to build our core skill10:39
jelknerand not get distracted10:39
thomasboimah+110:39
jelknerok, anything else for me?10:40
jelkneri'm going to call zOnny later to see if he can work with you on this10:40
thomasboimah-1 from me10:41
jelknerwhy?10:41
thomasboimahOkay10:41
thomasboimahthe -1 was for the "anything else for me"10:41
thomasboimahlol10:41
zOnny has quit (None)10:51
gabriel_jetroGreetings zonny10:52
thomasboimahGood morning zOnny!10:53
zOnnyGood morning comrades10:53
smohamudgood morning all10:53
thomasboimahGood morning smohamud!10:53
gabriel_jetroI made a PR one the cjs branch with my branch name feature_claudejones10:56
zOnnyjelkner: after our quick conversation10:58
zOnnyjelkner: Following up on the kanban board idea: SJC already has a Nextcloud membership, so I think we should start using it before we build anything new.10:58
gabriel_jetroI did Feature #3 - Feature #4 - Feature #8 10:58
zOnnyjelkner: Nextcloud includes Deck, a built-in kanban board with boards, lists, cards, assignees, due dates, labels, and comments. It also ties into the rest of Nextcloud, so cards can link to shared files, due dates show up in the calendar, and everything stays under the accounts and permissions we already have.10:59
zOnnyjelkner: That means no new tool to build or maintain, no extra cost, and our data stays where it already lives.10:59
zOnnyjelkner: I'd suggest we set up one board for a current project and try it for a couple of weeks. If we find real gaps, we can look at what's missing then.10:59
jelknerYesterday i attended the SJC board meeting11:00
jelknertoday i'm working on a project management plan for SJC11:00
jelknerblocking on finding a team at NWD/JWD to work on it11:00
zOnny has quit (Remote host closed the connection)11:00
jelknerACTION done11:01
gabriel_jetroACTION done11:01
smohamudgabriel_jetro please share link to that repo here11:01
jelknergreat!11:01
jelknerzOnny had to drop off11:01
gabriel_jetrohttps://gitlab.com/novawebdevelopment/libreorganize-customization/claudiajones.git11:02
jelknerSJC is a May First member11:02
jelknerso it already has access to that infrastructure11:02
jelknerwe just need to learn to us it11:02
smohamudStandup - reviewed remaining Google sheets data for NSS, replied email / requested meeting. Replied CJS. Reviewed 2 of Thomas's 11 PRs. 11:02
thomasboimahDone with W1-1 through W3-4 of the development road map with the help of the React doc and deepseek. Some of the PR have been review and merge to main and the other PRs is still waiting for reviews. After all the PRs have been review by Smohamud and merge main, Then we can test. Includes: reverse geocode, EXIF GPS, in-app recording, PWA, comment UI polish, public read-only mode, signup approval, expert endorsements, PDF 11:02
thomasboimahexport, email + in-app notifications, feed filters, PWA install guide, share view tracking, and seed data with endorsements and GPS samples.11:02
thomasboimahACTION done11:02
smohamudtoday: read AMS data models, write out process ideas for Rachel.11:03
smohamuddone.11:03
smohamud*JS class, too.11:03
gabriel_jetrohttps://gitlab.com/novawebdevelopment/libreorganize-customization/claudiajones/-/merge_requests/11:03
jelknerthomasboimah, i have a question for you11:03
thomasboimahshoot11:04
smohamudThomas, Gabriel please join here: https://prod.liveshare.vsengsaas.visualstudio.com/join?FB4756967B7A67D2657E1A981CB6C6C54A4A11:04
jelknerwho would be the next rising Django dev at JWD whom we could get working on a Django project?11:04
jelkneri just got off the phone with smohamud 11:04
thomasboimahgabriel_jetro, and Jallah11:04
jelknerhe is saying you are crucial to the core customer projects that we are blocking on now11:05
jelknerNS AMS mainly11:05
jelknerWe have other projects coming in11:05
jelknersmaller ones11:05
jelknercjones and i will be customer for one of them11:05
jelknerand cjones and a dc non-profit will be customers on the other11:06
jelkneri want to be able to start those projects with zOnny, a new paid JWD person, and a few of our students11:06
jelknerwe can't do two at once11:06
jelknernot enough funding11:07
jelknerthomasboimah, can you speak to gabriel_jetro and Jallah and the rest of the JWD team and decide whom you could put on this?11:07
thomasboimahOkay11:07
jelknercool11:07
thomasboimahI will do and get back to you on wed.11:08
jelkner+111:08
jelknerand i'll be at the meeting on wednesday11:08
jelknerask the chosen person to show up then too11:08
thomasboimahsmohamud, What can i help with on NSS AMS project?11:08
jelknerin fact, if they can't make meetings, don't choose them! ;-)11:08
thomasboimahokay11:08
jelknergreat, see you wednesday11:09
jelknerACTION signs off11:09
smohamudLet's discuss later Thomas, there are several things on our list but we need to priortize.11:09
jelkner has quit (Quit: Leaving)11:09
thomasboimahDr. Hubbard is not that in hurry for his bro just so I can help with anything now11:09
thomasboimah*not bro, *project11:10
thomasboimahOkay11:10
smohamudGot it.11:11
smohamudOk, let's get started on class today11:11
thomasboimahalright11:11
smohamudThe topic is functions. FIrst, let's do a warmup on control-flow and reading / predicting output of code :)11:11
smohamudScroll to line 6711:11
smohamudRead through //Call stack. It's a term for the program's context that tracks all function calls. 11:12
smohamud/Dev Tools gives a first hand look.11:12
smohamudconst parentFunction = () => {11:12
smohamud    console.log("Parent function is executed. Currently top of call stack. Line 61.");11:12
smohamud    firstChildFunction()11:12
smohamud    console.log("firstChildFunction is done executing. Call stack returned here. Line 63.");11:12
smohamud}11:12
smohamudconst firstChildFunction = () => {11:12
smohamud   childOfFirstChildFunction()11:12
smohamud   console.log("childOfFirstChildFunction is done executing. Call stack returned me here. Line 68.");11:12
smohamud}11:12
smohamudconst childOfFirstChildFunction = () => {11:12
smohamud    console.log("childOfFirstChildFunction is executing. At the top of call stack. Line 72.");11:12
smohamud}11:12
smohamudfunction functionDeclaration(){11:12
smohamud    console.log("It is hoisted!")11:12
smohamud}11:13
smohamudparentFunction()11:13
smohamudWhat is the order of the logs when we call parentFunction?11:13
smohamudLine 8211:13
smohamudPlease write out the expected output if parentFunction is run.11:13
smohamudOf course, do not copy and run it elsewhere and share the output. That defeats the purpose of the exercise.11:16
thomasboimahwhen parentFunction() is called on line 82, the output will be: Parent function is executed. Currently top of call stack. Line 61. childOfFirstChildFunction is executing. At the top of call stack. Line 72. childOfFirstChildFunction is done executing. Call stack returned me here. Line 68. firstChildFunction is done executing. Call stack returned here. Line 63. 11:18
gabriel_jetroThe parent function will the the first line of code on line 6111:19
smohamudYes, do you want to give the rest a try?11:20
gabriel_jetroconst parentFunction = () => {11:20
gabriel_jetro    console.log("Parent function is executed. Currently top of call stack. Line 61.");11:20
smohamudNice, that console.log is the first thing that gets logged. Do you have a prediction for the rest or no?11:21
gabriel_jetrowhich line should we predict?11:22
gabriel_jetroafter parentfunction, the next to be executed will be firstchildfunction called11:24
smohamudCorrect. Let's run it. I asked for the "output" so I meant what will show in the console.11:25
gabriel_jetrofirstChildFunction() is called (line 3 inside parent):11:25
gabriel_jetro    firstChildFunction is pushed onto the call stack (on top of parentFunction).11:25
gabriel_jetro    Inside, childOfFirstChildFunction() is called11:25
smohamudBut that's okay, you're on the right track :)11:25
smohamudLet's see.11:25
gabriel_jetrochildOfFirstChildFunction() is called (line 7 inside firstChild):11:25
gabriel_jetro    childOfFirstChildFunction is pushed onto the call stack (on top of firstChildFunction).11:25
gabriel_jetro    Logs: "childOfFirstChildFunction is executing. At the top of call stack. Line 72."11:25
gabriel_jetro    Function ends → popped off the call stack.         11:25
smohamudParent function is executed. Currently top of call stack. Line 61.11:26
smohamudchildOfFirstChildFunction is executing. At the top of call stack. Line 72.11:26
smohamudchildOfFirstChildFunction is done executing. Call stack returned me here. Line 68.11:26
smohamudfirstChildFunction is done executing. Call stack returned here. Line 63.11:26
smohamudThomas, excellent job.11:27
thomasboimahsmohamud, quick question11:27
smohamudGabriel, you were on track with the call order but I should've clarified.11:27
smohamudYes Thomas11:27
thomasboimahWhat would the logs look like if firstChildFunction logged something before calling childOfFirstChildFunction, would the order change?11:27
smohamudWell, where would the new thing that's logged go?11:28
thomasboimahThe new log would go right after Parent function is executed... Line 61 and right before childOfFirstChildFunction is executing... Line 72. (not to sure about this just a try)11:30
smohamudlet's run it, I added the log:    console.log("New log at firstChildFunction")11:31
smohamudYes, it comes right after parentFunction executes and since it's logged *before* the other function that logs is called, it logs before it.11:32
thomasboimahThanks11:32
mulbahGood morning to all11:32
smohamudFunctions are just the program as a whole. The functions aren't hoisted within a function scope and executed before the rest of the function definition11:32
thomasboimahGood morning mulbah!11:32
smohamudThey're just like* the program.11:32
gabriel_jetroGood morning mulbah11:32
smohamudThey'll execute top to bottom.11:33
smohamudDoes that help Thomas?11:33
smohamudHi Mulbah :)11:33
thomasboimah+1 Thanks11:33
smohamudAwesome. So, today, let's focus on *functions* 11:33
smohamud/Ecma Script is an organization that writes standards for JavaScript definitions. Makes sure JS is interoperable across browers/clients.11:34
smohamud/ES5 released in 200911:34
smohamud/ES6 released in 201511:34
smohamud/ES6 introduced let, const, arrow functions and classes11:34
smohamudSo, let's get started. 11:36
smohamud/Parts of a function: parameters, body.11:36
smohamud/Syntax: Always in curly braces11:36
smohamudline 27 declares jetroBankAccount object11:36
smohamudwith one property, "balance"11:37
smohamudwe define a function, payBill on line 3711:37
smohamudIt updates bank account information.11:37
smohamudIt's a regular function declaration.11:38
smohamudRead paybill and notice it subtracts 100 from the bank account.11:39
smohamudQuestion: if we run payBill two times, will the balance be 900 or 800 and why?11:39
smohamudjetroBankAccount11:40
smohamudI'll give another minute to answer. Again, no need to be right just say what you think11:41
thomasboimahthe code line please.11:41
smohamudThat's good information.11:41
smohamudLine 4211:41
smohamudWhat's the output of console.log("Bank account after Paybill is run twice: ", jetroBankAccount)11:41
thomasboimahfor 30 to 42?11:41
thomasboimah*from11:42
smohamud27 to 4211:42
smohamud1 more min.11:42
smohamudNote that everytime payBill is called, it subtracts 100 from the balance.11:42
smohamudThe starting balance is 1000. But, the question is, does it mutate the balance or does it only have that value within the scope? Note that it's declared with const *and* we log the object *after* payBill is run twice11:43
thomasboimahsmohamud, is that 10000 or 100011:43
thomasboimahin the code11:44
thomasboimah?11:44
smohamudApologies, that' 1000011:44
smohamudwill it be 9900 or 9800?11:44
smohamudThank you Thomas.11:44
thomasboimahit will be 980011:44
gabriel_jetro980011:45
smohamudOk, mulbah do you have an answer?11:45
gabriel_jetrothe first time it's call will be 9900 and the second time will be 980011:45
smohamudOk, let's log the balance in between too.11:45
smohamudCorrect11:47
smohamudIn a few words, who can explain how they knew it would be 9800 and the object would mutate.11:47
smohamud?11:47
mulbahSorry, I went to get something.11:49
thomasboimahlet me try11:49
smohamudno worries. Go for it Thomas11:50
thomasboimahit's 9800 because payBill mutates the balance property on the shared jetroBankAccount object (not a local copy), and const doesn't stop property mutation only reassignment. And by the way this also give me a hint to the answer (<smohamud> Note that everytime payBill is called, it subtracts 100 from the balance)11:50
smohamudExcellent, Thomas.11:52
smohamudHaha good catch11:52
smohamudNext time I'll be sure to rephrase that.11:52
smohamudOk, so we have arrow functions and functions declared using the function keyword11:53
smohamudArrow functions came around in 2015 and they're used regularly. In React codebases, you'll notice it's the vast majority including how components are defined.11:54
smohamudOther frameworks, they're there but more balanced.11:54
smohamudArrow functions came around and solved a few issues. One is that functions lose scope of something called "this"11:55
smohamud"this" is an object the contains context and is beyond the scope of this class.11:56
smohamudFor now, watch as I write an object that has a "function" keyword function property as well as a nested "function" keyword property and an arrow that's also nested. We'll put the nested ones inside of a setTimeout and then log the "this" object from the function definition.11:57
smohamudSound good?11:57
thomasboimah+111:59
gabriel_jetro+111:59
smohamudLine 120 I've declared an object with 4 properties12:02
smohamudthree are functions. Two of those are nested functions (inside of a setTimeout).12:02
smohamudAll of them log the "this" value12:02
smohamudLet's watch the output and see whether "this" is defined for these various functions12:02
smohamudIf it's "in their scope"12:03
smohamudJust a min, debugging. Going to replace the setTimeouts because it's leading to weird behavior.12:05
smohamudMaking them regular ftns.12:05
mulbah has quit (Remote host closed the connection)12:09
smohamudComrades, please accept my apologies but I should have made the example prior to class. The rule is that arrow functions, when "this" is called, take the enclosing scope of the closest parent function. 12:10
smohamudfunctions defined with "keyword" only have access to "this" at the level that they're at, so historically, it was required to set the value self = this (or similar way to capture the this value) if there was a nested function12:11
smohamudIn this scenario, I expected the enclosing "this" to be the entire object for the arrow function that's defined as "nested"12:11
smohamud_Sorry about that comrades.12:14
smohamud_Connection dropped.12:14
thomasboimahNo worries12:15
smohamud_The last important takeaway is that mostly, they're interchangeable. If a function takes a callback function, you can choose between arrow and "function" keyword.12:15
smohamud_Personally, I like them. They're slightly less boiler plate. No need to write "Function" every time.12:15
smohamud_functionWithArrow = () => {12:16
smohamud_}12:16
smohamud_functionWithoutArrow = function(){}12:16
smohamud_Any questions for me before we call it a class?12:17
thomasboimah-1 from me12:17
gabriel_jetro-1 for me12:17
smohamud_Ok, great job today guys. Please bare with me as I try to formalize how the class will be run and finish a curriculum. 12:17
smohamud_I will return the graded homework to everyone by this weekend.12:18
smohamud_At that point, I will survey the class to see if it there's interest in continued regular assignments.12:18
smohamud_Have a good rest of your day!12:19
thomasboimahOkay thanks for today!12:19
smohamud_(Assuming no questions/thoughts)12:19
smohamud_You're welcome, thank you for excellent participation.12:19
smohamud has quit (Ping timeout: 480 seconds)12:20
thomasboimah has quit (Quit: Leaving)12:20
smohamud_ has quit (Read error: Connection reset by peer)12:22
mulbah07_ has quit (Remote host closed the connection)12:26
gabriel_jetro has quit (Ping timeout: 480 seconds)12:29
resl has quit (Remote host closed the connection)13:44
mulbah07_ has quit (Remote host closed the connection)15:13
mulbah07_ has quit (Quit: Leaving)17:20
dcammue has quit (Read error: No route to host)18:36
dcammue has quit (Ping timeout: 480 seconds)19:26
dcammue has quit (Remote host closed the connection)20:21

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!