~wuz/wuz.sh

c4c4202527989a73f86f9448f8809830119b8895 — Conlin Durbin 3 months ago 0cbd27c
Remove old writing
16 files changed, 143 insertions(+), 212 deletions(-)

D writing/cantrip.md
M writing/deno.md
R writing/{what_tools_does_a_developer_use.md => developer_tools_ide.md}
M writing/developer_tools_the_integrated_development_environment.md
M writing/developer_tools_the_operating_system.md
D writing/devto_cookbook.md
D writing/digging_into_hooks_with_usehistory.md
M writing/engineer_mechanic_craftsperson.md
M writing/frontend_metrics_css_specificity.md
D writing/holy_smokes_thats_a_paycheck.md
M writing/my_devto_new_years_resolutions.md
D writing/noncomputer_based_hobbies.md
D writing/ski_lifts_understanding_react__hooks.md
D writing/what_is_your_job_title.md
D writing/what_podcasts_should_i_be_listening_to_in_2019.md
D writing/whats_one_thing_you_want_to_know_more_about.md
D writing/cantrip.md => writing/cantrip.md +0 -4
@@ 1,4 0,0 @@
---
title: "Cantrip"
draft: true
---

M writing/deno.md => writing/deno.md +97 -76
@@ 1,76 1,97 @@
---
title: "Getting started with Deno"
date: 2019-04-18T13:21:04.000Z
cover_image: https://i.giphy.com/media/l6O086UCmNZcc/giphy.gif
---
> **Edit:** Deno has hit 1.0 and with it, there has been some major discussion around whether the project needs an explicit CoC. The original maintainer seems to think it doesn't and I can't recommend that you use Deno until they do. 
> **A Code of Conduct is a necessary part of any open source project.**

