RESOURCES
- COMPILERS / STARTERS / CHECKERS
- https://embold.io/
- https://linx.software/
- https://www.zoho.com/creator
- http://www.codecharge.com/
- http://www.codelobster.com/
- https://quixy.com/
- https://dbschema.com/
- https://studio3t.com/
- DESIGN STUDIO TOOLS
- https://projects.invisionapp.com/d/main?origin=v7#/projects
- https://www.invisionapp.com/craft
- https://www.sketch.com/documents/all-documents
- https://www.adobe.com/products/xd/details.html
- https://github.com/teambit/bit
- FramerX (react)
- https://builderx.io/
- http://svelte/
- https://github.com/ionic-team/stencil
- https://github.com/Polymer/lit-html
- https://storybook.js.org/ | https://github.com/storybookjs/design-system
- https://blog.zeplin.io/introducing-connected-components-components-in-design-and-code-in-harmony-aa894ed5bd95
- https://sketch2react.io/
https://app.uxpin.com/dashboard/projects
Creating a Design System: The Step-by-Step Guide
Design is more important than ever.
Companies fighting on the hyper competitive global software market can rely only on experience as a key differentiator. That puts enormous pressure on designers all over the world to take on more projects, deliver higher quality, and work faster.
But design doesn’t scale easily. Efficiency doesn’t emerge from thin air.
Scaling design through hiring, without putting standards in place, is a myth. With every new hire, new ideas for color palettes, typography and patterns appear in the product, growing the inconsistency and increasing the maintenance cost. Every new hire increases the design entropy.
There’s only one way to stop the growth of the chaos. Committing to running a design system process. Gradual growth of a design system equals gradual decline in consistency and speed of software development.
Design scales. But it scales only with a design system.
A design system is a set of standards for design and code along with components that unify both practices. Think of it as the same instructions and Lego kit for everyone.
If you’re a designer or a developer, then this guide is for you.
Built on the experience of creating an internal design system at UXPin and interviewing 40+ design and engineering leaders working on design systems, this guide helps you with every step of creating a design system (and includes bonus resources):
- Create the UI Inventory for the Design System
- Get Organizational Buy-In for the Design System
- Build a Multidisciplinary Design Systems Team
- Establish Rules and Principles for the Design System
- Build the Color Palette for the Design System
- Build the Typographic Scale for the Design System
- Implement an Icons Library for the Design System
- Standardize Other Style Properties
- Build the First Design System Pattern
- Run a Sprint Retrospective
- Conclusion
- Recommended Resources
It takes just one committed person to kick off the process and change the way your organization builds software.
Want a head start? Get the free Design Systems Starter Kit. It includes this guide as an actionable checklist, a deck for evangelizing design systems, and an ebook on why design systems matter.
Basic Blurb
- Git and GitHub: Although there are companies that still use Subversion or CVS even, let alone the awful Clearcase, you probably shouldn’t work at one of them. Git is now a basic skill like tying your shoes or spell checking.
- SSH: Yeah, I know: You’re a Windows developer and you don’t know no stinking shell. But you’re going to run into having to create an SSH key or do other SSH stuff. So you may as well learn now.
- Terminal Services or remote login: Even if you’re a Linux or Mac person, sooner or later you’ll have to deal with Windows. These tools are how you will connect in.
- Amazon Web Services: AWS isn’t just cloud, it is the reason you don’t have to wait on IT. There are other cloud providers, but you’ll have to deal with AWS sooner or later. AWS has gotten so big that you can’t know all of AWS any more, but you do need to know at least the EC2 stuff.
- JavaScript: You don’t need to know it cold, but this is the scripting language of the now. If a product or tool is going to add a scripting API, it will probably be for JavaScript.
- Bash and PowerShell: Sure, more modern devops tools are handy, but sooner or later something isn’t going to work and it won’t have quite what you need. So, expect to need to know how to write a basic restart script, grab an error code from an exiting command, or do a few things in a loop. That’s what Bash (in Linux, many Unixes, MacOS, and Windows 10) and Microsoft’s PowerShell let you do. Bonus: Add a tool like Grep (PowerShell’s equivalent Select-String is more wordy) and you’ll be an even more powerful deity.
- MongoDB: You need to know how to work with at least one document database. MongoDB is the easiest to learn. Whether you’re ultimately going to use MongoDB isn’t relevant; what matters is learning how to deal with a new-generation database. If you’re going to use an index like Apache Solr, which is document-shaped, or you’re going to work with a more columnar structured database, the MongoDB skills will transfer.
- Curl and Invoke-RestMethod: Most software now has a REST API. On Mac and Linux, Curl is the command-line tool that lets you test and tweak and even script against a REST API. In PowerShell, it is Invoke-RestMethod (although like everything on PowerShell, it requires more typing). There are GUI tools like Postman that accomplish the same work, but a serious developer needs to be able to move past a point-and-click interface for efficiency’s sake.
- Markdown: This is the format of the README.md file in GitHub. You should be able to read and write a simple Markdown document. And that’s easy because it has just seven symbols:
(#
is a header,##
is a subheader,*
is a bullet,__
and**
are bold,_
and*
are italics,`
is monospace, and — is a break or rule). Markdown editors often have extensions but those are the basics. From that basic markup language, you can get slides, PDFs, and HTML. Often these output formats can be consistently formatted with CSS or some other way. Best of all, you don’t end up with smart quotes in your code samples. - Basic HTML: I can’t make a decent-looking web page to save my life; I’m a back-end developer. But whether you’re going to stub something out or have to parse HTML, you will need to know basics of the web markup language.
A dream of no framework
https://hackernoon.com/7-frontend-javascript-trends-and-tools-you-should-know-for-2020-fb1476e41083
https://blog.bitsrc.io/7-tools-for-building-your-design-system-in-2020-452d9c9b3b8e
7 Tools for Building Your Design System in 2021
Building a component design system? Seeking better designer-developer collaboration? Here are some awesome tools ⭐️
Legend has it that the first design system was introduced by NASA in 1976. Since then, design systems turned into a widely common practice used to standardize design and development of a visual language in multiple instances across different teams, projects and applications.
Today, modern components take the notion of design systems beyond visual elements, opening the door to the true consolidation of component-based design and development. However, the current ecosystem is still gapped between design tools and developer tools. Through tools built to bridge this gap from both design and development ends, we can bring together designers and developers to collaborate like never before, in one unified system.
In this post we’ll explore some of the most popular and most promising tools and technologies that pave the way into this future. We’ll explore how familiar design tools like Invision and Sketch manage component design systems, introduce groundbreaking developer-first component collaboration tools like Bit and component-based design tools like Framer, and beyond.
Feel free to comment below and share your own ideas and insights!
1. Designers: Invision Design System Manager, Sketch Libraries and Adobe XD
Manage your visual language as a component design system.
Invision DSM
Invision Design System manager empowers designers to manage the design angle of their system in a way built for standardized and unifed systems. It provides tools such as component drag & drop, component search, enhanced team sharing, management of version history and a semi-automatically generated style guide to complete the visual system you build. It even integrates into your Sketch libraries to create a unified workflow.
Sounds useful? it is, and just think of the potential if combined with component platforms like Bit on the developer’s side, to turn the visual design system into a managed, reusable and cross-project controlled set of visualized and consumable components which can be used and updated anywhere.
Sketch Libraries
If you’re working as part of a team with other designers, Sketch’s Libraries let you place your document somewhere where your colleagues have read-access such as a Dropbox folder, or repository in GitHub, etc, have them add the document to their Libraries in Preferences, and they will have quick and easy access to the styles and Symbols in that document. You can receive updates made to the file. And, it works with Invision DSM too, and hopefully soon it will integrate with platforms like Bit for an utopian component experience.
A Library is just an ordinary Sketch document that contains Symbols, Text Styles and Layer Styles, which you can then use in any other Sketch document. If you update any of the Symbols or styles in your Library file, documents containing instances of those Symbols, or any of your predefined styles, will receive a notification telling you that they can be updated. Definitely a mandatory option to explore when building a design system.
Adobe XD
Adobe XD lets you save your work as a cloud document to quickly share with collaborators and use as your single source of truth. XD automatically updates cloud documents so you never lose your work. You can bring colors, character styles, and components from shared cloud documents to the Assets panel. When changes are made to a linked asset, you’ll be notified and have the option to accept the updates. It lets you access and apply raster images, vector graphics, colors, character styles, and other assets created in Photoshop, Illustrator, and other Adobe Creative Cloud apps from right inside XD.
2. Developers: bit.dev UI component platform
Easily share and manage reusable components across projects and teams. Let everyone collaborate over your actual components.
Read: “”
Design systems made from real code components in bit.dev
is a popular developer-first platform for managing and collaborating over components across projects and teams. It’s built for components written in any JS framework, or without a framework. Using Bit you can build a reusable component system for your organization, that gets adoption.
Through Bit you can seamlessly isolate components from different GitHub projects, and export them into a unified collection in the bit.dev platform. From there, everyone can discover, install and update components anywhere.
When building a design system, Bit lets your colalborate and reuse components to keep your UI/UX consistent and development standardized. It also brings everyone together over your actual managed code, in a visual way.
A design system from real components in React: just choose, use and collaborate
tracks and isolates components in a reposiotry in an isolated capsule environment, so you can build, test and export each as a reusable and managed unit. It requires zero refactoring or configurations, and components can be used and updated right from any consuming project. The result is a nearly limitless ability to build, distribute and collaborate over components.
is where exported components are organized, visualized and made discoverable for teams to build together. Different team members can easily find shared components, view and save examples in real code, consume components and sync updates driven from any consuming project. Apart from developers, designers, products and marketers can also collaborate over the code itself, so the entire team knows exactly what’s going on at any moment.
Each component is even sandboxed and rendered so that everyone can learn how it looks and works, and monitor new versions as they are updated.
](http://https//bit.dev/components)
A collection of Vue slider components in bit.dev
Large organizations use Bit to manage components from their library across projects and teams, in a democratized and collaborative workflow, so that their components are truly adopted across products while regulated. This creates a component ecosystem within larger organizations, which leads to a collaborative workflow for building and updating components everywhere.
Smaller teams use Bit to gradually build design systems bottom-up, collecting components from their apps into your bit.dev collection, which is very useful for smaller teams and startups which don’t have the time to build a system.
Check it out:
3. FramerX and BuilderX for component design
Interactively design components translated into React and React native
FramerX
Design facing, FramerX is a prototyping tool for designing interactions while introducing React (and JS/TS) in the design workflow itself over canvas. It lets you turn basic HTML and CSS or React components into visual elements.
You can import design elements from your canvas into code components. Use code to add logic and data, then go back to the canvas to tweak the style. You can also pull in components into Framer, or find pre-made components.
When building design systems, Framer can come in useful as you can organize your components in your team’s store, which also introduces push-updates for every change made to components by your team. Thorugh the customization of UI, you can save different instances (spacing etc) for component usage. You can even improvise to pull in your production’s real code into this system as shown in this example by Datadog HQ. Check it out.
BuilderX
is a new tool built to translate component design into a code implementation in React or React native. Through a Sketch import ability, BuilderX aims to let you automatically translate designs from Sketch into code and export them into your project/library. You can dig into this demo application to have your own first-handed impression on how it works.
While there isn’t much information available in the community to date, it definitely looks very interesting to monitor and track looking forward, as visual editing tools like Framer or Builder combined with developer tools like Bit can pave the way into a truly consolidated designer-developer workflow.
4. Stencil, Svelte & lit-html for Web Components
Build pure and standardized components that work everywhere
Back to the developer’s world. Today, most modern application are built using modern component-based frameworks like React, Vue and Angular. But, there’s another way to go: no framework. And, this is probably the future.
Custom components and widgets that build on the Web Component standards, will work across modern browsers, and can be used with any JavaScript library or framework that works with HTML.
This means more reuse, better stability, abstraction and standardization, less work and pretty much everything else that comes with better modularity. While many people are sitting around waiting on projects like web-assembly, in the past year we see new tools and techs rise to bring the future today.
Among the most prominent technologies built for web components, you can find , and . I’ve written about these tools before, so please feel free to dig-in and take a look at how they can help you build a truly standard and reusable design system, used anywhere. Take a look:
5. Storybook and Styleguidist for component documentation
Visually develop and document your components
StoryBook and StyleGuidist are too wonderful projects that help develop components in isolation while visually rendering and documenting them.
StoryBook
is a development environment for UI components. It allows you to browse a component library, view the different states of each component, and interactively develop and test components. When building a library, StoryBook is a neat way to visualize and document components and different AddOns make it easier to integrate into your different tools and workflows. A cool side-project is Storybook design system which can aid in consolidating components into one repository with useful boilerplating for the library.
StyleGuidist
is a React component development environment with a living style guide. It provides a hot reloaded dev server and a living style guide that lists component propTypes
and shows editable usage examples based on .md files. It supports ES6, Flow and TypeScript and works with Create React App out of the box. The auto-generated usage docs can help Styleguidist function as a documentation portal for your team’s different components.
6. Zeplin Connected Components
Link components from Zeplin to GitHub
With the introduction of Connected Components, as a developer, you will now be able to link components in GitHub to their design counterparts in Zeplin. Zeplin automatically collects your component documentation based on the platform/framework you’re working with; JSDoc and PropTypes
for the React example above. This high-level overview is flexible and can customize the description, the code snippet and add links to any source like your internal wiki or your design system documentation. Integrations included. Look:
7. Sketch2react and React to Sketch
Because why wait for the future when you can try and build it? 😃
Sketch2react
This new tool, which began as a cool side project between a developer and a designer in Stockholm, aims to let you work inside your Sketch app with zero plugins required and export real code. Inside the Sketch app you can build and design with code components that you style & attach simple business logic, and leverage layout & structure with specific framework rules. You can get started by trying this simple pre-made S2R Sketch Shared Library.
React to Sketch
Airbnb’s integration between Sketch and React is used to build Airbnb’s design system, letting you implement your designs in code as React components and render them into Sketch, and even lets you fetch and incorporate real data into your Sketch files. The concept is simple, and the usage within design systems is a natural combination. Take a look:
https://dev.to/andrewbaisden/how-i-setup-my-development-environment-on-macos-2021-edition-1lce
How I setup my Development Environment on macOS 2021 Edition
#javascript #webdev #beginners #react
Jan 26 ・5 min read
Current Full-Stack Developer Technical Stack 2021
Front-End: HTML, CSS, JavaScript, Typescript, React, React Native, Redux, Flutter/Dart
Back-End: Python, NodeJS, SQL, NoSQL, Kotlin
Transfer Files
Either use a cloud backup solution to restore your data or use an external storage device to transfer your files to your new computer.
Install Web Browsers
Google Chrome
Google Chrome Canary
Firefox
Firefox Developer Edition
Firefox Nightly
Safari Technology Preview
Tor Browser
Install Web Browser Extensions (chrome)
Adblock Plus
Apollo Client Developer Tools
ColorZilla
Honey
JSON Viewer
LastPass
Lighthouse
Momentum
React Developer Tools
Redux DevTools
Video DownlodHelper
Wappalyzer
Web Developer
daily.dev
Install Software
I would install all of the apps that I use this includes personal and developer related. So tools like Adobe CC, Microsoft Office, Discord, Slack etc…. I will just include the developer apps as they are more relevant in this guide.
Developer Apps
Android Studio
Docker
Hyper
Insomnia
IntelliJ IDEA CE
iTerm 2
MongoDB Compass
Postman
Valentina Studio
Visual Studio Code
Xcode
Install Package Managers
- Hombrew
- npm
- Pip
Hombrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install Packages
- Hombrew automatically installs Pip pointing to the Homebrew’d Python 3 for you
You can install Yarn through the Homebrew package manager. This will also install Node.js if it is not already installed. If you use nvm or similar you should exclude installing Node.js so that nvm’s version of Node.js is used.
Use brew to install the below packages
brew install tree (It allows you to view all files in a tree view)
brew install ruby
brew install git
brew install node
brew install python
brew install kotlin
brew install postgresql
brew install yarn or brew install yarn --without-node
brew tap heroku/brew && brew install heroku
brew install graphql-playground
brew install deno
Install oh-my-zsh
ZSH is already preinstalled in the latest versions of macOS. Catalina onwards I believe. I also install https://ohmyz.sh/ as it allows for more configuration and is required in some cases.
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Use the command line to show all hidden files as the files you are searching for are going to be hidden by default.
defaults write com.apple.Finder AppleShowAllFiles true
killall Finder
Install the Oh My Zsh plugins below
brew install zsh-autosuggestions
brew install zsh-syntax-highlighting
To activate the plugins, add the following at the end of your .zshrc:
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
You will also need to force reload of your .zshrc:
source ~/.zshrc
If you receive "highlighters directory not found" error message, you may need to add the following to your .zshenv:
export ZSH_HIGHLIGHT_HIGHLIGHTERS_DIR=/usr/local/share/zsh-syntax-highlighting/highlighters
MongoDB Install and Setup
https://stackoverflow.com/questions/57856809/installing-mongodb-with-homebrew
Install the Xcode command-line tools and the Homebrew from https://brew.sh/#install
xcode-select --install
Tap the MongoDB Homebrew Tap:
brew tap mongodb/brew
Verify installation prerequisites in the macOS Terminal:
brew tap | grep mongodb
Install MongoDB
brew install mongodb-community@4.4
Finally to run MongoDB (i.e. the mongod process) as a macOS service, issue the following
brew services start mongodb-community@4.4
Download and install MongoDB Compass https://www.mongodb.com/try/download/compass
Use the command brew list
to see all installed packages
npm
Install Packages Globally
npm i -g babel-cli
npm i -g eslint
npm i -g expo-cli
npm i -g firebase-tools
npm i -g gatsby-cli
npm i -g jest
npm i -g lighthouse
npm i -g netlify-cli
npm i -g newman
npm i -g node-sass
npm i -g parcel-bundler
npm i -g pm2
npm i -g prettier
npm i -g serve
npm i -g spaceship-prompt
npm i -g surge
npm i -g typescript
npm i -g update
npm i -g vercel
Use the command npm list -g --depth 0
to see all installed packages
Pip
Install Packages
Use the command pip
or pip3
to install depending on your system.
pip3 install astroid
pip3 install autopep8
pip3 install certifi
pip3 install chardet2
pip3 install click
pip3 install Flask
pip3 install Flask-Cors
pip3 install harperdb
pip3 install idna
pip3 install isort
pip3 install itsdangerous
pip3 install Jinja
pip3 install lazy-object-proxy
pip3 install MarkupSafe
pip3 install mccabe
pip3 install psycopg2
pip3 install psycopg2-binary
pip3 install pycodestyle
pip3 install pylint
pip3 install python-dotenv
pip3 install requests
pip3 install setuptools
pip3 install six
pip3 install toml
pip3 install urllib3
pip3 install Werkzeug
pip3 install wrapt
Use the command pip3 list
or pip list
to see all installed packages
Flutter Setup
https://flutter.dev/docs/get-started/install/macos
Also install the Flutter/Dart and Kotlin plugins and extensions for Visual Studio Code, IntelliJ IDEA CE, and Android Studio.
React Native Setup
Setup Terminal App and Code Editors
I am currently using the dracula theme in Visual Studio Code, IntelliJ IDEA CE, Android Studio and the Hyper Terminal.
Typeface
For typefaces I am using Jebrains Mono and FiraCode is currently my second choice.
https://www.jetbrains.com/lp/mono/
https://github.com/tonsky/FiraCode
Hyper Terminal
Install Plugins and customize
hyper i hypercwd
hyper i hyper-snazzy
hyper i hyper-dracula
// default font size in pixels for all tabs
fontSize: 16,
// font family with optional fallbacks
fontFamily: 'JetBrains Mono, Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
Visual Studio Code
If it is your first time using Visual Studio Code then do a clean install and configure it whicever way you want. Otherwise install the Settings Sync extension by Shan Khan and then do a download to sync your settings.
# Upload
SHIFT + OPTION + U
# Download
SHIFT + OPTION + D
As of January 2021 Visual Studio Code has a Settings Sync Feature which probably works the same but is in Early Release.
Set Visual Studio Code as the default editor for programming files by right clicking on that file, and going to "Open with" then change all.
Configure Visual Studio Code so that you can Launch from the command line
Extensions I have installed with Visual Studio Code
better-comments
bracket-pair-colorizer
code-beautifier
code-settings-sync
dart-code
debugger-for-chrome
dotenv
es7-react-js-snippets
flutter
gc-excelviewer
gitlens
graphql-for-vscode
HTMLHint
javascript-ejs-support
jupyter
Kotlin
LiveServer
material-icon-theme
mdx
mongodb-vscode
mssql
night-owl
npm-intellisense
open-in-browser
prettier-vscode
project-manager
python
quokka-vscode
rainbow-csv
remote-containers
shades-of-purple
theme-dracula
vsc-community-material-theme
vsc-material-theme
vsc-material-theme-icons
vscode-color
vscode-colorize
vscode-docker
vscode-eslint
vscode-graphql
vscode-import-cost
vscode-jest
vscode-markdownlint
vscode-npm-script
vscode-peacock
vscode-pull-request-github
vscode-styled-components
vscode-typescript-tslint-plugin
It's hard to remember all the things you need to do to get a proper development environment set up when buying or wiping a MacBook. This guide is here to help!
I have to set up a MacBook Pro fairly often – when starting a new job and when buying a new personal computer. I created this article back in 2015 when I got my first Mac and have been updating it ever since with whatever I need as my job evolves. I'm primarily a full-stack web developer, so most of my needs will revolve around JavaScript/Node.js.
Getting Started
The setup assistant will launch once you turn the computer on. Enter your language, time zone, Apple ID, and so on. The first thing you should do is update macOS to get the latest security updates and patches.
Homebrew
Install the Homebrew package manager. This will allow you to install almost any app from the command line.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Make sure everything is up to date.
brew update
Install Apps
Here are some the programs I always install.
Don't install Node.js through Homebrew. Use nvm (below).
Program | Purpose |
---|---|
Visual Studio Code | text editor |
Google Chrome | web browser |
Firefox | web browser |
Rectangle | window resizing |
iTerm2 | terminal |
Docker | development |
VLC Media Player | media player |
Slack | communication |
Spotify | music |
Postgres | database |
Postico | database UI |
Postman | API tool |
App installation
brew install \
git \
yarn \
make &&
# GUI programs
brew cask install \
visual-studio-code \
google-chrome \
firefox \
rectangle \
iterm2 \
docker \
vlc \
slack \
spotify \
postgres \
postico \
postman
Shell
Catalina comes with zsh as the default shell. Install Oh My Zsh for sensible defaults.
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Node.js
Use Node Version Manager (nvm) to install Node.js. This allows you to easily switch between Node versions, which is essential.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
Install
Install the latest version.
nvm install node
Restart terminal and run the final command.
nvm use node
Confirm that you are using the latest version of Node and npm.
node -v && npm -v
Update
For later, here's how to update nvm.
nvm install node --reinstall-packages-from=node
Change version
Here's how to switch to another version and use it.
nvm install xx.xx
nvm use xx.xx
And to set the default:
nvm alias default xx.xx
Git
The first thing you should do with Git is set your global configuration.
touch ~/.gitconfig
Input your config and create some aliases.
.gitconfig
[user]
name = Firstname Lastname
email = you@example.com
[github]
user = username
[alias]
a = add
ca = commit -a
cam = commit -am
cm = commit -m
s = status
pom = push origin master
pog = push origin gh-pages
puom = pull origin master
puog = pull origin gh-pages
cob = checkout -b
co = checkout
fp = fetch --prune --all
l = log --oneline --decorate --graph
lall = log --oneline --decorate --graph --all
ls = log --oneline --decorate --graph --stat
lt = log --graph --decorate --pretty=format:'%C(yellow)%h%Creset%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset'
With the above aliases, I can run git s
instead of git status
, for example. The less I have to type, the happier I am.
SSH
Simplify the process of SSHing into other boxes. Create an SSH config file.
mkdir ~/.ssh && touch ~/.ssh/config
Add the following contents, changing the variables for any hosts that you connect to. Using the below will be the same as running ssh -i ~/.ssh/key.pem user@example.com
.
.ssh/config
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Host myssh
HostName example.com
User user
IdentityFile ~/.ssh/key.pem
Now just run the alias to connect.
ssh myssh
Generate SSH key
You can generate an SSH key to distribute.
ssh-keygen -t rsa -b 4096 -C "email@example.com"
Add key.
ssh-add -K ~/.ssh/id_rsa
Settings
I don't like a lot of the Apple defaults so here are the things I always change.
To get the Home folder in the finder, press CMD + SHIFT + H
and drag the home folder to the sidebar.
General
- Set Dark mode
- Make Google Chrome default browser
Dock
- Automatically hide and show Dock
- Show indicators for open applications
Keyboard
- Key Repeat -> Fast
- Delay Until Repeat -> Short
- Disable "Correct spelling automatically"
- Disable "Capitalize words automatically"
- Disable "Add period with double-space"
- Disable "Use smart quotes and dashes"
Security and Privacy
- Allow apps downloaded from App Store and identified developers
- Turn FileVault On (makes sure SSD is securely encrypted)
- Turn Firewall On (extra security measure)
Sharing
- Change computer name
- Make sure all file sharing is disabled
Users & Groups
- Add "Rectangle" to Login items
Defaults
A few more commands to change some defaults.
# Show Library folder
chflags nohidden ~/Library
# Show hidden files
defaults write com.apple.finder AppleShowAllFiles YES
# Show path bar
defaults write com.apple.finder ShowPathbar -bool true
# Show status bar
defaults write com.apple.finder ShowStatusBar -bool true
# Prevent left and right swipe through history in Chrome
defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false
Application Settings
Chrome
-
Turn off "Warn before quitting"
-
Install uBlock Origin
-
Install React DevTools
-
Install Redux DevTools
-
Install JSONView
-
Install DevTools Theme – New Moon
-
Settings
- Set theme to "Dark"
- Go to
chrome://flags
and set Developer Tools Experiments to "Enabled" - Go to Experiments and select "Allow custom UI themes"
Visual Studio Code
-
Press
CMD + SHIFT + P
and click "Install code command in PATH". -
Install Prettier
-
Install New Moon Theme
-
Install GitLens
-
Install Highlight Matching Tag
-
Install ESLint
-
Install Prettier
-
Keyboard Shortcuts
- Copy Line Down –
CMD + SHIFT + E
- Delete Line –
CMD + SHIFT + D
- Reload Window – Remove Development Mode from When
- Format Document –
CMD + SHIFT + L
- Copy Line Down –
Rectangle
- Full Screen:
CMD + SHIFT + '
(prevents messing with other commands) - Left Half:
CMD + OPTION + LEFT
- Right Half:
CMD + OPTION + RIGHT
iTerm2
- Use ⌥ ← and ⌥→ to jump forwards / backwards
- Set tab to open in same location