Matt Mullenweg on ChangeLog Podcast

Download the Matt Mullenweg podcast and learn more about the ChangeLog podcast.

Special Notes and Quotes from the Podcast

WordPress is a software which is reported to power about 25% of the internet (it appears to be 30.8% now). That’s an amazing accomplishment for a group of people.

“I think, if anything, it shows how much is left to do. Billions of people only have access to publish online through proprietary networks (Twitter, Facebook, etc…). People deserve their own home on the web. They deserve a slice of it which is just there. A place that isn’t tracked or has advertising or anything like that. Essentially, just like their home.” – Matt Mullenweg (paraphrased from 27min 27sec)

What is the business mode of Automatic and what is the business model of WordPress?

WordPress:

  • Doesn’t need a business model
  • No costs – No need for revenue
  • Open Source model staffed by volunteers and those paid by other organizations

Automattic:

  • For profit company with investors and more than 400 employees
  • We find a model in which we benefit the community and the community benefits us
  • We stay away from monetizing things which should be free
  • Jetpack and WordPress.com are supported by way less than 5% of the users
  • Automattic is allowed to invests 150-200 million dollars into WordPress.org

 

Not Locking in Users

“With WordPress.org, you can download and use your data elsewhere. With Facebook, you can download your data, but what do you do with it after that?” – Matt Mullenweg

Product Development and Responsibility Diversificiation

40 min 0 sec – They discuss how to motivate people in environments where all the workers are volunteers. In technology businesses, most engineers have the ability to work wherever they want. Therefore delegating responsibility and enjoyable meeting planning is critical to keeping people motivated to do their best work.

The next 4-10 minutes of the podcast discusses a nuanced difficulty in team leading and product development in large, remote teams. I’ll paraphrase what I’m hearing:

If we diversify responsibility or hierarchy across a group of people, the leaders involved in that organization will have more empathy for team members and team members will have more empathy for their leaders. Why? Because many people in the organization have had the experience of being in the position of the other person.

Moving on to a Developer Centric Conversation – Calypso

At 46:45 they start to discuss Calypso which is essentially the transfer of WordPress to 100% JavaScript and API communications. This is the section of the podcast for developers and those interested in getting involved in the WordPress codebase.

Matt Mullenweg on the Future of JavaScript

I’m happily betting on JavaScript. It’s hard to imagine a [future] world [without JavaScript]. Browsers evolved from being about documents to being about applications. JavaScript is the lingua franca of those applications.

Addressing Anxeity for Developers

Matt suggests listening to State of the Word 2015. I’ve embedded that speech in the link below, a 1hr and 40min talk that Matt gives. Here it is:


1hr 6min 30sec – If you’re building a plugin today, I believe you should turn your interface into JavaScript and embed it in WP-admin….

 

In the podcast, Matt says “[If you read one thing based on this interview, read]… an essay by Orson Wells, called politics and the English language.”

It’s likely that Matt made a mistake by saying Orson Wells, where he should have said, George Orwell. I’ve saved that old essay to this server and you can read the text via this link.

Jocko Clock – The Pomodoro Clock with Jocko Willink

Allow me to introduce Jocko Clock.

Jocko Willink Pomodoro Clock

Free Code Camp has various projects in which aspiring software engineers write programs as they complete the coursework. One of the projects requires the student to build a Pomodoro Clock.

The idea behind a Pomodoro Clock is that you set a 25-minute timer as you begin a task. You promise yourself ahead of time that you will work on that task until that time has elapsed. With luck, you will be inspired to keep working after that 25 minutes is complete. At its core, the Pomodoro Technique is a procrastination elimination tool.

I know no public personality that inspires procrastination destruction more than Jocko Willink. His podcast always inspires me to work harder and wake up earlier. That’s why I made the Jocko Clock.

Jocko Clock

So the above project combines the principles of the Pomodoro technique with audio clips from Jocko Podcast. I sourced the recordings from YouTube.

Clip 1 – Get out of Bed | Clip 2 – Not Feeling It?

Whenever you load Jocko Clock, you’re greeted with Jocko’s voice,

“Get up and get after it.”

After you complete your 25 minutes, you get another message from Jocko.

“…you stayed on the warpath.”

Developing Jocko Clock

While building the clock, I went down a lot of dead-end roads. I integrated JS libraries that were complex, CSS libraries that broke everything and a host of other bad ideas.

After a lot of confusion, I found that simple jQuery and JavaScript were the best for executing these simple tasks.

To get the clips, I recorded the YouTube audio with Screenflow. Screenflow has a leveling tool which I used to homogenize the levels. Then I used Audacity to downsize the audio files from 3-megabyte .aiff to a 100-kilobyte .mp3 (64kbps is fine).

Jocko Clock Improvements

If you think you could help with any of these improvements, feel free to create a pull request. This clock is open sourced and available on GitHub here.

