750 words: Stop with the tech-is-bad bs!

Possible ageism trigger warning.
I’m going to complain about older people. By older people, I also include people my age (50). It’s not about their age, but the generation and exposure to tech those generations had.

In 1987, I got my first Macintosh. At the time, I thought there’s be other apples to choose from. I was hoping I’d upgrade to a Granny Smith or Honey Crisp; however, Apple did not have my fabulous idea in mind. I was 19. I already knew how to touch type because my high school teachers made me take typing in order for them to read my essays. Some people were up in arms, thinking I’d head down the secretary path. First off, don’t be sexist. If I had become a carpenter, I’d have been praised for being tough, but a secretary? I think nothing is tougher than a secretary that has to put up with a sexist boss. I digress.

All through university, I used the computer and computer lab to print out my work. I have never gone back to pen and paper except for correspondences. I still write letters and postcards because I love stamps. I was not in a mass of people embracing the Mac and PC. Some refused. I think they had the same genes of those who thought that horseless carriage was craaaazy. The ratio of those who accept, embrace, and understand tech to those who are resistant change every year. Every year, younger people and more families get computers at home. I am thankful that the person who pushed tech on me was my mom, who is now 75 and killing it on social media, using reply all when CC-ed on conservative, scare-mongering emails, and changing her passwords frequently. She has had a mac every year since 1987, too. So the ageism here is a mindset ageism.

I am getting exhausted defending tech to older (mindset) people. Yesterday, I was paying with Oculus at a demo and enjoying going through a house to change the floors, cabinets, lamps. An older man (older than me by far) shook his head. “I don’t know. I just …” You know how this ends. I demoed a hands-free rubbish bin.
Our mini conversations:
“I would just use my hands”.
“Because you can, sir. Not everyone has both arms. Immunosuppressed people need to avoid germs as much as possible. A parent with hands full could use some help.”
WHAT IS THE BIG DEAL?!
“There’s a man at UT who has the code to 3D print a gun.”
“People are making affordable prosthetics in a tiny fraction of the time.”
I showed him the AR available with some companies’ apps where they can see their products in their home.
“Why not save time by knowing what will look good? Why buy something only to return it? Who has time for that? No one wants to go to a big box store more than once in a week.”

Darling, you can toss your TECH IS BAD at me, and I’ll fire back with tech is now and good. Keyhole surgery? How do they practice? AR and VR to train physicians? Yes, please! Programs to help Alexa understand sign language? Um. Yes! And truthfully, even older tech helped us. Did accountants really prefer pencil to paper over the speed of electronic spreadsheets? I am one who likes to handwrite letters, but that is another way of spending time with my friends. Handwriting out ledgers takes so much time, when Excel or Numbers could speed that up, save and edit without wasting time or paper so you could go outside with your family?

Look. Listen. Look and listen. Tech is no different than anything else:
TV. On all day or watch exactly what you want for the hour then turn it off. Watch fear and hate mongering news shows or watch a science show?
Books. Read hateful rhetoric or a playful fantasy novel?
Books, magazines, TV, movies, and tech are just those. Nothing more. They are good or bad, beneficial or harmful, a waste of time or great fun. They are made and used by humans. They are as good or bad as those who create and use them. To lump anything that is new as something bad is foolish, silly, and short-sighted. What is old and familiar to you was once craaaazy new. Germ theory? If you expect your surgeon to wash and scrub up before surgery, you’re embracing something that was once scoffed as new and crazy. Washing your hands before you eat? See above. Pretty much anytime you enter a hospital or doctor’s/dentist’s office, you need to shut up about tech.

It’s ok if it gets harder to learn. I get that. It sucks to get older. Our minds aren’t as sharp. Age gets everyone until death comes in. But our choices are to keep our minds sharp and open or to just close it and turn away. Maybe this is a message to me. Never be that person, Katy. As you get older and your mind gets duller, don’t repackage any wistfulness into jealousy. I hope to enjoy tech until I die and to use it for good. The only time I don’t want tech is after death. Just toss me into the woods for the wolves. I’m cool with that.

 

