Command Console

Cmder

Cmder is an attractive and portable console emulator for Windows.

Cmder is a software package created out of pure frustration over the absence of nice console emulators on Windows. It is based on amazing software, and spiced up with the Monokai color scheme and a custom prompt layout, looking sexy from the start. - website

Notable Commands:

  • open a new tab with Ctrl + Tab

Notable (Linux) Shell Commands:

# run a program (global .exe)
atom

Text Editor

Notepad++

[Notepad++] is a super simple text editor, but so useful.

Notepad++ is a free (as in “free speech” and also as in “free beer”) source code editor and Notepad replacement that supports several languages - website

Common cases I use it for:

  • quickly edit many lines at once using Alt + Select Drag
  • convert encoding of a file with Encoding > Convert to ...
  • view special characters by turning on View > Show All Characters
  • convert Tabs to Spaces with Edit > Blank Operations > Tab to Space

Notable Commands:

  • go to line in file with Ctrl + G

Atom

Atom is a text editor made by the guys at GitHub so it has some fancy native integrations. Refer to the Atom Flight Manual for basic documentation.

Atom is a text editor that’s modern, approachable, yet hackable to the core—a tool you can customize to do anything but also use productively without ever touching a config file. - website

Notable Commands:

  • open a new window with Ctrl + Shift + N
  • open a project folder with Ctrl + Shift + A
  • unhide auto-hidden menu with Alt
  • open command palette with Ctrl + Shift + P
  • go to line in file with Ctrl + G

Installing Packages:

apm install editorconfig

Alternatively, Go to Settings > Install > Search

Packages I use include:

Programming

Python

Python is my language of choice for anything from data analysis and manipulation, to web development. The official package manager in Python is called pip.

Install most python packages with pip install <PACKAGE>, update most python packages with pip install <PACKAGE> --upgrade. If you have multiple versions of python/pip or are running into permissions errors on Windows, use syntax python -m pip install <PACKAGE> which ensures you run the command from global Python executable.

Below are notes on a few other useful tools for Python.

Anaconda

I recommend downloading Python thru Anacondo which comes with various data science libraries out of the box.

Anaconda is the leading open data science platform powered by Python. The open source version of Anaconda is a high performance distribution of Python and R and includes over 100 of the most popular Python, R and Scala packages for data science.

To keep updated, use the following commands.

conda update python
conda update anaconda

Installing and updating libraries with Anaconda package manager (instead of pip) is just conda install <PACKAGE> and conda update <PACKAGE>

Jupyter

Jupyter Notebook (Formerly IpythonNotebook) now supports everything you would ever need for data analysis and visualization, even with interactive charts for some libraries. Read the docs at jupyter-notebook.readthedocs.io.

More recently, there is now a Jupyter Lab which combines Jupyter Notebook with other helpful data science related features. Read this blog post release for more on Jupyter Lab. FYI, it has a fantastic interface for all data science-related work.

If you have multiple python versions (virtual environments), you can toggle which kernel to use from within Jupyter Notebook using the libary ipykernel.

To make a conda environment in Jupyter, use the below commands as per ipython docs here

activate project-env
python -m ipykernel install --user --name myenv --display-name "Project Env"

Virtual Environments for Development

If you are using Conda, there is nice virtual environment functionality built in.

With conda, you can create, export, list, remove, and update environments that have different versions of Python and/or packages installed in them. Switching or moving between environments is called activating the environment. You can even share an environment file with a coworker. - docs

# create virtual environment
conda create -n py27 python=2.7
# list virtual environments
conda env list
# activate env
activate py27
# deactivate env
deactivate

Alternatively, virtualenvwrapper-win is a Windows port of virtualenvwrapper, which is a more intuitive way to create virtual environments in Python

# create virtual environment
mkvirtualenv APP
# list virtual environments
lsvirtualenv
# activate env
workon APP
# deactivate env
deactivate

Documentation

Always document your code. A good library for a reference is Pandas, which actually uses NumPy/SciPy documentation standard.

Python Enhancement Proposals (PEP) are standards to follow for writing Python code. For example, use PEP 8 as a Style Guide for Python, and PEP 257 for Docstring Conventions.

Use flake8 to adhere to above conventions.

When writing and publishing software, a recommended route to use build you documentation using Sphinx, and host on Read The Docs.

ETL Workflow Automation

KNIME is an open source software for creating data science workflows without programming.

KNIME is designed for drag-and-drop people, however it provides a really efficient way to automate data pipelines by combining programming (python) nodes, with their quickform nodes to create simple WebApps to run from the browser.

Database

Setup a local instance of MySQL

Setup a local instance of PostgreSQL

DBeaver

DBeaver is an open source universal SQL client.

Free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, Teradata, MongoDB, Cassandra, Redis, etc. - website

Internet

Google Services

I use basically all google services, because I have always been a fan of Android. However, I am also a fan of keeping Windows. So here are some tips on integrating the two.

  • in Windows 10, add your Google account to either “Mail”, “Calendar”, or “People” as these are actually all the same, and you will receive all your mail, calendar, and contacts from Google natively in the Windows notification center.
  • download Google Drive, and setup Backup and Sync. Your Google Photos will be automatically synced as well, as long as you have the sync on from your phone.
  • in Google Chrome, navigate to a Google service of choice (e.g. keep.google.com, news.google.com, voice.google.com, hangouts.google.com, photos.google.com etc.), then go to Menu > More tools > Add to desktop and make sure Open as new window is checked

Chrome

Notable commands:

  • open new window Ctrl + N
  • open new window in incognito mode Ctrl + Shift + N
  • open new tab Ctrl + T
  • toggle between open tabs Ctrl + Tab
  • open developer tools Ctrl + Shift + J

Google source

OS

Windows

Notable Commands:

  • switch between open apps with Alt + Tab
  • open task view with Windows + Tab
    • press Tab the arrow keys within task view to toggle between desktops
  • cycle through apps on the taskbar with Windows + T
  • lock the computer with Windows + L
  • add a virtual desktop with Windows + Ctrl + D
  • switch between virtual desktops with Windows + Ctrl + Arrow Key

Weird Commands:

  • Ctrl+Alt+Down flips screen content upside down

Microsoft hotkeys source

If you are using the native cmd console on Windows, the following commands are helpful.

# dir info  
dir
# show entire tree of subfolders  
tree
# list files and subfolders  
dir /b
# list all files in subfolders  
dir /s
# run a program (global .exe)
start atom

Windows Bash

Windows 10 now features a full Ubuntu installation, with a Linux bash for running ELF binaries, on top of Windows. Read about it here.

Bash on Windows provides developers with a familiar Bash shell and Linux environment in which you can run most Linux command-line tools, directly on Windows, UNMODIFIED, without needing an entire Linux virtual machine!

The installation process, is more of turning it on within Windows developer mode.

You may also want to unhide the Ubuntu system after getting it. Do so with attrib -s -h lxss. Refer to this Q&A thread.

The installation is located at C:\Users\<USER>\AppData\Local\lxss\. Be very careful with playing around here, you can easily corrupt any file simply by opening it in a Windows program.

Hyper-V

Latest versions of Windows comes with a feature that allows you to build and run virtual machines. This can be super handy for those wishing to run Linux. Read more about it here