Center Align – I’m having a really hard time vertically aligning the clock so that the font grows and shrinks with the window size. I was able to weasel my way out by adjusting the image and the watch layout, but I wish I could make it responsive to the window size.

Font –  The font should match his actual watch, but I couldn’t find a Google font that fit the bill properly. Below is an image of what it should ideally look like:

jocko clock

A Bigger Library of Audio Clips – The tool would be more fun to use if the audio clips were randomly selected from a large library. That way, each time the user started a working session, they would have a gamified inspiration to get after it.

Quick Check – Ian’s Wikipedia Search Tool

In order to achieve the front end developers certificate from FreeCodeCamp.com, one must build a tool to search Wikipedia. Here is mine:

Ian’s Wikipedia Search Tool – Quick Check

wikipedia search tool
Ian’s Wikipedia search tool

This challenge was very challenging for me in the best of ways. It utilized the algorithm practice that I love with complex new libraries. You could say that I’m learning to love jQuery and AJAX.

When adding HTML and CSS into that JavaScript mess, the project was a real challenge for a junior programmer like me.

Process and Design Notes

I focused on simplicity when designing the front end.

FreeCodeCamp.com stipulated in the challenge that we were to design a button which would initiate the search. I broke that rule. My API calls were triggered by a ‘button up’ event, rather than a button. The idea is that the user gets immediate feedback and thus would find the tool more useful.

If you’re interested in the development process, you can see the different version updates on my GitHub project.

Though I built the button into the project initially as per spec, I removed it towards the end. If a search is triggered by the last button typed, there is no need for a search button at all.

The Best Free Code Tutorials

What follows is a list of the best free code tutorials in my opinion. I’m proposing only the programming tutorials that I found taught me the fastest and the ones I enjoyed participating in.

best free code tutorials

There are many slow, boring video series I’ve gone through in the hopes of learning to program, but what follows are the programs that I found to teach me the subject quickly and were fun to complete.

Overall Best Free Code Courses

  1. Free Code Camp – http://freecodecamp.com/ – Free Code Camp is an open source, game-like software course that teaches everything from HTML to computer science ideas like
  2. CodeFights – https://codefights.com/ – I would suggest this is more of an intermediate way of learning. Once you get good with algorithms, this might be a great way to get on the radar of interesting software engineering companies.
  3. Codecademy – http://codecademy.com/ – These exercises are the best for getting an initial introduction to any technologies covered on their platform. Also, if I want to revamp some skills quickly before approaching a new project, bashing through Codecademy is a great way for me to freshen up on skills.

Best Specific Code Technologies

JavaScript

JavaScript is a very important language for the internet. If you want to have a good idea of what JavaScript looks like when navigating the web, go to Chrome>Preferences>Content Settings and shift the “Allowed” tab off. Once you’ve turned JavaScript off, go to your favorite websites and see the difference.

NPM

What is NPM? Node Package Manager is a protocol for using JavaScript to build applications. At this point, all I know is that it empowers the programmer to use the terminal to build web applications in JavaScript.

Regular Expressions (RegEx)

What is a regular expression? A RegularExpression is a line of text formatted to get you a result. For example, if you wanted to find all the dollar amounts from a tremendous text document, you can use a regular expression to pull out all the numerical numbers after a “$” symbol.

jQuery

What is jQuery? jQuery is a library of JavaScript which makes using JavaScript easier on web pages. For example, you write a HTML search box into a webpage and you want to process the input from the user to do something. You could use jQuery to take the user information and put it into a JavaScript algorithm.

Learn.jQuery.com – http://try.jquery.com/

SQL

What is SQL? SQL is an acronym for Structured Query Language. Pronounce it, sea quell, rather than S.Q.L.  This is a database language for retrieving data and creating data. Note: a basic understanding of RegularExpressions will help before starting the SQL tutorials.

Expample Format
SELECT <something>
FROM <dataset>
WHERE <attributes you care about>

SQL Bolt – https://sqlbolt.com/

Best Free Code Tutorials – Parting Words

I’m no expert at this. In 2016 I spent a year deep diving into software engineering, but I ran into a wall and decided to build a school bus home. That home took me about 9 months to build so I fell off the programming horse during the months from March to November of 2017.

For me, there is still a haze obscuring my path to understanding software engineering. Though the haze has lifted consistently during my studies, I still feel considerably lost in it. The above suggestions were from the tutorials that cleared the haze out the fastest. I’m sure it’s not a complete list, but it is the list of technologies that helped me the most.

Please add any suggestions in the comments below. I would really appreciate learning faster ways to blow the haze away.

Elchanan Mossel’s Probability Problem in JavaScript

An interesting problem popped into my twitter feed this morning:

Here’s how I wrote the problem in JavaScript:

function rollDie() {
  return Math.floor(Math.random() * (7 - 1) + 1);
}