750 Words: Practice, Habits, Learning

(750words.com entry for today: 911 words, including metadata list,  stats)

To learn something (anything), one has to practice. The comic artist Sarah Andersen of Sarah’s Scribbles has a widely shared strip about what makes her great. It’s practice. No matter what anyone tells you, it’s practice. Practice is closely related to habit.

If I want to improve upon a skill, I need to practice often and then that becomes a habit. A good one. With ADHD, it is hard to get a habit going. Unlike what some people assume, the distraction for me is not TV—it is other skills. Let’s reference another wonderful comic artist: Allie Brosh, the genius behind Hyperbole and a Half and the much-memed “All the things!” drawing. I’m not distracted by bad things. I’m distracted by other skills and topics within skills. I’m distracted by the newsletters that inform me of new tutorials and tutorials that teach me new frameworks. If I’m trying to break into web development, I’m working on HTML5, CSS3, preprocessors, JavaScript, JS frameworks and libraries, Node, etc. I’ll be focusing on one when an idea for another pops up. That is, while making an HTML/CSS technical document page for a FreeCodeCamp project, an idea for a fullstack app comes to mind. It takes incredible will not to change focus. This little blog post was started when I was thinking about what topic to write about for that technical document assignment.

I should add that this is a problem when flying solo. It’s another reason I love having a boss. I may have ADHD, but I also have anxiety about not doing my job and doing right by my team and manager. Not a sycophant in anyway, but I don’t slack if it means another person will look bad. Right now, I’m flying solo. I am my worst boss. Now, to give myself a break, as I look up job postings and read about what I have to know to be considered, I can’t help but add to my “Learn all the things” list. And to learn all the things, I have to practice. Practice and practice. Lather and repeat. Forget rinsing. I don’t think that works when I want to retain skills. No rinsing. Just keep lathering.

Here are the skills and habits I need to build. There’s no order. I’m writing this as they come to me. There’s never any order!
Skill: HTML5 + CSS3 mobile-first responsive web design.
Skill: JavaScript frontend fun—focusing on ReactJS, not forgetting little jQuery, and getting to know VueJS.
Skill: JavaScript backend with Node—getting endpoints and routing down pat, getting comfy with noSQL as well as SQL, ExpressJS myself.
Habit: Planning app in advance vs creating on the fly.
Habit: Addressing build/Gulp and testing/Mocha-Chai in every project.
Skill: Python—make more of a priority
Skill: Game Maker Language—for fun and for OOP practice.
Habit: GitHub—not working on the master, branches for every new thing.
Habit: Jobs—apply daily!
Habit: Own up—Tweet daily the #100daysofcode and blog the process (do not blog daily)
Skill: German—Refresh it. Listen to a YouTube video every day.
Skill: Art—Doodle on Sketch App to illustrate my own apps or just do my own doodles. Wacom, paper?
Habit: Read—Read before bed. Read fiction! Escape.
Habit: Craft—Attack the fiber stash.
Habit: Exercise—C25k, gym, and/or cycle. August is awful.
Habit: Healthy eating—This would be better labeled “Don’t let ADHD’s impulsivity affect your food choices”, but that is too long.
Skill: Writing—I don’t care if it’s handwriting and dealing with my illegible script or getting a postcard out. Just write.

If I kept track of the above with a bar graph, there’d be tall bars on the tech skills and smaller bars on skills and habits that have some distance from the laptop. I blame the job situation. Hard to put down the laptop and tech learning to read or attack the yarn stash when I am underemployed. I am ok with that. I can’t have this even. Once employed, I know the other things will get more attention. Right? Yes. Right … RIGHT!

