Improve everyday.

submodule_update.md

|

Submodule update

Api is a submodule of VoD.

git submodule update <path/to/the/submodule>

Reset submodules at the commit where they were at the last commit of the superproject. In case of no submodule is provided, apply the command to each one.

alt tag

git submodule update --remote <path/to/the/submodule>

Pull the submodules at HEAD stated in .gitmodules.

alt tag

New commit in superproject

After a git submodule update --remote, when you’re in state V0 / HEAD, you create a new commit of the superproject. This creates a new commit, and associate the commit hashes of the submodules currently used.

alt tag

disable-webapp-cache.md

|

Disabling caching a webapp

By default, Azure is caching files to speed-up the access to your Web app.

This may be inconvenient when you are developing and frequently uploading files on the FTP server for instance.

You can reach a state where: main.js has been erased on the FTP, but main.js is availabke through your browser.

On www.portal.azure.com:

  • Go to your Webapp page
  • Select Application settings
  • Scroll down to App settings
  • Add the key WEBSITE_DYNAMIC_CACHE with the value 0

And voilà !

Don’t forget to reenable it once you are done developing.

copy-terminal-output-in-clipboard.md

|

To copy the output of a command directly into clipboard, without having to select it manually, add

<some_command> | xclip -sel clip

at the end of the command. You can then paste the content !

Example : to copy the SSH key cat ~/.ssh/id_rsa.pub | xclip -sel clip

terminal-encoding.md

|

Setting the terminal encoding

  • To avoid errors when printing special characters, we need a terminal that supports printing UTF-8 characters.

Default behaviour

Using a simple Dockerfile

FROM ubuntu
RUN apt-get update
RUN apt-get install -y --no-install-recommends \
    python-dev

Now attached to the docker

root@7ec9e210dbdd$ locale

LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

root@50327e3b3d41$ python -c "print u'\xff'"

Traceback (most recent call last):
  File "<string>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xff' in position 0: ordinal not in range(128)

The current terminal encoding cannot print non-ASCII characters

With UTF-8 encoding

Add the following lines to the Dockerfile

RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8      
ENV LANGUAGE en_US.UTF-8  
ENV LC_ALL en_US.UTF-8    

This sets the terminal encoding to UTF-8 (and other things).

root@6669fd6259de$ locale

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

root@6669fd6259de$ python -c "print u'\xff'"

ÿ

argparse-print-defaults.md

|

Printing default values with argparse

Normal mode

  • code (visu.py): ```Python parser = argparse.ArgumentParser(description=”View the live in your web browser”)

parser.add_argument(‘–config’,
help=’config.ini file of the run’,
required=False,
default=’../config.ini’)
parser.add_argument(‘–port’,
help=’specify port to run server’,
required=False,
default=5000,
type=int)
parser.add_argument(‘-r’, ‘–reload’,
help=’Description’,
action=’store_true’)
args = parser.parse_args()

- Using the script:
```Shell
$ python visu.py --help

usage: visualisator.py [-h] [--config CONFIG] [--port PORT] [-r]

View the live in your web browser

optional arguments:
  -h, --help       show this help message and exit
  --config CONFIG  config.ini file of the run
  --port PORT      specify port to run server
  -r, --reload     Description

Using ArgumentDefaultsHelpFormatter

  • Change the first line of visu.py to:
    parser = argparse.ArgumentParser(description="View the live in your web browser",       
                                   formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    
  • Using the script: ```Shell $ python visu.py –help

usage: visualisator.py [-h] [–config CONFIG] [–port PORT] [-r]

View the live in your web browser

optional arguments: -h, –help show this help message and exit –config CONFIG config.ini file of the run (default: ../config.ini) –port PORT specify port to run server (default: 5000) -r, –reload Description (default: False) ```