function allEven(arr) {
  for (var i = 0; i < arr.length; i += 1) {
    if (arr[i] % 2 !== 0) {
      return false;
    }
  }

  return true;
}

function rollsToSix() {
  var rollResults = [];
  var sixRolled = false;

  while (sixRolled === false) {
    var roll = rollDie();

    if (roll === 6) {
      rollResults.push(6);
      sixRolled = true;
    } else {
      rollResults.push(roll);
    }
  }

  console.log(rollResults);
  return rollResults;
}

function howManyPositiveResults(attempts) {
  var positiveResults = 0;

  for (var i = 0; i < attempts; i += 1) {
    var resultOfRoll = allEven(rollsToSix());

    if (resultOfRoll === true) {
      positiveResults += 1;
    }
  }

  return positiveResults;
}

console.log(howManyPositiveResults(100));

The above program runs the results 100 times and returns the number of positive results. It also logs all the rolls even if the consecutive rolls included odd numbers.

It was fun to watch Mike Lawler do this problem with his children. I learned another approach to the problem from him. You can watch it here:

Exploring Elchanan Mossel’s fantastic probability problem with kids

t6r – Twitter Spam Hack Reactor Founders With Their Own Random Quotes

Getting stuck is the hardest thing about learning computer programming.

While working my way through Free Code Camp, I was stuck on the Random Quote Generator project. It’s part of their intermediate front end development certification.

Luckily, I had been applying to Hack Reactor and was conditionally accepted as soon as I completed the Pre-course Accept (PCA) program. While working through the PCA program with a big group of Hack Reactor people, we had the same project as Free Code Camp. We were to build a random quote generator.

So I used their random JavaScript algorithm to display random quotes at the click of a button. Very basic jQuery.

Heres the thing… the quotes are really funny. How could this be more useful?

It’s pretty clear that the random quotes were crafted by people who started the schools. The folks who came up with the first Hack Reactor curriculum.

So I wrote a short click to tweet algorithm and generated the quotes so they were easily shared on twitter. Now, anyone who wants to spam the founders of hack reactor with random quotes can do it with ease.

This is just for fun of course. A little mischievous fun on the internets. Despite the fact that I didn’t end up attending Hack Reactor, my experience learning with them for the PCA portion of the bootcamp was excellent.

Anyways, here’s how it turned out:

http://t6r.ianrobinson.net/

Setting Up Your Custom Domain Email Accounts

So I spent much of today trying to make the best screencasts I could.

I do have a question for anyone reading this blog.

Notice that in the first movie, I invest a lot of time into zooming in on the specific sections of importance.

In the second video, I ran of time and just completed it without the zooming in effects:

Which do you think is more useful for someone seeking this information? If you think the zoom is valuable, on a scale of 1-10 how important do you think it is?

Bootcamp Prep – The Videos I Wish I Had When I Started

Coding Bootcamp Prep Course
The view from the App Academy building… awash in code.

It’s challenging to prepare for the technical interview application process at immersive coding
bootcamps like App Academy and Hack Reactor.

I’m trying to make it easier… here’s a collection of videos that I think make it easier.

Creation Story

For most of 2016, I was working hard to learn the needed coding skills to pass the technical interviews. My goal was to get accepted to the top programming bootcamps in San Francisco.

In July of 2016, I applied to MakerSquare, Hack Reactor and App Academy.

I was accepted into Hack Reactor and App Academy, both of which are considered very challenging schools to get into.

After a lot of deliberation I chose to be a part of the November, 2016 cohort at App Academy.

At the time of writing this, I have 2 months until the start of the cohort so I want to spend the time teaching others how I think about the technical challenges and provide material to speed the skill acquisition of future aspiring programmers.

Tools

There are a lot of tools to get hung up on. If you follow along with the video course, you can skip that.

In this course we will use Node and a simple text editor. Both are easy installs.

Programmers are crazy about their tools and that is a good thing. We’re learning the basics so we don’t need the fancy stuff. Fancy tools will actually hurt you during your coding interview because they become a crutch.
During many interviews, you won’t be able to run your code or write in an editor that gives you hints on syntax. We’re doing this spartan style so you have the core ability to pass the technical interview no matter what tools they ask you to program in.

Language

We will be using JavaScript. Here’s why:

JavaScript is used to build almost all websites these days.

Even if you’re going to a school that focuses on Ruby or Python, you will still find yourself using JavaScript (or it’s derivatives) to display the results of your code on a website.

For that reason, it makes sense to learn JavaScript first. The syntax is more challenging (IMHO) and therefore it is better to start there. Once you get good at JavaScript, Ruby and Python are easy to pick up. I transitioned from Ruby to JavaScript and I think it would have been easier to go the other way.

When I started, I learned Ruby. After transitioning to JavaScript, I wish I had started there and moved to Ruby later.

I hope you find this useful.

You can download the course material as I create it via this GitHub repository.