Podcast: Open Source Licenses And Intellectual Property

In episode 196 of the (Python) Podcast.init a very commonly discussed topic among open source programmers is covered, which I wanted to share here.

The big takeaway is that just because you put your code publicly visible online, it doesn’t mean that it’s “free” for anyone to use. At least not until you slap a license on top of it, and depending on what your goals are with putting the code publicly visible, you may want to choose the license carefully.

As a developer and user of open source code, you interact with software and digital media every day. What is often overlooked are the rights and responsibilities conveyed by the intellectual property that is implicit in all creative works. Software licenses are a complicated legal domain in their own right, and they can often conflict with each other when you factor in the web of dependencies that your project relies on. In this episode Luis Villa, Co-Founder of Tidelift, explains the catagories of software licenses, how to select the right one for your project, and what to be aware of when you contribute to someone else’s code.

This is a must-listen for everyone putting their stuff in public git repos, such as e.g. GitHub: What You Need To Know About Open Source Licenses And Intellectual Property - Episode 196

Control Docker containers from within container

This is a short note on how to make a container access and control another container on the same host. The trick is to have the “controller” container map the host’s docker.sock into the container.


Nuke gizmos to groups

Recursively replace all gizmos in Nuke script with a group. The only exception is the Cryptomatte nodes, which will be maintained as gizmos.


Distributing Python script(s) as zip file

A recent discussion on 3DPRO sparked me to scribble down some ideas on how to somewhat painlessly distribute a Python package to be run in DCC applications such as Maya or Nuke as simply as possible. So this is an alternative to building a wheel and mucking around with virtual environments.


Google Hangouts Chat incoming webhook using Python standard library only

The official docs on setting up an incoming webhook uses the third-party httplib2, which is not part of the Python 3.6 standard library. Here’s a quick snippet using only the standard library instead:

import json
import urllib.parse
import urllib.request

def main():
    # python 3.6

    bot_message = {'text': 'Hello from Python script!'}
    message_headers = {'Content-Type': 'application/json; charset=UTF-8'}

    byte_encoded = json.dumps(bot_message).encode('utf-8')
    req = urllib.request.Request(url=url, data=byte_encoded, headers=message_headers)
    response = urllib.request.urlopen(req)


if __name__ == '__main__':