What about the ethics? This gets me a lot. To learn, I watch tutorials, but if I just do their projects, it’s just follow the leader. I have to do my own. Tutorials, therefore, take a lot of time for me. I watch, rewind, then do. I do this until my own idea that applies this skill comes to my head. I create my own repo for a new app. For example, I’m doing Brad Traversy’s fullstack social media tutorial. I watch and listen, I do what he does. On my own, I’m applying what I’m learning to make a social media app for adoption groups so that they don’t have to always rely on Facebook for their volunteers to connect. I’m writing down other ideas for social media apps with the hope of every new social media app I do, I’ll refer less and less to the tutorial. Is it ok to do this? Am I plagiarising? Or is this like taking various illustrations to trace and trace and trace, then build your own style doing your own thing? I do not know. I just know that I have to practice. I need to copy someone. I’m by myself. I am not in a classroom or workspace where I can flesh things out with instructors and senior devs.

I’m winging it.

I’m still learning how I learn, Vern.

COFFEE: 2
ENERGY: 6
FOCUS: 4
HAPPINESS: 7
LOCATION: home
STRESS: 6
AMPM: am
NONFICTION: t

 

Gitty up with baby steps

I just read this article by Ariel Camus on FreeCodeCamp about becoming a Git Master. While I understand the need to have branches when working with others, I have been slack to adopt that process when working on my own projects. That is changing.

Slowly. Slowly because I have to remember to do it, not because I am resistant. Swiss cheese for brains.

I returned to one of my early assignments. I had completed a vanilla JavaScript Hangman in time, but I felt it could be better. Upon completion, it functioned as a hangman game and had a nice look to it:

hangman

I’d like to have the chalkboard and window closer, but the last thing I’ll change is the styling. The first thing I did was add Gulp to bundle and watch. There’s a branch. Next up was to give it better functionality. When I turned it in, it had a word bank that did not have words or phrases, so I had no desire to deal with hyphens, apostrophes, or spaces. Next I wanted to add more word banks. One for different themes and have the players choose a theme. Currently, the only theme is “pants”. Then I’ll deal with keeping track of losses as well as wins before ending this with styling.

Instead of touching the master, that was good enough as it was and possibly ruining it, I created my first branch: tests. I have since finished the tests and added that new function to the branch and merged. Next up, I checked out a word banks branch. This is where I am now.

Such a great habit to get into and it took me this long to do it? No. Not really. I have done it before, but I just forget to. When I realize I need to be on a branch, I’m already working on the master. It would not occur to me to work on the master when I’m part of a team, so why is this hard to remember when it is just me? Maybe I should just rip myself a new one so that mucking up the master is something that terrifies me. Put a mirror on my desk to really make the argument with myself seem real. Storm out. Apologize. Make up with ice cream. I see this as a win-win sitch.

 

 

My Brain Hurts: recursion with factorials

With pencil and paper in hand, I have no problem with recursive patterns. Fibonacci schmibbo-hotsytotsy. Factorials schmacks-Oreos.

“Write a recursive function to …” blah mork loopy loo let me leave the interview now so you can continue with someone better, and I can drown my sorrows in two scoops of ImNotWorthy. 

I know this because it was not until I was asked to demonstrate recursion in a mock interview (I requested this topic), that I saw that my comprehension was passive. I understood it when I saw it. … ish. Understood-ish. But there was absolutely no active comprehension. I could not do it on my own. No ish. Nuthin. Fear? Nerves? A pebble in my shoe?

It is that whole “snake eating it’s tail” that was throwing me. I could not recreate what was going on. There is no stack with pencil and paper. I can write it out and do them in my head until I needed a calculator, but even with a calculator, all I needed was a line:

5! = 5 x 4 x 3 x 2 x 1

I understood stacks in other terms (callbacks, pancakes), but the recursion was hurting my brain, until I made it a literal stack in my head. I was treating the part of the code block after the base case as a spiral when (for me) thinking about it as slapping 3×5 cards down. No wonder I didn’t understand the stack; I wasn’t treating it like one.

I’ve been playing with recursion and different tasks as I plow through books on algorithms and tech interview skills. Factorials and Fibonacci are the easier ones to grasp. Not easy. EasIER. Comparative. Like farts smell better than decomposing bodies. They don’t smell good, just better.

I wouldn’t say that I could whip out recursion any time, and I know that I wouldn’t want to with factorials (O(n2) and all that), but I’m getting there. I spent some time on JSFiddle and with my markers to play.

factorial_recursion