In case you missed it, the new Javascript and Typescript runtime from Ryan Dahl, the creator of Node, [has been released](https://deno.land/)! It's got some really cool features and is ready for public use! Let's look at a few of the neat features and get started with a simple hello world!

![People in dino suits dancing](https://media.giphy.com/media/3rgXBvnbXtxwaWmhr2/giphy.gif) {style="--aspect-ratio:16/9"}

## What is Deno?

Deno is a new runtime for Typescript (and Javascript) written mostly in Rust. It has some [great goals](https://deno.land/manual.html#goals) and some very interesting "Non-Goals", like not using `npm` and not having a package.json.

## Getting it installed

Installing deno is as easy as running this command:

`curl -fsSL https://deno.land/x/install/install.sh | sh`

Then copy the `export` line and add it to your `~/bashrc` or `~/bash_profile`.

Open a new terminal and run `deno`. You should get a `>` prompt. Type `exit` and let's dig into some features!

## Cool features in Deno

### Typescript by default

Deno is integrated to run Typescript files by default. It basically makes types in Javascript a first-class citizen. No more compiling through Babel to use Typescript in server-side Javascript.

### Importing from a URL

Deno lets you import from the web, just like you can in the browser. Just add a URL where you would usually name a module:

```ts
import { bgBlue, red, bold } from "https://deno.land/std/colors/mod.ts";
```

### A Standard Library

Furthermore, Deno has a standard library that is easy to import and use. There are modules that do a couple of different things, like HTTP handling, datetime work, and file system work. You can check it out [here](https://github.com/denoland/deno_std).

### Uses ES modules

Finally, Deno only supports ES module syntax, which means no more `require()` statements, just good ole' `import x from "y"`.

## Hello World Example

Let's look at a quick Hello World that highlights a few of those features!

Copy this into a `hello-world.ts` file.

```js
import { bgBlue, red, bold } from "https://deno.land/std/colors/mod.ts";

const sayHello = (name: string = "world") => {
  console.log(bgBlue(red(bold(`Hello ${name}!`))));
}


sayHello();

sayHello("Conlin");
```

You can now run that with `deno hello-world.ts` and it should print out some stuff.

Change one of the `sayHello` calls to `sayHello(15);` and rerun it. You should see a type error since 15 isn't a string! That's pretty cool!

You'll also notice how to import from a URL - it's getting some console color stuff from the standard library!

# Final thoughts

Deno isn't quite ready for the production use - there are a couple [bugs](https://deno.land/benchmarks.html#req-per-sec), but development is moving forward quickly! This is definitely a cool new open source project and one to keep an eye on!
\ No newline at end of file
---
date: 2019-04-12T23:10:14.789Z
title: Getting started with Deno
description: A new runtime for Javascript and Typescript from the founder of Node
cover_image: https://i.giphy.com/media/l6O086UCmNZcc/giphy.gif
stage: 2
---

> **Edit:** Deno has hit 1.0 and with it, there has been some major discussion around whether the project needs an explicit CoC. The original maintainer seems to think it doesn't and I can't recommend that you use Deno until they do.
> **A Code of Conduct is a necessary part of any open source project.**

![People in dino suits dancing](https://media.giphy.com/media/3rgXBvnbXtxwaWmhr2/giphy.gif) {style="--aspect-ratio:16/9"}

In case you missed it, the new Javascript and Typescript runtime from Ryan Dahl,
the creator of Node, [has been released](https://deno.land/)! It's got some
really cool features and is ready for public use! Let's look at a few of the
neat features and get started with a simple hello world!

## What is Deno?

Deno is a new runtime for Typescript (and Javascript) written mostly in Rust. It
has some [great goals](https://deno.land/manual.html#goals) and some very
interesting "Non-Goals", like not using `npm` and not having a package.json.

## Getting it installed

Installing deno is as easy as running this command:

`curl -fsSL https://deno.land/x/install/install.sh | sh`

Then copy the `export` line and add it to your `~/bashrc` or `~/bash_profile`.

Open a new terminal and run `deno`. You should get a `>` prompt. Type `exit` and
let's dig into some features!

## Cool features in Deno

### Typescript by default

Deno is integrated to run Typescript files by default. It basically makes types
in Javascript a first-class citizen. No more compiling through Babel to use
Typescript in server-side Javascript.

### Importing from a URL

Deno lets you import from the web, just like you can in the browser. Just add a
URL where you would usually name a module:

```ts
import { bgBlue, red, bold } from "https://deno.land/std/colors/mod.ts";
```

### A Standard Library

Furthermore, Deno has a standard library that is easy to import and use. There
are modules that do a couple of different things, like HTTP handling, datetime
work, and file system work. You can check it out
[here](https://github.com/denoland/deno_std).

### Uses ES modules

Finally, Deno only supports ES module syntax, which means no more `require()`
statements, just good ole' `import x from "y"`.

## Hello World Example

Let's look at a quick Hello World that highlights a few of those features!

Copy this into a `hello-world.ts` file.

```ts
import { bgBlue, red, bold } from "https://deno.land/std/colors/mod.ts";

const sayHello = (name: string = "world") => {
  console.log(bgBlue(red(bold(`Hello ${name}!`))));
};

sayHello();

sayHello("Conlin");
```

You can now run that with `deno hello-world.ts` and it should print out some
stuff.

Change one of the `sayHello` calls to `sayHello(15);` and rerun it. You should
see a type error since 15 isn't a string! That's pretty cool!

You'll also notice how to import from a URL - it's getting some console color
stuff from the standard library!

# Final thoughts

Deno isn't quite ready for the production use - there are a couple
[bugs](https://deno.land/benchmarks.html#req-per-sec), but development is moving
forward quickly! This is definitely a cool new open source project and one to
keep an eye on!

R writing/what_tools_does_a_developer_use.md => writing/developer_tools_ide.md +0 -0
M writing/developer_tools_the_integrated_development_environment.md => writing/developer_tools_the_integrated_development_environment.md +8 -2
@@ 1,4 1,10 @@
---
title: "Developer Tools: The Integrated Development Environment"cover_image: https://thepracticaldev.s3.amazonaws.com/i/oacggfoe1db3ywj58s3j.png
title: "Developer Tools: The Integrated Development Environment"
cover_image: https://thepracticaldev.s3.amazonaws.com/i/oacggfoe1db3ywj58s3j.png
---
Test2
\ No newline at end of file

# The Integrated Development Environment (IDE)

Finally, the last major tool I'd like to discuss is the IDE. An IDE is software that combines many of the previously discussed tools into a single suite of tools. This has its pros and cons, but the major point is: by bundling all your tools together, you have a great cohesion between your tools but it can be hard to replace any single tool you don't like. Think of an IDE like buying a prefilled toolbox from the store - it will have everything you need for a while, but eventually, you might need something that doesn't fit in the box and that could be a pain.

I hope this introduction was helpful! Check back tomorrow for the post on operating systems! Comment with questions and comments and [come discuss with me on Twitter](https://twitter.com/CallMeWuz)!

M writing/developer_tools_the_operating_system.md => writing/developer_tools_the_operating_system.md +17 -10
@@ 1,13 1,14 @@
---
title: "Developer Tools: The Operating System"
date: 2019-02-26T13:38:55.357Z
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ufe31pdbd9wq2psethkt.png
---
> This is part of a 7 part series about developer tools. If you didn't haven't read the other parts, check them out above!
---
title: "Developer Tools: The Operating System"
date: 2019-02-26T13:38:55.357Z
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ufe31pdbd9wq2psethkt.png
---

> This is part of a 7 part series about developer tools

Operating systems are a collection of software used to manage the hardware and software components of a computer. They provide common resources that the software running on that computer can use.

There are many types of operating systems out there, but there are many common ones you might know. 
There are many types of operating systems out there, but there are many common ones you might know.

# Common OS Choices



@@ 20,25 21,29 @@ Quick note from Rhymes on my last post:
Many people have a love/hate relationship with Linux. There are hundreds of different distro's out there, each with its own ideas about what a Linux operating system should do and how it should work. I won't cover any specific repo's here, but that will be in the next article!

### Pros

1. Very customizable
2. Great tool support
3. Lightweight, can run on most hardware

### Cons

1. Configuration can take forever
2. You can spend forever fixing small problems that you caused
3. You are the support squad

## MacOS

MacOS is the operating system that runs on Apple computers. 
MacOS is the operating system that runs on Apple computers.

### Pros

1. Specifically designed for the hardware it is running on.
2. Great tool support / supports most Linux tools
3. Great support from Apple

### Cons

1. Pricey hardware! Planned obsolescence.
2. Some services built for Linux only _half_ run
3. If you don't like the looks, there isn't much you can do


@@ 48,11 53,13 @@ MacOS is the operating system that runs on Apple computers.
Windows is a controversial choice for developer software unless you are working on Windows servers running languages like C#. Lately, with the acquisition of Github and the introduction of the Windows Subsystem for Linux, the future looks bright for Windows.

### Pros

1. Runs on _tons_ of hardware
2. Microsoft is doubling down on developers lately!
3. Can run a lot of software now with Windows Subsystem for Linux

### Cons

1. Buying a license can be costly
2. Legacy of having bad tool support
3. Requires special software to run basic tools


@@ 75,8 82,8 @@ Finally, hardware is a big concern when thinking about what OS to choose. Most L

# Whatever you choose, make it yours

At the end of the day, your choice of dev environment is highly personal and comes down to a lot of different factors. Find something you are going to be happy working with day in and day out, and you will have made a good choice. Don't listen to people who espouse a "one true OS". Spend some time trying different OSs. 
At the end of the day, your choice of dev environment is highly personal and comes down to a lot of different factors. Find something you are going to be happy working with day in and day out, and you will have made a good choice. Don't listen to people who espouse a "one true OS". Spend some time trying different OSs.

Check back in tomorrow where we will dig into the code editor!

What OS do you use? What do you like about it? What don't you like?
\ No newline at end of file
What OS do you use? What do you like about it? What don't you like?

D writing/devto_cookbook.md => writing/devto_cookbook.md +0 -9
@@ 1,9 0,0 @@
---
title: "Dev.to Cookbook"
date: 2019-02-27T00:28:23.501Z
cover_image: https://res.cloudinary.com/practicaldev/image/fetch/s--K68W631F--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://thepracticaldev.s3.amazonaws.com/i/tu8g8p35ttnjirbvpxzi.jpg
---
Hey cool kids! I was cooking dinner tonight and was thinking about dev.to. There are lots of cool people on here so I wanted to ask: 
What is your favorite recipe?

I'll compile these and post them on a new site, so make them good!
\ No newline at end of file

D writing/digging_into_hooks_with_usehistory.md => writing/digging_into_hooks_with_usehistory.md +0 -5
@@ 1,5 0,0 @@
---
title: "Digging into Hooks with `useHistory`"
draft: true
---
https://codesandbox.io/s/32rqn6zq0p

M writing/engineer_mechanic_craftsperson.md => writing/engineer_mechanic_craftsperson.md +10 -10
@@ 1,18 1,18 @@
---
title: "Engineer, mechanic, craftsperson"
date: 2019-01-22T23:01:53.984Z
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ybgxby8dhwi5q6vskxng.jpg
---
I just finished replacing the battery in a car and it got me thinking about the different roles we play as developers. We go through so many different stages and roles that narrowing down any _one_ can be difficult. 
---
title: "Engineer, mechanic, craftsperson"
date: 2019-01-22T23:01:53.984Z
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ybgxby8dhwi5q6vskxng.jpg
---

As I was thinking about the car and the things I feel comfortable fixing on it, I started to realize some of the roles I play at any given time. On any given day, at any given time, I may be working as an engineer, a mechanic, a craftsperson or some combination of the three. 
I just finished replacing the battery in a car and it got me thinking about the different roles we play as developers. We go through so many different stages and roles that narrowing down any _one_ can be difficult.

Let me explain.
As I was thinking about the car and the things I feel comfortable fixing on it, I started to realize some of the roles I play at any given time. On any given day, at any given time, I may be working as an engineer, a mechanic, a craftsperson or some combination of the three.

Let me explain.

## The Engineer

Traditionally, engineers are the people who design and architect a solution to a problem. A mechanical engineer creates solutions for mechanical products, aerospace engineers create solutions for flight. As a developer (which is often referred to as a software engineer), my job often involves designing solutions for a business requirement - which in today's world is almost always a piece of software. 
Traditionally, engineers are the people who design and architect a solution to a problem. A mechanical engineer creates solutions for mechanical products, aerospace engineers create solutions for flight. As a developer (which is often referred to as a software engineer), my job often involves designing solutions for a business requirement - which in today's world is almost always a piece of software.

When filling this role, a developer acts as an architect and planner. They decide what tools to use, what integrations to implement, and what the end product should ultimately look and feel like. They might make compromises on various parts while working with designers, project managers, or clients, but at the end of the day, they are deciding which parts to put into the software and where they are going to go.



@@ 38,4 38,4 @@ The "developer acting as craftsperson" inputs their current skills and outputs s

These roles are not static, which separates a developer from many other versions of these positions and roles. A developer is constantly shifting from one role to another, depending on their seniority, team composition, current interests, and much more. The "Continuous Developer" learns when each role is needed and works to fill the skillset require as best they can.

Hopefully, this helps as you think about your careers. What do you think? How have you observed these or other roles throughout your career?
\ No newline at end of file
Hopefully, this helps as you think about your careers. What do you think? How have you observed these or other roles throughout your career?

M writing/frontend_metrics_css_specificity.md => writing/frontend_metrics_css_specificity.md +7 -6
@@ 1,8 1,9 @@
---
title: "Frontend Metrics: CSS Specificity"
date: 2019-01-28T22:50:36.524Z
cover_image: https://thepracticaldev.s3.amazonaws.com/i/bipxwy3ljekxfuzncfd3.png
---
---
title: "Frontend Metrics: CSS Specificity"
date: 2019-01-28T22:50:36.524Z
cover_image: https://thepracticaldev.s3.amazonaws.com/i/bipxwy3ljekxfuzncfd3.png
---

I've been working a lot on discovering and tracking useful Frontend metrics and I wanted to share some of the things I've learned. This will probably be an ad-hoc, at-random series on all things Frontend Metrics as I learn more about them!

# What the heck is CSS Specificity?


@@ 31,4 32,4 @@ By monitoring the changes in the graph as you make changes to your CSS, you can 

Read more about specificity graphs [here](https://csswizardry.com/2014/10/the-specificity-graph/)

Have a great week, devs! What kind of metrics do you track? What do you think about CSS specificity graphs?
Have a great week, devs! What kind of metrics do you track? What do you think about CSS specificity graphs?

D writing/holy_smokes_thats_a_paycheck.md => writing/holy_smokes_thats_a_paycheck.md +0 -49
@@ 1,49 0,0 @@
---
title: "Holy smokes, that's a paycheck"
draft: true
---
If you are like me and many other developers, getting a job in tech is a big financial milestone. You get that first paycheck and suddenly the world is yours. You buy a round (or six) of drinks with your friends, get a new bed, and upgrade your desk chair. And then you see your bank account the next day. Oops.

![I don't want to check my bank account gif](https://media.giphy.com/media/3ohjV4PgSCtflVFBXW/giphy.gif)

Ok, so maybe that's not the case exactly, but if you're like me, you've got rent, a car payment, and student loans - all that can be super confusing and hard to manage. That doesn't even scratch the surface of financial management though! Soon you might have a 401k and health insurance. Plus, saving some money and shelling some into the stock market are never bad ideas.

*However do you learn to manage all that?*

Well not to fear, I am going to attempt to give a quick and dirty rundown of some basic financial management. I have to note here - I am not an accountant and while I do have a degree in economics, that makes me about as qualified to give you advice as me being from Indiana does. This is advice that has worked for me and some other people on the internet - your situation might be different and you should definitely get a good finance person if you need it.

## Step 1 - Get those bills under control

> For the purpose of illustration, let's come up with a fake developer "Alex" who makes $80,000 a year base salary with a $10,000 possible bonus. They've got $500 a month in student loans and $1400 a month in rent. These numbers are based around a standard person living in Indianapolis (what I know), they may not be illustrative of your situation, but hopefully, this work as an example! You can also check out the finished budget [here](https://docs.google.com/spreadsheets/d/1bOz566YYOwt0hBeXsDZTqwvMZm9RMpMFxrPON7Xr9wU/edit?usp=sharing) Feel free to make a copy!

So first things first, you're gonna want to find out how much money you have coming in each month. Start a Google spreadsheet (no need for fancy software right now) and set it up like so:

![](https://thepracticaldev.s3.amazonaws.com/i/76a3aacmhexo1fvu7mkm.png)

Let's start by adding the monthly income (this will depend on how you are paid - for our example Alex will get paid twice a month once on the 15th and once on the 30th).

[Here](https://neuvoo.com/tax-calculator/) is a super easy calculator to determine how much you will make after tax. Let's plug in the "bi-weekly" number from that calculator. We can also use a really simple Google Sheets formula to calculate the running total of how much we will have at the end of the month.

For the first cell, add a Total column with the formula: `=B2-C2`. In the next row add this formula: `=B3-C3+D2`. Then drag down for the rest of the columns.

Here's a gif showing you what I mean:

![](https://thepracticaldev.s3.amazonaws.com/i/5o8mncyfyp31dojafa06.gif)

Sweet. Now that that is done, let's add some of our bills.

![](https://thepracticaldev.s3.amazonaws.com/i/neqkz5qedcns1lmpl66k.png)

## Step 2 - Save some money

A penny saved is a penny earned and you're gonna want to have some money put back in case of emergencies.

A good basic rule to follow is the *50/30/20 rule* - basically, put 50% of your income to necessities (rent, food, a car payment, etc), 30% into whatever you want (computer upgrades, drinks with friends, etc), and 20% into savings. If you can't do that much, pay whatever you need to for needs and split the leftover 60/40 between wants and savings. Obviously the more you save, the better off you will be but remember to treat yourself some. Just like dieting can actually cause to gain weight, too strict of a budget can cause you to spend more money than you should. Let's add savings of 20% to Alex's budget:

## Step 3 - Profit?

Once you start having some money put back into savings, 

## More Resources

- [Lifehacker Two Cents](https://twocents.lifehacker.com)

M writing/my_devto_new_years_resolutions.md => writing/my_devto_new_years_resolutions.md +4 -4
@@ 1,8 1,9 @@
---
title: "My Dev.to New Year's resolutions"
title: "My New Year's resolutions"
date: 2019-02-03T05:11:05.179Z
---
Hey folks! I love the resolutions that are going around here and I thought I would do my own! I'm only a month late, so we are off to a good start... 🤣 First off, I wanna point out this great post by Frederik:

Resolutions are going around and I thought I would do my own! I'm only a month late, so we are off to a good start... 🤣 First off, I wanna point out this great post by Frederik:

{% devto "_bigblind/new-years-resolutions-suck-pick-a-theme-of-the-year-2kh1" %}



@@ 32,14 33,13 @@ I've been a developer for a while now. I've worked a few different types of jobs

### Relationships

1. Close the loop. Don't let connections fall off. 
1. Close the loop. Don't let connections fall off.

### Mentorship

1. A mentor will share their experiences with you to contribute to your knowledge base.
2. A mentor will use their network to help you succeed to achieve your goals.


### Some other goals

1. Write on dev.to at least once a week

D writing/noncomputer_based_hobbies.md => writing/noncomputer_based_hobbies.md +0 -8
@@ 1,8 0,0 @@
---
title: "Non-computer based hobbies?"
date: 2019-02-12T00:57:06.982Z

---
I spend a _lot_ of time on the computer. Like 16 hours a day sometimes. I know that isn't great for my health, but I don't have a lot to do that isn't playing games, coding, or watching Netflix. 

As such, I am looking for a new hobby. What kind of stuff do you like to do that doesn't involve a computer?
\ No newline at end of file

D writing/ski_lifts_understanding_react__hooks.md => writing/ski_lifts_understanding_react__hooks.md +0 -7
@@ 1,7 0,0 @@
---
title: "Ski Lifts: Understanding React  Hooks"
draft: true
---
Congratulations! You have just inherited

https://codesandbox.io/s/pyk843zmx7

D writing/what_is_your_job_title.md => writing/what_is_your_job_title.md +0 -10
@@ 1,10 0,0 @@
---
title: "What is your job title?"
date: 2019-01-11T14:44:15.198Z

---
I'm always fascinated by how many different job titles there are out there. I've a quite a few myself and I'd love to see what you actual title is and how well you think it relates to your work!

For me, I am a ***Level 3* Software Engineer**. I focus on front-end development with React, but dip into Rails every now and then. I think this title is a pretty good representation of what I actually do, but I don't believe that there is a standardization around the levels - if someone knows of one, I would love to hear about it!

Have a great weekend folks!
\ No newline at end of file

D writing/what_podcasts_should_i_be_listening_to_in_2019.md => writing/what_podcasts_should_i_be_listening_to_in_2019.md +0 -6
@@ 1,6 0,0 @@
---
title: "What podcasts should I be listening to in 2019?"
date: 2019-01-08T02:49:10.969Z

---
Hey DEV-ers! I really got into podcasts last year and I am looking for more to check out. What podcasts are you currently digging? What should I check out?
\ No newline at end of file

D writing/whats_one_thing_you_want_to_know_more_about.md => writing/whats_one_thing_you_want_to_know_more_about.md +0 -6
@@ 1,6 0,0 @@
---
title: "What's one thing you want to know more about?"
date: 2018-11-09T18:54:37.310Z

---
Hey DEV-ers, what is one thing you want to learn more about? It can be related to anything - tech, career, hobbies, health - whatever. I just want to know what you'd like to know more about.
\ No newline at end of file