…and it’s not something I ordered. I don’t even own a USB-C MacBook!
Of course, this means that the matching computer — which the new employer is sending my way — should be arriving soon.
…and it’s not something I ordered. I don’t even own a USB-C MacBook!
Of course, this means that the matching computer — which the new employer is sending my way — should be arriving soon.
I’m pretty short on time today — and will be for the next couple of weeks — so I’ll just get to the point:
I signed an offer letter with Auth0.
My start date is scheduled for Monday, October 19th, and my new role will be on Auth0’s Developer Marketing team as Senior R&D Content Engineer.
Between the gig I’ve got teaching JavaScript and then Python a couple of evenings a week until the end of the year and a whole lot of technical interviews, I decided it was time to up my webcam lighting game. The result is pictured above and below.
I had an Amazon credit and a coupon code, so I got this thing for “cheaper than free”: A set of two 5600K USB-powered LED lights with tripods and filters…
It works quite well — and better than I expected. While it’s light and takes up little space once collapsed, it’s a little too flimsy for someone who needs on-the-go lighting.
However, if you plan on keeping the rig in just one place and not travel with it, it’s a good setup for your video chats, meetings, interviews, classes, and so on. Check it out on Amazon.
The lights worked well for last night’s class and the previous week’s tech interview. I’ll write more about how the interview went soon.
If…
…you’re in luck! There are a couple of good books on JavaScript whose contents are available to read online, free of charge!
The first of these books is Eloquent JavaScript, Third Edition, written by Marijn Haverbeke and published by No Starch Press. It’s not just an introduction to JavaScript, but an introduction to programming in general. It’s beginner-friendly, which is one of the reasons why it’s the main book for the first part of the JavaScript/React course that I’m teaching.
You can Eloquent JavaScript, Third Edition online here.
The second book is JavaScript for Impatient Programmers, ECMAScript 2020 edition, written by Dr. Alex Rauschmeyer. Its coverage of JavaScript is more complete, but it’s a little less beginner-friendly, which is why it’s the backup book for my course. I’m going to incorporate some of its content into the course, and point students to the online edition if they’d like some additional reading material.
You can read JavaScript for Impatient Programmers, ECMAScript 2020 edition online here.
The folks at Computer Coach Training Center must like my work, because they have me teaching another course — a 12-week, 3-times-a-week, 4-hours-per-session Intro to JavaScript and React programming!
I taught the Intro to Python Coding course on Computer Coach’s behalf in July and August. That one took place twice a week over 6 weeks, with each session lasting 4 hours.
The Intro to JavaScript and React Programming course starts next Tuesday evening, and happens Tuesday and Thursday evenings and Saturday mornings for 12 weeks.
The first six weeks of the course will be dedicated to gaining a solid understanding of JavaScript programming. During that part of the course, the text will be Eloquent JavaScript, Third Edition, which remains one of the most-recommended books for beginners. I’ll use it as a basis, but also add some additional material and cover changes in the 2019 and 2020 versions of JavaScript.
The second six weeks of the course will be all about React.js — and nothing but React. Yes, people use React in combination with all sorts of other technologies, but in order to get a solid grounding in React, it’s helpful to start by working purely in React. Hence Pure React, May 2020 Edition (which includes the newly-introduced feature of hooks) is the text for this section of the course.
If you’ve ever been in any of my Tampa iOS Meetup sessions, you’ve seen my teaching technique — you’re not passively watching slides, but coding along with me, and even experimenting, just to see what happens. That’s I what I did with the Python class, and it’s what I’m going to do with the JavaScript/React class — enter code, see what happens, and gain experience along the way. It’s learning by doing.
If this course interests you, it starts next Tuesday, and you can sign up by contacting Computer Coach.
This time, it was on Zoom, so I had more than one reason to dress up.
I think it went pretty well.
In my article about the Capture the Flag at The Undercroft in which I recently participated, I wrote about my solution to this particular challenge:
Your answer lies in the 1’s and 0’s…
0010111 00001111 00010111, 00011001 00001111 10101 00000001 00010010 00000101 00010010 00001001 00000111 00001000 00010100
(Make sure to use the comma, and spaces correctly)
The first part of my solution was turning those numbers into a list. Copy the numbers into a text editor, stick 0b
in front of each one, and then turn the sequence into a Python list:
numbers = [0b0010111, 0b00001111, 0b00010111, 0b00011001, 0b00001111, 0b10101, 0b00000001, 0b00010010, 0b00000101, 0b00010010, 0b00001001, 0b00000111, 0b00001000, 0b00010100]
Paste the list into a Python REPL and then display its contents to see the numbers in decimal:
>>> numbers [23, 15, 23, 25, 15, 21, 1, 18, 5, 18, 9, 7, 8, 20]
The next step is to convert those numbers into letters. Once again, the Unicode/ASCII value for “A” is 65, so the trick is to add 64 to each number and convert the resulting number into a character.
Here’s how I did that:
>>> characters = map(lambda number: chr(number + 64), numbers) >>> list(characters) ['W', 'O', 'W', 'Y', 'O', 'U', 'A', 'R', 'E', 'R', 'I', 'G', 'H', 'T']
I could’ve gone super-functional and done it in one line:
>>> list(map(lambda number: chr(number + 64), numbers)) ['W', 'O', 'W', 'Y', 'O', 'U', 'A', 'R', 'E', 'R', 'I', 'G', 'H', 'T']
Between lambda
and map()
, there’s a whole lot of functional programming concepts to solve a relatively simple problem.
I could write a whole article — and I probably should — based on just that single line of code, but in the meantime, I thought I’d post an easier, more Pythonic solution.
This simpler solution uses good ol’ list comprehensions:
>>> characters = [chr(number + 64) for number in numbers] >>> characters ['W', 'O', 'W', 'Y', 'O', 'U', 'A', 'R', 'E', 'R', 'I', 'G', 'H', 'T']
Most programming languages don’t have list comprehensions. In those languages, if you want to perform some operation on every item in an array, you use a mapping function, typically named map()
, but sometimes collect()
or select()
.
Hence my original solution with lambda
and map()
— it’s force of habit from working in JavaScript, Kotlin, Ruby, and Swift, which don’t have Python’s nifty list comprehensions.