I'm starting a new chapter of my life. I'm moving on...literally!
Tomorrow I move to a new apartment. I can't wait! I need to focus on Website Development for the next few weeks, and to focus on helping other students, within my own limitations.
This feels like another life to me. I know that I can do this.
Now that I know that I don't need to focus all my attention on the class... the first homework was about Learning to Learn and Ali Abdaal (genius!)...I will see friends (at home with a mask) and take walks around my new neighborhood.
Sat Jul 3, 2021
4:03PM After my social media was hacked, I've had trouble re-trusting my computer. However, I'm finally able to get beyond that. Recently, I've attended Leon's past few lectures, and I've found myself learning some new tricks.
This past week was pure fun. I learned that Microsoft has some cool new online toys that make facial recognition and speech detection easier. I've already learned Machine Learning with Python, but I got disenchanted with the subject after building some Covid graphs. I found that due to the lack of data initially, the prediction models weren't good. Machine learning is not good at predictions when there is missing developing data.
Luckily, with facial recognition and speech detection, there is an adequate amount of solid data! And Microsoft has done a lot of work already.
So, later today, I will test my new skills and maybe add a portfolio piece.
Thu May 6, 2021
9:10 PM I spent the last hour defining a basic app with Node.js and Express and Nodemon for me. It takes a while for everything to stick in my brain and so I like to go back to the basics. It helps to understand the fundamentals in detail and memorize these elements before I start a big project. It's just part of active recall, but I'm pasting it in here so that anyone can gain some insight.
The terminal/CLI parts include:
>npm init -y
>npm i express nodemon
>npm start
Here's the code and the commentary on the "index.js" file. There's more commentary than there is code, but sometimes the basics require extra explanation.
//Basic app
//Uses no extra variables or content outside of express & nodemon
//node = JavaScript-based platform for server-side and networking applications
//npm = installs node programs
//Express = used with node creates a backend web server that listens for any kind of HTTP request on the URL http://127.0.0.1:3000/ OR (http://localhost:3000)
//Nodemon = monitors for any changes in your source and automatically restart your server
//Mongodb = document database, which means it stores data in JSON-like documents
//Mongoose = MongoDB object modeling tool designed to work in an asynchronous environment
const express = require('express')
//Creates an instance of the express server
const app = express()
// PORT can come from environment or from a default value
const port = process.env.PORT || 3000
//The app.listen() function is used to bind and listen to the connections
//on the specified host and port. Identical to Node's http (fetch stuff?)
//Initially on user computer and then migrates to a online host
app.listen(port, () => {
const name = "Log"
console.log(`Listening at http://localhost:${port}`)
console.log(`This is a basic app called ${name}`)
console.log('This is my idea of a basic app.')
})
Here's the basic "package.json"
{
"name": "log",
"version": "1.0.0",
"description": "Log",
"src/main": "src/index.js",
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js"
},
"keywords": [],
"author": "Shimanti",
"license": "MIT",
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^2.0.7"
}
}
Thu Apr 8, 2021
I'm happy today because I've got around to figuring out my computer issues and my iPhone issues (fingers crossed). I'm heading to T-Mobile to see if they can upgrade my iPhone to a iPhone 12. I'm not happy that I have to do that just to get a phone that works for my thumbs, but that's the way life is. Sometimes I have to do the things that I don't like, including potentially missing my deadline to see Learn with Leon today. I need his explanations for PUT, but I figured everything else out with Discord helpers.
AND, I got around to doing my first coaching session with my coding partner. She's so awesome. She just needs to figure out how to say good things about herself for her own sake.
We worked on her LinkedIn profile for a job at Nasa that I already know that she'll get, if she doesn't get snatched up by another company. (She built the bloodpm with my help. She is that good that minimal direction made an MVP.)
https://www.linkedin.com/in/katrina-pritchard/
I hope everything works out for her to do whatever she wants in life. (And to update her LinkedIn as it's work in progress.)
6:01 PM Poor Leon. The students are having trouble. I'm having trouble with migration of a site on my computer to MongoDB and Heroku because those sites keep changing their setups. (I delete everything on MongoDB on IP and start from scratch.) Of course it's frustrating. It's all frustrating when one thing doesn't work. That's just life.
So, I'll find something that I love and take a break. And then ask questions on Discord, and then life is all bearable again.
Life is so easy, but trying to think for others is exhausting. SO, I've decided that I'm just doing things for myself instead. Life is just easier for me that way.
I'm so happy I did that today. Now I have a Project Plan and I have students to coach. And I'm so excited because I already know which companies would be perfect fits for them. And, of course, I already know how to overcome the hangups. It's easy when coaching is one-on-one. It's just hard in large groups.
11:53AM I've decided to take my time. I will do my projects in my time, and if I'm lucky, they will coincide with Leon time.
My first project is how to get a Job in 10 hours (over 10 days, non-consecutive - 2 hrs/week for 5 weeks). Pandemic-job-search-101
Step1: Recruit 4 coached participants - commitment total is 10 hours (including emails and writing stuff)
Step2: Setup site for a landing page
Step3: SEO the hell out of the landing page (to get emails).
Step4: Start coaching but assign a writeup per participant (1paragraph blog on site - 5 mins max)
Step5: Write-up the lesson myself after the initial input from each participant post lesson (max 30 minutes for me)
The second is to improve my BP Monitor App. The first version is here.
Step1: Migrate to BPMonitor.com site - DONE
Step2: SEO the hell out of the site, with the first version, to get all the names and emails. - DONE
Step3:Build the graphs out on BP Monitor.
Step4:GO live!
And that's it for now.
2:03AM I think I have all the steps to create a 100 hour project now.
Original API code:
const url = ""
fetch(url)
.then(res => res.json())
.then(data => {
console.log(data)
})
.catch(err => {
console.log(`errror ${err}`)
})
NODE: https://nodejs.org/en/download/
MONGO: https://cloud.mongodb.com/v2/605cfa9d63c58c576f0ec22c#clusters
HEROKU: https://dashboard.heroku.com/apps
Leon's most recent steps: See slides
NOTES (which currently do not make sense to me)
Post:
API will submit a form on the client side and this will speak to the server side
The app will post the action - app.post('/action')
The database will collect the information into a document - db.collection('todos')
2 things needed for each document into database - .insertOne(text: req.body.x, completed: false)
text from the form
completed status as done (false)
Get:
app.get('/') and then talk to the database
connect to the database, locate the 'todos' collection, find the documents in that collection, then put it into an array (to make it easy to hold objects) - db.Collection('todos').find().toArray()
Pass the objects off to ejs template, which spits out the HTML, and respond from the server to the client with that HTML.
ejs conditional logic
FOR loop in pseudo js which creates an li each time
but it also has an IF statement to check if the TODO item is completed, so that it can also put in a <span> with a class ='completed' (with a CSS strikethrough)
Put: (Update in CRUD)
I NEED TO SEE WHERE IN THE CODE THIS LIES through pictures. I GOT LOST.
Making a PUT request which finds the document and changes the completed from false to true - this happens from a click event changing it.
When 'click' on TODO item, that means there is a PUT. Each array item (todo list item) has a loop to go through the array and mark it completed or no completed class...and this comes from the ejs. This determines if the document complete is either false or true. This indicates whether there is a span or no span. Which means that upon eventListener of click, a function of markComplete or markUnComplete instigates
The server is setup to hear that request, with the put, and find the thing: request.body.itemFromJS. Then respond back with a json.
Client side - get bread => JS event => fetch Put to get bread
Server-side =>app.put() which hears the request, then db.collection('todos').updateOne(thing: getBread), then it changes the completed value to true =>set:complete: true, once that's done, we reload with another get request to find the 2 documents again, which now has the updated complete property, which then adds the class of completed in the ejs if it is true. The span changes from that.
Client side => rendered HTML
Delete
fetch to make a Delete request from server
app.delete('/deleteItem', (request
12:53AM After an eventful Sunday of super-human strength (normal is super-human to me), I skipped straight to the project work.
Of course, I came upon my first roadblock, translating an entire Indian cookbook online into an easy website. It wasn't easy. I stopped when I came to the conversion into a database. It's easy enough with spreadsheet conversions of the text, but I'm not as adept at spreadsheets these days. So, that won't work for me.
I did translate the pdf into the html version, with an online convertor. The PDF cookbook is now pretty and webfriendly as an html file, but not as useful as the pdf version to print up. My Mom didn't make good measurements when I typed up the original file on an old computer in 1997. I doubt anyone could follow it now. So, I won't be sharing this goodie.
Now the entire idea of a cookbook seems silly because there's really no point of doing it at all. My 2 goals have been satisfied...HTML online web version (for family), and PDF (also for family).
Unless I want to picture and redo my entire cookbook...NO! It makes for an exciting task on a rainy afternoon instead. Besides, who wants to rewrite everything from scratch into a database. If you're not adept with a pdf to excel to a database conversion, then it's for you. That's just extra work for me. And I'm all for easy.
So, instead, I'm back to idea #1, a blood pressure monitor that shows a few nice or nice enough graphs and is in real time, so needs to be on node.js, express, and mongoDB.
The node stuff is just goobledygook to say that it's basically js on steroids, to extract the data I need. Do they really even have to say client-side and server-side? Isn't it enough to say what I just said. I mean it's just a way to make javascript easy on one computer that acts as both the client and server-side (until it's "migrated" to heroku).
Anyway, I digress. BTW, Leon, did you know the github files/slides were wrong for lecture #33 and that messed me up (and probably a few others on the ToDo app). I went backwards to review APIs which I did love, so I can't say anything bad about that. But I was a bit pissed off since I got confused. But, I love Leon, so I can't stay mad.
BTW, I loved the Book ISBN API. That was so much easier than setting up Goodreads API from CS50w years ago. I do love being a nerd.
10:10AM My questions are going to be so insignificant that I feel terrrible to ask them on Discord with Leon's helpers.
Instead, I am taking notes on Class 23 again because I feel that I went too far ahead of myself by pushing to the project before I understood APIs.
It's terrible to feel so out of sorts that even the question is hard to formulate. The problem could be anywhere within an entire project. And I only have a bare suspicion of where the problem lies. I need a mentor to spend an hour a week with me to go through my code or answer questions or both. Now that the programming is project oriented, it seems harder to get it right. And instead that builds up in me until I erupt in a Discord channel about the fact that I'm just overwhelmed.
And the sad thing is that it works. The minute I vent my frustration, I usually can figure out a solution...whether it be to take a break or to take smaller steps through a problem.
However, today, I don't want to look through my code at all. I want to cement what I have learned already. Leon would say it's time to do Anki, but somehow, I managed to erase pages of Anki decks, so now I'm going back to good old note-taking.
What is a program? A set of instructions for a computer, telling it what to do.
What is programming? Task of writing a set of instructions in a language that the computer can understand (Javascript for us.)
What are loops?
An action that is repeated a number of times.
3 main types in js: for, while, do while
They vary in ways to start and end a loop
For (let i =1; i < 5; i++) {
console.log(i)
}
What are arrays? A list. Type is object.
A data structure to store Ordered Collections.
Numbered starting at zero.
Arrays have methods to manage the order of elements. (array.length)
Can be created by a constructor or by literal notation.
let newArr = []
let fruits = ['bananas', 'apples', 'oranges']
console.log(fruits.length) // 3
What's an object?
Key value pairs {'name':'keith'}
Has a collection of variables (known as properties) and functions (known as methods)
Has attributes and behaviors (aka properties and methods)
What's an API (Application Programming Interface)?
Simple interface for some complex action
Lets one thing communicate with another thing without knowing how things are implemented
URL is the interface for the web API (like a menu)
Example DnD, http://www.dnd5eapi.co/docs/
// Dungeons and Dragons Pull Request from API - gets the subclasses for "acid-arrow" spells input
document.querySelector('button').addEventListener('click', getAPI)
function getAPI(){
const choice = document.querySelector('input').value
const url = `https://www.dnd5eapi.co/api/spells/${choice}`
fetch(url)
.then(res => res.json())
.then(data => {
// console.log(data.subclasses)
data.subclasses.forEach( obj => {
const li = document.createElement('li') //creates list item
li.textContent = obj.name //puts name of object into li
document.querySelector('ul').appendChild(li) // appends to ul
})
})
.catch(err => {
console.log(`errror ${err}`)
})
Index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Home</title>
</head>
<body>
<h1>Which Spell?</h1>
<input type="text" name="" value="">
<button type="submit">Get Spell Data</button>
<h2>Picture of Emblem</h2>
<img src="dnd.png" alt="" height="200px" width="200px">
<iframe src="" frameborder="0"></iframe>
<h3>Subclasses?</h3>
<ul></ul>
<script src="dnd.js"></script>
</body>
</html>
3:57PM After 3 years+, I finally have “git” figured out. It’s not something for my regular blog because that’s about day-to-day life, which now includes my non-code friends, from eons ago.
However, today I did something new. I used “git” for my simple projects. These are NOT projects posted to Github. They are projects that are in formation. I know I “should” have been using git all along. However, I wasn’t really going to use my code, so who needed to save all the versions?
Well, I did.
I spend hours trying to find all my “simple” code. (I write simple because “simple” is NEVER simple. It takes time and effort to make it “simple”.) Before that, it’s just a nasty mess of pseudo code and bad code. Even “simple” code can take lots of revision. But once it’s good enough to show someone, anyone, even for help, then it’s a version.
I never bothered with my own versioning on my computer. And subsequently, I spend ages finding my projects from 10 years ago (when JavaScript was not the same. Wikipedia says “The 6th edition, initially known as ECMAScript 6 (ES6) then and later renamed to ECMAScript 2015, was finalized in June 2015.” And who knew that we are now on ECMAScript2020! Well, the point is that JavaScript wasn’t as easy, back 10 years ago.)
It’s a pain to find that original code from 10 years ago. In fact, I think I gave up. I didn’t think my code was worth versioning until I was a “developer”, which I am officially saying I am now, partly because I finally get the use of git without GitHub.
I’m celebrating this victory, by taking a picture of my Mac's terminal window. I haven’t “migrated” or “synced” my folders to Github because I haven’t decided whether I want Github to hold my fledgling work.
In all these years, I have used “Github” to hold code, but never used “Git”. I think about that now, only because I want to resurrect my first code.
Versioning is so easy. I wish someone had “mentioned” to use git daily. Even for personal crap.
git status (it causes stress to see that red. I had to YouTube "git for beginners" and watch only the first part to get over this.)
git add (with -A at the end because I want ALL my files in one go)
git commit (with -am at the end because I want ALL my files with one message added)
git log (got to see what I'm doing and then Ctrl-C to exit)
Now I know better. Time to get back to coding.
I’m going to try to go back to Python today. I want to see if I can migrate data from an online website using Beautiful Soup. I want to see if I can get a list of my favorite songs.
OR, maybe I'll focus on my Horoscope homework. Coz, I need to focus. Okay, Pomodoro, here I come.
Simple things are just so rewarding…and easy!
7:56 PM Pomodoro method, for me, is "Echo, set the timer for 25 minutes" to focus on one task.
I saw a You Tube video about becoming a software engineer. The You Tuber said that it's about getting focused behind the computer for hours at a time. I have limitations that preclude me from doing that, for my health. But, I believe I can build my time.
I have the skills (from Leon), so it's time to build. Time to set the clock!
(Links to video)
Build freelance career through online friends & family or through local exposure
Example: Restaurants
Use a shopping cart widget or plug-in for any back-end ordering
Do NOT try to create something that exists
Platforms that take payments
Shopify
Stripe
Paypal
JavaScript - using console and console.log
Node
Platformio IDE
Use "!Prime" to get link to donate Prime points to Resilient Coders during Twitch streams
Use Templates - do not recreate something that someone can do better, and more easily
Use Dribble
Pair programming
Next on agenda
Horoscope App
declare variables for Month and Day
then use conditionals to make it
Sign = a date range
Sample Code
document.querySelector(‘button’).addEventListener(‘click’, getHoroscope)
function getHoroscope() {
let month = document.querySelector(‘#month’).value.toLowerCase()
let day = Number(document.querySelector(‘#day’).value)
if(month === “oct" && day >= 23) || (month === “nov” && day <=22)){
console.log(“Scorpio’)
}
Calculator App
The homework: only do 2 numbers and use + -
Sample Code
document....(‘#add”).addEventListener(‘click’, add)
function add() {
let num1 = Number(doc...(“#num1”).value)
let num2 …
let sum = num1 + num2
doc...(‘#result’).innerText = sum
doc...(‘#num1’).value = “”
doc...(‘#num2’).value = “”
}
Start local with pizza place,
I was trying to find your place online.
I’m a website developer.
I saw that you don’t have a website.
I would love to help you get your place online.
Job search
Leon will provide all material in future to conquer the job search.
Don't start now, but continue to network, always.
Interview usually consists of
30 Questions - Behavioral and tech questions
Coding Assignment - Take home - 3 hours
Final Interview
Go to console.log from the beginning - don’t be afraid
Do one action at a time for your code
Want to see what the computer is doing every step of the way
Use console.log in the code but also on the browser in the console, every step that you take.
Event listener - an event object that is exposed by the listener
DOM emits an event upon any action on the browser screen
The event object is always active, but gets accessed using addEventListener
When we listen, we can use the event object
To see the event object (and access its properties) use the console in the browser and console.log in your code
Inside the console, you will see the event (if you console.log(event)).
You can continue to access the properties of the event from the console, by clicking on them.
Const allows a variable not to be re-assigned, so you can use it within a piece of code
State = current status of the object
Target property contains elements that upon interaction emit an action
DOM element that was picked - direct reference to that element
Console.log(event)
Console.log(event.target)
Console.log(event.target.id)
console.log(`The $(event.target.innerHTML) was pressed`)
numButtons.addEventListener(“click”, (event) => {
Console.log(event.target.innerHTML, typeof event.target.innerHTML)
activeNumbers += event.target.innerHTML
Console.log(activeNumbers, typeof activeNumbers)
});
actionButtons.addEventListener(“click”, (event) => {
Console.log(event.target.id)
Console.log(equationValues)
Console.log(activeNumbers, typeof activeNumbers)
equationValues.push(activeNumbers)
Console.log*equationValues)
activeNumbers = “”
equationValues.push(event.target.id)
console.log(activeNumbers, typeof activeNumbers)
Shimanti10:06 AM
I have a codepen, https://codepen.io/shimanti/pen/XWjYQwG
yes. we can start on the javascript from scratch if you want.
I already built the CSS for the calculator when we were doing the CSS part.
So was using what I had.
Sure. I put my pseudo code on the right in the JS...but only got to the first step before getting in trouble
Do you want to share your screen?
ok, do it your way...just talk me through your thinking
wait a minute....can you repeat that
got it...can you delete my pseudo code and write your own
cos I guess I'm wondering what the first step is
to idenitify the parent of the numbers?
Got it...yes, I didn't know how to do that...how to use the parent and thus use the children
so that's coz I don't know how to do that
i know how to write it...don't know how to use the children with that
got it...one action at a time
I'm used to Python...the pseudo code is pretty much the code
That's good, I learned functional programming with python and it's hurting me here because it's about the DOM and that's just fundamentally different
OMG,,,what is event.target.is
Can you wait a second....I'm behind and taking notes
Yes, I'm writing notes on what you said...
but I already forgot what you said..."emit...
something about event
when does that happen
so on event action
but what does it emit
you may need my CSS to make it pretty
I find that developers already know how to use the console but I get stuck
I don't know what to put into the console and what to put into the code
I consider you to be a "developer". I am a beginner...with JavaScript
No, no no ...you are a software engineer who knows WAYYYYY more than me
I am capable of html and css....working on JS
can you split screen with your JS?
and console screen and code screen
so the event object gets activated from the Event Listener
oh, so the event happend whenever anything happened on screen
when we listen, we can use the event object
That's a hard theory to grasp
Dabolical (James)10:45 AM
DOM Events are sent to notify code of interesting things that have taken place. Each event is represented by an object which is based on the Event interface, and may have additional custom fields and/or functions used to get additional information about what happened. Events can represent everything from basic user interactions to automated noti...
Shimanti10:45 AM
yes please...may explian my problem with keydown too
Can you repeat what you said Target does
oops...i don't understand yet
the DOM element that was picked
got it...how do I use it
how did you do that
ok...so why did you do that? What are you trying to get to that we need to do that?
so you use the console.log to identify the items that you need to use?
yes...just wondering because I have to start doing that...coz otherwise I' just doing the code
got it ...great lesson there!
it's the equivalent of the "print" statement in python
we need to get the numbers, don't we
do we want to use them or gather all the number used for the first number
cos theres more than one number selected
and then num1 + action + num2
ok, so what would you use?
yes... that's where I got the initial code...but I think my thought process was wrong...because I stored it wierdly
cool...didn't know about the typeof
Can I ask you about event - you have that in a () is that the syntax for the function that we have to use ? The syntax of the function gives me problems...() vs none.
() => {}
friggin aye...didn't know how to debug
i didn't know where to look for getting details about the error
ah, so I just press the button on the screen to see the console.log
so I gave it a innerHTML +
oh I meant to grab the action...with the innerHTMl...does that make sense?
so I got stuck on thinking about the number and then action and then number
State?
so with python, I would have just done 2 functions - one to get the number and one for the action - and then reused the number
But here I got stuck on how to even grab the event for each
you would have to call the function
so it would be in the main code to call
that's why my pseudo code would have worked
yes...I want to know your JS way...because it's different
wait...how are you able to use a const?
i'm confused on what it's meant to hold
yay, the buttons work!
oh, so you want to clear that
so then activeNumbers is just a temp holder of the string
and then what is equationValues
the methodolgy is completely different and so trying to grasp that
ok...so how would you just do what is asked...yes that would be too much right now
i mean the basic rather than the complete
yes that was where it got a little too much. Thanks!!!! We got through events and dot notation and console.log and typeof
Dabolical (James)Today at 11:51 AM
// select the elements that we will be listening for
const numButtons = document.getElementById("numbers");
const actionButtons = document.getElementById("actions");
//store series of individual entries
const equationValues = [];
//store our clicked numbers
let activeNumbers = "";
//listen for actions on selected elements
numButtons.addEventListener("click", (event) => {
console.log(event.target.innerHTML, typeof event.target.innerHTML);
activeNumbers += event.target.innerHTML;
console.log(activeNumbers, typeof activeNumbers);
});
actionButtons.addEventListener("click", (event) => {
console.log(event.target.id);
console.log(equationValues);
console.log(activeNumbers, typeof activeNumbers);
equationValues.push(activeNumbers);
console.log(equationValues);
activeNumbers = "";
equationValues.push(event.target.id);
console.log(activeNumbers, typeof activeNumbers);
});
Shimanti11:51 AM
would you use the filter map etc...those concepts seemed to be easy but i didn't think I should use them yet
so do every action one step at a time with the computer and. console.log
Thank you thank you thank you. I haven't been using console.log. Gotta use it. I didn't know what people even meant by console.log it
It's done so quickly in class. It's hard to learn that.
yes...I got it…use console.log to see event.target.id
I didn't understand
until now
Awesome job explaining the key concepts!
12:03 PM
THANK YOU!!!!!!
9:54 AM I'm feeling guilty again. I feel that I haven't been able to put the right amount of time and effort into Learning with Leon. It's a bit intimidating to see the various Discord channels, and read about how far everyone is in their endeavors to conquer CSS and HTML.
I have to keep repeating to myself that it's only my own gains that matter. Each day is a new day. Keep going, and that's all that counts.
So with my own well-being in mind, I will shut off my radio, and focus. I will focus on the BBC layout for CSS practice because I didn't get to it last time, because I moved on to the homework. I need to Learn with Leon, so will review the layout from his video on Tuesday. I have to focus on Deep not Wide Learning. If I can't master the basics, then the rest will be useless.
I'm going old school on this, and going deep by typing in the HTML and CSS from scratch. (I read on Quora that getting the basic syntax by coding from scratch would save hours of trying to find the templates or the answers from Stack Overflow. I'm all for efficiency.) So, with that in mind, I'm turning off my websites, and music, and all distractions. I will focus in my text editor, Atom, on CSS and HTML from scratch to build my BBC website (snatching the pictures with screen shots).
It's not about anyone else, but me. I need to go deep for the future. I want to learn this well. I know that I've learned it the crappy way (by myself). Now I have Leon's team on Discord to help me. I will use them AFTER I put in my 25 minutes of focus. Here goes...
1:09 PM Putting my five minutes on the clock to type. Just FYI, I'm kidding (got a very sarcastic sense of humor that doesn't translate into text) about screwing anyone out of anything (helping everyone but 2 people in last entry). I can't do that, wouldn't do that. It was a joke. Now I feel bad about that comment. I'm screwing around and saying things to just see if anyone is around. Actually, I don't even know if anyone reads this stuff. I guess I just feel guilty about putting up a sarcastic comment.
I just got done with Leon's OH. He's the bomb as always. I've always been kind of bright, but not too bright. You know, the kind of person who's brother is the "smart" one. So, I "decided" to be the one with common sense. There's a lot of the world that's about common sense, or just seeing what is there, without having to be "technically" smart.
It's amazing what the power of saying you are "something" will do for you. Suddenly, I was seeing all kind of patterns in every day life. In time, and with the MS thingy, I've learned to do things in 15 minute chunks that my Dad and others wouldn't be able to do in a 100 years. I'm "smart" that way.
Anyway, I'll have to demonstrate that another day because I'm wiped out both physically and mentally right now.
Good job me for typing for 5 minutes!
8:33 AM Recall is one of the best forms of learning according to Learning to Learn. With that in mind, let me regurgitate yesterday's Leon lesson.
Day 7 - Networking and CSS review
I have a particular take on Networking. I don't think it should be called Networking. That just invokes fear these days. I prefer to think of it as another Lesson of Life - be interested in others. It's not a one-time thing. It's an ongoing daily activity, like brushing teeth.
Anyway, with that behind me, here are my notes from Networking
Turn a stranger into an acquaintance into a friend into a referral into a coworker
Build a network during the process of building your skills.
Invested time on networking beats skills, but it helps to have kick butt skills too.
Leon's Resilient Coders on average:
networked into 60 referred people =>
resulted in 2 jobs
Yep, my notes were pretty scant because I was listening along and injecting value into the chat stream. However, I must have got pretty overbearing (which can happen) because I was told to buzz off (not in those terms). That's okay. That made me resolve to help everyone in the class even more, except the 2 people who called me out.
My job, as I see it, is to add value to all the people in the job search stream from this Learn With Leon Bootcamp. The quickest way for me to do that is to use my network to create the jobs. It breaks my heart when I see the listings that ask for an expert software engineer in iOS or Android or something very specific. Instead, that company could invest in an eager and a very teachable software engineer who can be taught to do anything. It's limited thinking to say that the ideal candidate must already have the skills to do the job. I posted on LinkedIn to open up the doors to these graduates in 26 weeks. It takes time to budget, convince, and create jobs in corporate america/the world...so the wheels have to start turning now to invest in new talent for 2021.
CSS recap
Cascading Style Sheets are the zing behind the zang of HTML. The CSS provides the style to the substance of HTML.
Cascade means the rippling effect of the style from top to bottom. What is defined at the top, ripples down to the rest of the style sheet. What is defined last beats out whatever is defined ahead, if things were equal. (That's a very Economics term "if things were equal". Things are never equal in my opinion.)
CSS is not equal. The weight of a style depends on the Specificity.
Specificity is the game points that is given to judge the CSS element.
1000 points for something wildly specific....like "important"
100 points for ID
10 points for Class
1 point for any tag eg <p>
The funny thing is that adding things like ">" or "+" to a CSS line doesn't add points. However, the element behind the sign CAN add points. You can build up points for one styling line.
eg #sample1 > .sample2 + .sample3
this is interpreted as a parent-child relationship between #sample1 and .sample2
#sample1 has an # which identifies it as an ID
.sample2 has a . which idenities it as a Class
the "+" identifies sample3 as a sibling to sample2
In terms of points, the entire line has ID=1 and Class=2, so 1*100+2*10=>120 points of specificity
Now, although that's fairly simple, at 2 hours into the class, my brain is goobledygook, so that simple task must be written out. (I used to be able to do it instinctively with no hesitation. I miss those days, but now I think I can explain things better because I have to figure out my steps. There are pros/cons to every argument.)
Okay, the HVAC people are here now, so that's enough from me for now.
Here are some links from Discord or other places:
Justify-content
Align-items
Order
Align-self
Flex-wrap
Flex-direction
Flex-flow
Align-content
Follow along materials (oh no, I just realized that I forgot to submit my homework)
Twitch: https://leonnoel.com/twitch
Slides: https://slides.com/leonnoel/css-responsive-review-100devs/live (remove /live for a non auto-advancing copy)
Check-in: https://twitter.com/leonnoel/status/1329556381880307716
The last #100Devs class can be found here: https://www.twitch.tv/videos/806651768
Try and read before class (motivation): https://mwkworks.com/desiderata.html
Submit Your Homework:
Place your 15 minutes of pain responsive in a https://codepen.io/ and submit the URLs here: https://forms.gle/EANwRMLMvKeQzqfT9
Homework (Due Tuesday - Nov. 24th):
Watch: Independence Day Do: Real Layout Assignments
⚡️ OFFICE HOURS SAT - 12pm EST WOOT ⚡️
3:40 PM I just got back from a visit to my parents. I'm going to rant and rave a bit, so please bypass this section if you want tips.
I feel like crap because of MS (my back hurts, my throat hurts, I'm exhausted), and I've spent the last 4+ hours with my parents, culminating in the fire department coming to help my Mom to get up after she slipped while getting to the toilet.
Before that, I made cauliflower curry for my Dad, took my Mom to the shower, got my Mom's hair shampooed and cleaned, and then let her shower by herself. In the meantime, I took clothes out of some drawers and put them into my Mom's wardrobe because my brother and his family will be visiting for Thanksgiving, and will probably need some empty drawers.
I then prepared lunch for my parents, and settled my Mom in the sun. My Mom has Alzeimher's. I have no idea if she knows who I am half the time, but she lights up when she sees me.
My Dad, on the other hand, yells at me for helping him, because at the age of 85, he can do everything by himself. And I have MS, so apparently I shouldn't do anything.
Anyway, I'm ranting and raving because I got yelled at by my Dad, again. And then, my Mom got diarrhea, slipped, and needed to be helped up by the fire department. All in all, just a regular day in my household.
I, in all my wisdom, opened my computer when I got home and saw that Covid cases are predicted to increase on my Twitter feed. Not believing this, I decided to open my analysis from back in March, when I still thought there was a chance of becoming a Data Scientist.
Well, here is the link to my Juypter Notebook, linked to the John Hopkins site. (It may not be up because it was a team effort, and the notebook isn't in my name. It needs approval to be posted.) My team didn't even get to the machine learning part, because unless the data is good, the modeling will be crap. And the data back in March was just emerging.
Unfortunately, I still think the data needs more review, but it doesn't take a degree to look at graphs. Without further ado, here are my graphs on Covid-19. They speak for themselves. They should be back to front, but I think this version is equally as good.
Make your own conclusions.
Logarithmic Deaths (flat is good)
Deaths (no logarithmic scale)
10:00AM I've been negligent with this site. I haven't blogged in so long, that I've almost forgot what that even means. Anyway, yesterday's office hours were a treat for me. I unleashed all my "words of wisdom". All the years and years of Tips that I'd been saving up in this dilapidating brain of mine came out. It was a bit of a relief, but I'm sure it was quite a shock to the young ones in the group.
Here are Tips of the Day:
Go out and enjoy life!
See your family.
Don't waste all of your time on one thing because when you are faced with a crisis, you will have nothing else.
Oh my, my five minutes of typing time for this blog are already up. I'm going to get showered, dressed and go see my parents now. They are 85 and live 30 minutes away from me. I'm lucky!
BTW, this is after I, enjoyed my coffee (latte) this morning and my oatmeal breakfast. And then did this:
5 mins typing practice https://www.keybr.com/
25 mins coding - Did Layout1 from last week's homework from scratch again...and still got it wrong. So I posted to Discord and will check back tomorrow morning
5 mins reading - https://learn.shayhowe.com/html-css/ - I read the Space Within Selectors section and took notes...and STILL did not understand why my homework was wrong.
5 mins blog (this typing - I find that my typing for the 25 minutes of coding is better after the 5 minutes of https://www.keybr.com/ - hence the order here)
Good luck and KEEP AT IT!!!
I'm a list person, but I'm also a bullet person. I don't like taking Notes. I like jotting key terms instead. So, starting from today, I will copy and paste my Notes here. It's MY recap of the items that I learned from today. Now that I've watched Learning to Learn and Ali Abdaal, it's time to apply those concepts to my mastery of web development.
I've been trying to learn Web Development for 2 years, but I've done it all backwards. I started with the most difficult stuff. I started with Data Science, which is not difficult. Data Science involves a lot of math theory and then applies some algorithms to make predictions. It's not "AI" as my 18 year old son says....he's studying AI at ASU now (or at least he's trying but failing to follow their online curriculum because although he's there in person, he's stuck in an 8 X 10 dorm room).
I'm proud of him because he's not a partier and although others around him are "partying," he's doing a 20-hour per week remote part-time job. He was a horror to raise and still won't listen to a word I say. However, I'm a proud MOM!
Anyway, without further ado, here are my RECAP notes from today. I'm so excited to learn this stuff for real. It's been a slog to learn this without any feedback from real people.
So let's start with the real feedback aspect!
I’m a moron
(According to a Facebook person, "I'm a moron" because I unplug a device after I use it. After I got that feedback, I tried to explain that people in the UK do that because the electircity is old and the connection might ignite a fire. However, after that comment, I stopped social media. I don’t like people who attack on a personal level! I feel that Constructive Criticism of Notes or business stuff is TOTALLY valid and FEEDBACK is absolutely essential, but attacks are just wrong.
So here are my insights
I have the short term (working memory) of a gnat! I don’t even remember 3 minutes ago at times. It's an unfortunate aging thing.
My spelling abilities were tight as an 8 year old. Now, with spell check, they are just plain crap.
I type at 35wpm, at best. I have the abilities of a 2 year old (none).
My brain is fading quickly (aging). I can't do math after an hour of thinking. (And, I used to be a finance executive!)
My notes may not work for others….do what’s right for you…find what works FOR YOU!
These are MY notes from today. They are not complete in any way. They just work for me. If they help you, great. If not, then find a way to help yourself. Everyone is different. I'm nerdy and analytic. These notes work for me.
Please volunteer filling in terms that I missed, if you can, my email is info@shimanti.com (and it's forwarded to my personal account...so not snottyness, please). I really don't know the answers to those items. (I've bolded those items with question marks.)
Steps for me
Learn a difficult concept from Leon videos
Make small post-it notes on the concept
bullets are enough
but when reviewing, ask a question about the concept
Review concept
Walk away
Pack something or do something else with hands or body like
stretch/exercise,
drink water,
eat well
enjoy the sun
run down stairs (it's just the coming back up the stairs that's tough)
Come back to the learning video
Write a new blog recapping all learning at the end of the night (shimanti.com so others can learn) or make Anki cards with the post it notes (this is a REACH goal - meaning that it's wishful thinking).
At the end of the night, if possible, review concepts just before bed.
In fact, do a recap because those last thoughts tend to mix with the diffuse parts of the mind to make them stick in long term memory, according to Learning to Learn.
Remember
Prioritize the learning subject for the day
e.g. today is reviewing Leon's Day 2 video because my mental cognition was gone beyond 1 hour.
Focus on new concepts before reviewing old (Learning to Learn strategy).
Don’t get in the habit of doing the first part of the video repeatedly because that’s the ???
term from Coursera Learning video Week3/4?
DON’T listen to music or watch TV or multi-task while learning - so sad about the music - is that right?
Take snapshots of things you don’t understand and then GO BACK to them and try to understand that part of the video later.
Lean back in chair to stop tensing up shoulders and feeling crap at the end of the day
Have a water bottle at desk to sip away during learning - drinking water may reinforce learning!
Feel free to move about - that reinforces the learning!
BUT, if anything takes more than 2 minutes, make a list and do it later (Learning to Learn strategy).
If you find that you’ve been distracted for an hour…STOP!
Go back to learning videos frequently during the day and just review them in small increments.
Do the HARD (mental cognition work - like coding) during your first 25 mins.
Dance around to “Alexa, play Capital UK radio” often….exercise is excellent (Learning to Learn strategy)!
Stretch with “Alexa, enable 6 minute stretch”
During breaks, practice typing - this will also reinforce learning because it’s physical
Typing practice - http://10fastfingers.com
Typing frequent errors - https://www.keybr.com/
PRIORTIZE!!!!!
Coffee - It's the ONE thing that makes my day in the morning
MOVE FIRST (including bills, signing papers, setting things up, packing) - I moved and then moved back!
Leon learning
Eat
Sleep/Meditate - Mental health is as important as physical health - PLUS, it links all the neurons of the diffuse part of the mind with the focus part
What’s that concept called? Interleaving?
Learn typing - 5 mins/day practice
Learn shortcuts on a Mac - 5 mins/day practice - just one per day
Learning different subjects reinforces ALL subjects and creates “Interleaving” -
Is this joining items that are supposedly unrelated (in your long-term memory?) according to Coursera LTL
Opens up the “big picture”
Allows “out-of-the-box” thinking - which means you don’t dwell on a subject for hours coz that’s just useless time - do something else when that happens - like PACK!
Schedule
Hard stuff in the morning in 25 minute increments (or less for me)
Afternoon energy is SO low - Do physical stuff
Stretch or exercise (Bar Method - cut video into 5 minute segments when possible)
Wash dishes
Meditate
Night - Make a list for next day
Learning from Leon today before I forget them
Active recall - I don’t know the definition but I think it’s what I’m doing here in recalling the info that I learned
Spaced repetition - review often at first, then longer between concepts
Don’t nitpick - BIG CONCEPT is KEY
10 mins per day - Consistency everyday wins over cramming
HTML Syntax (spelling and grammar rules)
<p class=“nice”>hello world</p>
Attribute is “class”
Value is “nice”
<p> is opening tag
</p> is closing tag
“Hello world! Is the enclosed text context
In JS, is that the “innerHTML”?
Heading Element
Stop thinking that it’s a size thing
It’s all about the importance of the TEXT within that heading tag
I know, that’s a difficult concept for you, but you can learn that!
HTML text elements
<p> paragraph
<span> short text - not as big - think a few words
Other stuff is not important
Other Tags?
<aside> useless material that can be left out, or tips, which can also be left out
<section> related material - it's like <div> but better because it's more descriptive
<article> think a news article - can have a few items like an image and paragraphs
<header> items at top, usually
<footer> items at bottom, usually
Tips
Watch Leon videos without sound coz filling in the gaps is fun - AND reinforces learning!
When you get a frozen screen, it's time to walk away from the computer. It’s time to go wash dishes!
JUST KEEP AT IT!!!!