Very outdated.
A highly opinionated list of the things I use to make other things.
I develop on OS X and deploy to Ubuntu. A Macbook Air with a retina display would be a perfect laptop. I use Sublime Text 3 to write almost all my code. Homebrew is my package manager of choice.
I deploy my static sites to Github Pages. I deploy my backends to Heroku or Digital Ocean.
- Color scheme: Tango Dark
- Shell: zsh
- Prompt: pure
- Text editor: vim is the best text editor because it is everywhere and won't give you carpal tunnel.
I use Python for scripting, machine learning/NLP and web development. Useful features/libraries in Python:
fileinput
: read lines from files listed insys.argv
, or fromstdin
if emptyCounter
anddefaultdict
: for accumulating things in dictionaries under the same keystempfile
: temporary fileslogging
: better than justprint
ing everything
I use Python 3 whenever I can. Useful features/libraries in Python 3:
- dictionary comprehensions:
{k: v for k, v in stuff}
- built-in virtual environments (
pyenv
) - built-in
pip
- concurrency à la Node (
asyncio
) - built-in
enum
s pathlib
: high-level path library
IPython is a lot better than the default interpreter. Make sure you enable autoreload
.
- Beautiful Soup -
pip install beautifulsoup4
- Flask -
pip install flask
- TextBlob -
pip install textblob && python -m textblob.download_corpora
Use ES6 (via Babel) if possible. Don't use CoffeeScript. TypeScript is acceptable.
- Node.js - Homebrew:
brew install node
- KaTeX - Node:
npm install katex
, Duo:require('Khan/KaTeX')
- Marked - Node:
npm install marked
, Duo:require('chjj/marked')
I currently use promises to manage async operations. They're a planned part of ES6, but since they're currently unavailable in any stable browser or runtime, I use the Bluebird (Node: npm install bluebird
, Duo: require('petkaantonov/bluebird')
) library instead. Promises are much better than callbacks, but stream-based async (reactive programming) is probably the future.
- Chalk - Node:
npm install chalk
- Express - Node:
npm install express
- Moment.js - Duo:
require('moment/moment/');
, Node:npm install moment
- Normalize.css - Duo:
@import 'necolas/normalize.css';
- Font Awesome - Duo:
@import 'FortAwesome/Font-Awesome';
- Sass - Ruby:
gem install sass
- Colors - Duo:
@import 'mrmrs/colors';
- PostgreSQL - Homebrew:
brew install postgresql
- Redis - Homebrew:
brew install redis
- Apple's Network Link Conditioner, part of Hardware IO Tools for XCode
- Grapher, bundled with OS X, is great for making basic 2D/3D plots