# Put this function to your .bashrc file. | |
# Usage: mv oldfilename | |
# If you call mv without the second parameter it will prompt you to edit the filename on command line. | |
# Original mv is called when it's called with more than one argument. | |
# It's useful when you want to change just a few letters in a long name. | |
# | |
# Also see: | |
# - imv from renameutils | |
# - Ctrl-W Ctrl-Y Ctrl-Y (cut last word, paste, paste) |
As a reminder, Greg's Great Guides are intended for beginners and novice-level programmers only. Any type of structured engineering education would likely cover all of these topics in year one (or year zero!).
However, if you have a genuine interest in technology, and would like to spend your free time learning new stuff and building new things, then these guides are for you!
What are you waiting for? Get Going with Greg's Great Guides!
This guide will walk you through the various installation and configuration steps to ensure that your machine is up to snuff. The packages, libraries, and other tools listed below are simply those that I have found helpful or otherwise valuable.
Updated 2020-01-10
Below is a list of Chrome extensions that I've found to be especially helpful for software development. There's a section for Chrome Extensions by Google, and another section for Chrome Extensions for GitHub.
- Clear Cache - A simple extension that clears your browser cache (and optionally history, cookies, etc) with a single click. I use this extension multiple times per day.
- Library Sniffer - Identifies the technologies running any web page.
# Compiled source # | |
################### | |
*.com | |
*.class | |
*.dll | |
*.exe | |
*.o | |
*.so | |
# Packages # |
Probably one of the easiest things you'll ever do with gpg
Install Keybase: https://keybase.io/download and Ensure the keybase cli is in your PATH
First get the public key
keybase pgp export | gpg --import
Next get the private key
When setting up git for the first time on your computer, you'll need to configure it before you can really use it. This guide below outlines some of the well-known and lesser-known configuration options that I've found to be super helpful in the past.
The commands below are essential to run when configuring your git installation.
Disclaimer: This piece is written anonymously. The names of a few particular companies are mentioned, but as common examples only.
This is a short write-up on things that I wish I'd known and considered before joining a private company (aka startup, aka unicorn in some cases). I'm not trying to make the case that you should never join a private company, but the power imbalance between founder and employee is extreme, and that potential candidates would
From a lecture by Professor John Ousterhout at Stanford.
Programmers tend to worry too much and too soon about performance. Many college-level Computer Science classes focus on fancy algorithms to improve performance, but in real life performance rarely matters. Most real-world programs run plenty fast enough on today's machines without any particular attention to performance. The real challenges are getting programs completed quickly, ensuring their quality, and managing the complexity of large applications. Thus the primary design criterion for software should be simplicity, not speed.
> Occasionally there will be parts of a program where performance matters, but you probably won't be able to predict where the performance issues will occur. If you try to optimize the performance of an application during the initial construction you will add complexity that will impact the timely delivery and quality o