The code is old news.

const factorial = n => {
if(n===1){
return 1; //my base case
}
return n * factorial(n - 1); //my nut case
}

I did not set include checking to see that n is a non-negative integer. That was not the point of my doodling because checking for that was not the hard part. This post isn’t about a fully-tested function to return the factorial of a number; this is about me getting the recursive part.

Ok to be the good-enough dev? Yepsilon.

Oh, I just know that would raise some hackles. “Good enough” sounds like one is lowering the bar. If I want to be just good enough dev, then I’m ok with bugs, sloppy code, side-effects, untested code. But what is the next level up from good-enough? Better enough? Hardly. Not if you care about spoken and written language. Best? Who is best? Perfect? Riiiight. You keep telling yourself that, tiger. Perfectionism is not our friend, nor are those who think they are perfect. So let us be happy calling what is not perfect “good enough”. Ok? Are you with me?

If you’re too code-y dev-y, then think about epsilon and any approximation algorithms. I have been watching MIT’s Open CourseWare (if only I could stop calling it Online CourseWare or writing MITOCD), specifically 6.0001 Introduction to Computer Science and Programming in Python with Dr. Ana Bell. While going over the approximate solution for finding a cube root, I re-encountered epsilon (ε, or error. To find a cube root of a number that isn’t a perfect cube, I have to be ok with getting close enough. Good enough, not perfect. See? Ok. Good enough seems less lazy now, doesn’t it? Sure. You were ready to label me lazy until I mentioned “algorithms” and “epsilon”. The larger my epsilon, the less accurate my answer will be, but it is still epsilon.

I’m never going to be perfect. I will never finish a project if I worry so much about perfection. But I can be good enough with an epsilon of 0.1. And the next iteration of that project, theme, or tutorial assignment could be good enough with ε = 0.01. More learning and practice and repetition and repetition and repetition will lead to ε = 0.0001. But I will never be perfect. And that’s ok.

What I want to say here this morning is that “the devil” is the spirit of fear that drives us into rigidity and anxiety, which saps our good will and clouds our compassion. The spirit of Love is where our allegiance lies as good people, spiritual people, people who want to make the world better place. Love is always in dialogue with fear in our souls and bodies and minds. So when perfectionism is sharpening its claws in you, take some deep breaths, stop comparing your insides to other people’s outsides, remind yourself to be a good enough witch, and wonder — what would this whole situation be like if I had more love.

(from The Devil and Martha Stewart, by Meg “OMG I lurv her!” Barnhouse)

CodePen Challenge: details

This week’s CodePen Challenge: details and her little bestie summary. I had no idea they existed, so chalk another one up to benefits of a challenge.

Confession time: I did not research too much about how to style the accordion function or even if I could. I did not find any need to with what I had chosen. Not this time. When I use details in a project, I’ll probably wonder more about the styling. When the week is up, I’ll peek at other people’s attempts.

I chose coffee types after looking at coffee graphics. I love posters that show how to make different espresso drinks. The theme announced itself. I had no choice in the matter. I’d like to style the cups more—maybe add a handle—and see if I could animate filling, but probably not for all of the drinks. Maybe the classic three: espresso, cappuccino, latte. Perhaps make an end-of-month challenge combo as a pure CSS entry.

We’ll see. Katy has big-idea-eyes and tiny-time-stomachs.

coffee_math

Pure CSS Images: Now what

Here I am so far. (I am using screenshots because my version is not responsive.)

mid-century modern prints
Original by Kerry Beary and my wip. (I believe she spells it -mellows and not -mallows because she’s punny.)

In terms of what is left to do that is furniture or furnishings, I have the lamp and interior of the pod. I can do those and stay pretty true to the original; however, when it’s time to do the cats …

What do I do? Do I make CSS cats that are not much like the original? There are limits with CSS. Do I make them in SVGs? I think if I do that, it feels too much like plagiarising. SVSs are a last resort. Or maybe just put a cat in the back and a person on the bench? Change it enough? I have no idea. Thankfully, I still have that lamp to do. I might animate that.

I’m exhausted.