Complexity is the Real Enemy
Code complexity is the enemy to productivity.
Tips to keep your typescript/node/react code simple:
- Minimize Dependencies
- Eliminate as many dependencies as possible
- Minimize Imports
- Especially watch for files imported from a great distance, the more complex the import path, the more likely it should be eliminated
- Minimize function input and output types
- An inline type with only the required fields that are used in the function is the ideal input type definition since it only defines the minimal input interface
- Never use type definitions that you don't control
- Use implicit typing for return type when possible
- Only declare the return type when you want to ensure type correctness of the function itself
Crypto Art 121
NFTs are revitalizing the ability for artists to make income. It also allows a software engineer like me the chance to create procedurally generated art defined in code.
Code is my medium of creation, so this is my chance to make something that shines.
Recently, I noticed an interesting symmetric time that 1/21/21 21:21:21 would be occuring soon (this is using the month/date/year format, but that still counts).
So, in a rush I'll be publishing my first crypto art NFT - using the ERC721 standard NFT smart contract base.
However, as a bonus the goal is to mine this exactly at the right second. Hopefully, the community will help and we will be able to capture this unique moment in our human timeline.
Course: Todo App (Unfinished)
tl;dr 20 years of software engineering boiled down to the most minimal course as a foundation for any scale app.
In this course, you will create a full-stack web-app from scratch.
You will write and understand every line of code.
You won't depend on external code that hides away important functionality. You will use only a few foundational frameworks/tools that give you full control over everything: React + Serverless Framework.
You will publish your app and host it using Netlify and Aws. Your app will easily scale to handle millions of users, but it will cost nothing for the free tier (which will handle thousands of users). However, you code can easily be modified to be hosted anywhere.
Everything will be written in Typescript. Everything will be perfectly typed. Everything will be under your control giving you full power.
Dork is a short text adventure inspired by Zork.
It's a game I made for my kids and my own enjoyment after playing with the original Zork source code.
It's full of ironic humor and interesting ways to die, just like a text adventure should be:
Plus a few modern features, like achievments:
Emoji Variable Names
tl;dr: A quick update on the state of support for using emojis in the worst places: variable names
It looks like the options are limited to within string contexts. Furtunately for those who want the most unreadable code ever, it is possible to at least name all your object fields with emojis.
Typescript Type System Adventure
tl;dr: Play a text adventure in vscode with the typescript type system.
Update - Added Typescript 4.1 Template String Literals
I've always been a fan of text adventures since I first played Space Quest 1 when I was about 6 (though it was a graphical text adventure technically).
I've also always been a huge fan of typescript since it came out in 2012.
Typescript 'any' is evil
tl;dr: In Typescript, never use
any is evil
any is typescript's rebelious 19 year old who was doing 80 on an icy mountain road, drove off a cliff, bounced down the side of the mountain in a giant fireball, was thrown from the fireball car, landed in a frozen river, and was finally swept out to sea and eaten by sharks.
any is the implementation in typescript of the 'this is fine' meme. This gif is perfect:
any => bugs
So, almost all my content is hidden, so this post will highlight some things to play with.
Introduction to the Site
Basically, this is a website all built in react. It uses a simplified version of gatsby to generate a static website with async loaded components. That is hosted on netlify which basically provides free https, simple dns management, and git deploy with auto CDN cache expiration. In addition, I use serverless framework cli to define my AWS infrastructure and deploy the serverless stuff from command line. Essentially, I can make anything and deploy it in about 30 secs.
Some Interesting Things
Some interesting things:
tl;dr: Ensure that your software provides a beneficial impact on the life of each person who uses it.
We software developers: engineers, designers, architects, etc. - all need to ensure that using out software is healthy and beneficial.
- How does using my software affect each user's life?
- How much time would be healthy for a person to use this?
- How often would I encourage my child to use this (assuming they had the role of the intended audience)?
- How does using this affect the user's social health?
- How does using this affect the user's physical health?
- How does using this affect the user's financial health?
Customize Gatsby Blog
Remove all the placeholder content and fill your blog with you.
Customize your About Page
- Write a short bio about yourself as a new software developer
Remove the Placeholder Content
We won't delete this yet, so you can look back on it for a reference.
Build Gatsby Blog
Gatsby is a static site generator based on React.
What this practically means is that you can create a great website that is super fast, but still allows you to code in the best UI Framework (React) to customize and create powerful components.
It has a great ecosystem and is very popular. In fact, the React team uses Gatsby for their docs pages.
Preview the Target
- Visit: https://www.gatsbyjs.org/starters/panr/gatsby-starter-hello-friend/
- Open the Demo Site
Create a Netlify Account