Thursday, June 25, 2015

Change Chrome default to system print dialog on a mac

This the the magic command! To revert, just use false instead of true.

defaults write DisablePrintPreview -bool true

Tuesday, April 7, 2015

Adding empty folders to git

Create a .gitignore file in a directory and add the following 4 lines in it.

# Ignore everything in this directory
# Except this file

Monday, February 2, 2015

Python logging module basics

The Python logging module organizes loggers in a hierarchy. All loggers are descendants of the root logger. Each logger passes log messages on to its parent. So in effect, you have two ways of configuring logging.

1. Setup the configuration at a particular logger level.

2. Setup the configuration at the root level. If a particular logger doesn't have a configuration, the default(root) level configuration will be used.

To configure the root level logger, use the following snippet in your main entry script.

import logging
logger = logging.getLogger() # Gets the root logger
handler = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')

Then in all other modules, you can add two simple lines to create a module level logger. As the module level logger doesn't have any configuration, it will use the root level logger configuration.
import logging
logger = logging.getLogger(__name__)

You can configure the root logger by using the logging.basicConfig() function.


Return a logger with the specified name or, if no name is specified, return a logger which is the root logger of the hierarchy. If specified, the name is typically a dot-separated hierarchical name like “a”, “a.b” or “a.b.c.d”. Choice of these names is entirely up to the developer who is using logging.