Software Development¶
GitHub davedittrich
Software Engineering Best Practices¶
- GitHub linuxfoundation/cii-best-practices-badge (“Core Infrastructure Initiative Best Practices Badge https://bestpractices.coreinfrastructure.org”)
High Cohesion, Loose Coupling, the Bojan’s Blog, April 8, 2015
- Security for developers, Mediawiki
Security for developers/Architecture, Mediawiki
- Keep a Changelog
A great example of a changelog is the Release History for Trio
Programming in Python¶
Learning Python¶
Python.org (official online documentation and tutorials)
Legally Free Python Books List, by Abdur-Rahmaan Janhangeer, January 29, 2020
- Video tutorials
GitHub s16h/py-must-watch (“Must-watch videos about Python: Inspired by js-must-watch. Create pull requests to add more awesome links :-)” )
Transforming Code into Beautiful, Idiomatic Python, YouTube video by Raymond Hettinger, March 20, 2013
Python’s Class Development Toolkit, YouTube video by Raymond Hettinger, March 20, 2013
- Raymond Hettinger - Beyond PEP 8 – Best practices for beautiful intelligible code, PyCon 2015
Slides can be found at: https://speakerdeck.com/pyconslides/transforming-code-into-beautiful-idiomatic-python-by-raymond-hettinger-1
Some of the code can be found here: http://msoucy.me/2015/05/pycon-2015-beyond-pep8/
Raymond Hettinger - Super considered super!, PyCon 2015
Why you should use pyenv + Pipenv for your Python projects, by Daniel van Flymen, October 23, 2018
The right and wrong way to set Python 3 as default on a Mac, by Matthew Broberg, May 1, 2019
Dive Into Object-oriented Python, by Leonardo Giordani, April 17, 2016
30 Python Language Features and Tricks You May Not Know About, by Sahand Saba, May 19, 2014
Most Common Mistakes Python Programming, by Neha, May 10, 2017
A simple introduction to Test Driven Development with Python, by Dmitry Rastorguev, February 18, 2018
- Master Python through building real-world applications, by Dhrumil Patel
Part 1: Building an Interactive Dictionary, November 18, 2018
Part 2: Building Web Maps using Folium, December 11, 2018
5 Interesting Python Libraries, by Christopher Tao, May 9, 2020
General references¶
Python syntax and semantics, Wikipedia
This Visual Studio Code Shortcut Changed My Life, by Jamie Morris, November 17, 2019
- Packaging and publishing your project
Python Application Layouts: A Reference, by Kyle Stratis, Real Python
Open Sourcing a Python Project the Right Way, by Jeff Knupp, August 16, 2013
Cookiecutter: Project Templates Made Easy, by Daniel Roy Greenfeld, August 17, 2013
How to Create A New Python Module (and deploy it using pip), by liranbh, January 2017
Auto formatters for Python, by Kevin Peters, 3yourmind (Medium), June 2, 2018
Can someone explain __all__ in Python?, Stackoverflow post by varikin, September 4, 2008
How does Python’s super() work with multiple inheritance?, Stackoverflow post by Callisto, July 18, 2010
Code Academy - Learn to code for free
Check IO - Learn Python by playing a game
Advanced Python Programming¶
Use git submodules to install a private, custom python package in a docker image, by Mike Huls, July 26, 2021
Are you using Python with APIs? Learn how to use a retry decorator!, by Fabian Bosler, Towards Data Science (Medium), March 28, 2020
Make Delegation Work in Python, by Jeremy Howard, August 6, 2019
- Asynchronous I/O
Trio: a friendly Python library for async concurrency and I/O
HTTP requests and asyncio: aiohttp vs. Requests, by dmahugh, May 23, 2017
Fast scraping in python with asyncio, by Georges Dubus, March 2, 2014
Async and await with subprocesses, by Fredrik Averpil, June 20, 2017
How do I list all files of a directory?, Stackoverflow post
A guide to Python’s function decorators, by Ayman Farhat, January 2014
Intro to some Python dependencies of OpenStack, by Run for the Hills
Easy Signal Handling for Python Daemons, Jeff Hull, August 30, 2012
The Top Mistakes Developers Make When Using Python for Big Data Analytics, by Karolina Alexiou
Don’t Slurp: How to Read Files in Python, by mssaxm, September 27, 2013 by mssaxm
Python: Multiprocessing large files, by Nick, March 29, 2012
Dynaconf - Let your settings to be Dynamic, by Bruno Rocha, February 14, 2016
- Microservices with Python, RabbitMQ and Nameko, by Bruno Rocha, March 4, 2016
How to use findall, finditer, split, sub, and subn in Regular Expressions, by mamikon, 2013
- REST APIs in Python
Understanding Flask vs FastAPI Web Framework, by Sue Lynn, July 31, 2021
Intro to Flask-RESTPlus, YouTube video by Pretty Printed, December 15, 2017
Flask-RESTPlus Response Marshaling, YouTube video by Pretty Printed, December 16, 2017
Flask-RESTPlus Swagger UI Tips, YouTube video by Pretty Printed, December 17, 2017
How to Use Token Based Authentication in Flask-RESTPlus, YouTube video by Pretty Printed, December 19, 2017
- Pandas
Multi-Processing With Pandas, by Gouthaman Balaraman, November 19, 2014
Pandas: Data Analysis with Python, by Carsten Schnober
Exploring U.S. Traffic Fatality Data (using Python and Pandas), by Ben Van Dyke, December 16, 2015
The Pandas DataFrame – loading, editing, and viewing data in Python, by Shane Lynn, December 13, 2017
GitHub bsweger/useful_pandas_snippets.md (“Useful Pandas Snippets”)
Adventures in Optimizing Text Processing (Lessons learned while post-processing 1.75 billion lines of Hadoop output), by Michael Richman, January 21, 2014
Git revision numbers for setuptools packages, by Christopher Berner, February 26, 2012
A template for Python packages, including a sound setup.py and Makefile for tagging releases by hcarvalhoalves
How To Quickly Compute The Mandelbrot Set In Python, by Jean Francois Puget, December 28, 2015
A Globals Class pattern for Python, by Steve Ferg, October 20, 2010
GitHub Yelp/undebt (“A fast, straightforward, reliable tool for performing massive, automated code refactoring”)
Create, use, and remove temporary files securely, Openstack web site
9 obscure Python libraries for data science, by Parul Pandey, November 19, 2018
Command line programs in Python¶
Writing Awesome Command-Line Programs in Python, YouTube video from EuroPython 2014, July 24, 2014
- GitHub openstack/cliff (“Command Line Interface Formulation Framework http://openstack.org”)
Writing Python command-line tools with cliff, by Steven Carlysle-Davies April 28, 2017
- [openstack-dev] [oslo][openstackclient] transferring maintenance of cliff to the OpenStack client team, by Doug Hellmann, February 26, 2015
- Oslo (OpenStack Common Libraries)
GitHub OpenStack Oslo repos
Python Apps the Right Way: entry points and scripts, by Chris Warrick, September 15, 2014
worked examples of argparse and python logging, Gist by olooney
Accessing value from either os.environ or argparse, Stackexchange post
Graphical User Interface (GUI) programs in Python¶
Best Python GUI Framework|Toolkits 2019 [Ultimate Guide], by Editorial Team, November 18, 2019
- Kivy Framework
- GitHub kivy/kivy (“Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS”)
Build a Mobile Application With the Kivy Python Framework, by Mike Driscoll, November 04, 2019
How to share variable across modules in Python or Kivy, by albertgao, May 6, 2017
- GitHub KenoLeon/KivyMenagerie (“Collection of Kivy Widgets”)
Kivy Menagerie: A reference collection and overview of Kivy widgets for your Python GUI needs, by Keno Leon, February 17, 2019
- KivyMD
GitHub HeaTTheatR/KivyMD (“KivyMD is a collection of Material Design compliant widgets for use with Kivy, a framework for cross-platform, touch-enabled graphical applications.”)
GitHub jeffbryner/geomapip (“geomapip”)
Python IDEs, shells, and debuggers¶
- Visual Studio Code (VSCode)
Python in Visual Studio Code, Visual Studio Code blog
Dan Taylor - Get Productive with Python in Visual Studio Code, YouTube video from EuroPython 2018, September 6, 2018
Why the Visual Studio Code team launched a snap, by Sarah Dickinson, April 11, 2019
Code settings you should customize, by Geoff Stevens, February 6, 2019
GitHub microsoft/vscode-docs/getstarted/tips-and-tricks.md Visual Studio Code Tips and Tricks
- PyCharm
PyCharm Overview, YouTube video by JetBrains, May 5, 2014
9 Reasons You Should be Using PyCharm, by Michael Kennedy, November 19, 2015
How to Get Started with PyCharm and Have a Productive Python IDE, by Pedro Kroger
Productive Python with PyCharm, by Paul Everitt, 2015
Install PyCharm on Ubuntu Linux, by Akbar S. Ahmed, February 10, 2015
Debug Support in Interactive Python Console, YouTube video by JetBrains, May 16, 2014
Configure PyCharm to use virtualenv, by Akbar S. Ahmed, February 10, 2015
An Epic Review of PyCharm 3 from a Vim User’s Perspective, by Andrew Brookins
How do not waste time in PyCharm, YouTube vide by Paqmind, October 18, 2014
full: April 2014 Meetup - Matt Boehm and Python debuggers, DCPython tutorial session
Python virtual environments¶
Virtual Environments, Python Guide docs
virtualenv source code
Python Power Tools: virtualenv video by Tuts+ Code
Python Power Tools: virtualenvwrapper video by Tuts+ Code
Python: pyenv, pyvenv, virtualenv – What’s the Difference?, by Abu Ashraf Masnun, April 10, 2016
- Reverse-engineering Ian Bicking’s brain: inside pip and virtualenv, presented by Carl Meyer at PyCon 2011, Atlanta
- Poetry
GitHub python-poetry/poetry (“Python dependency management and packaging made easy.”)
Package Python Projects the Proper Way with Poetry, by Todd, January 26
poetry update not updating included local packages #2216 GitHub issue, November 15, 2021
- Conda
Anaconda (Completely free enterprise-ready Python distribution for large-scale data processing, predictive analytics, and scientific computing)
Getting Started with Conda, by David R. Pugh, Towards Data Science, April 25, 2020
Keeping Anaconda Up To Date, by Anaconda Team, August 15, 2017
Configure PyCharm to use virtualenv, by Akbar S. Ahmed, February 10, 2015
Development Environment in Python - Part 1: Virtualenv and Pip, by Michael Herman
Development Environment in Python - Part 2: Git and Github, by Michael Herman
Automatically load a virtualenv when running a script, stackoverflow, May 15, 2014
Virtualenv’s bin/activate is Doing It Wrong, datagrok / gist:2199506, July 3, 2014
Virtualenv the Docker way, by Justyna Ilczuk, Nov 16, 2014
Visualization tools¶
Comparing 7 Python data visualization tools, by Vik Paruchuri, November 15, 2015
- Python graph-tool module
Quick start using _graph-tool_
Questions tagged [graph-tool] on Stackoverflow
Visualizing IP Connections in Python, Dominik Muhs, June 27, 2016
Croizat, an open source panbiogeography visualization tool written in Python
readability (A JS tool to strip content down to just the body of a page - done in python. one of several such projects.)
pipe2py (Takes Yahoo pipes output and preps it into Python code and/or a module)
Bokeh (“[A] Python interactive visualization library that targets modern web browsers for presentation.”)
Dark Web OSINT With Python Part Three: Visualization, by Justin Seitz, September 1, 2016
johnnovack/twyg (“Generative tree visualiser for Python http://www.johnnovak.net/twyg/”)
GitHub dhaitz/mplcyberpunk (“Cyberpunk style” for matplotlib plots”)
Programming in Rust¶
Setting up a Rust development environment on Windows 10, by ShaderCat, June 19, 2017
rosettacode.org Category:Rust (Hundreds of code examples)
One Program Written in Python, Go, and Rust, by Nicolas Hahn
GitHub clap-rs/clap (“A full featured, fast Command Line Argument Parser for Rust https://clap.rs”)
Rust 2019: Tame Complexity through Community Involvement Tools, Hacker News (ycombinator.com)
A web application completely in Rust, by Sascha Grunert, Medium, July 7, 2018
JSON Parsing Tools¶
- jq
stedolan/jq (“jq Cookbook”)
Reshaping JSON with jq, by Matthew Lincoln, October 13, 2017
jq is sed for JSON, by Gabe Berke-Williams, August 19, 2016
Select entries based on multiple values in jq, Stackoverflow, June 22, 2017
Select objects based on value of variable in object using jq, Stackoverflow, September 3, 2013
Better Python Object Serialization, by Hynek Schlawack, 22 August 2016
Testing and Test Automation¶
- Python unit testing
Understanding the Python Mock Object Library, by Alex Ronquillo, Real Python, March 13, 2019
GitHub spulec/freezegun (“Let your Python tests travel through time”)
Ned Batchelder: Getting Started Testing - PyCon 2014, PyCon 2014
- Robot Framework
How To Configure PyCharm for Robot Framework, YouTube video by KWoodScreencast, July 2014
- GitHub sstephenson/bats (“Bats: Bash Automated Testing System”)
Testing Bash scripts with Bats, by Spike Grobstein, September 7, 2013
How to use Bats to test your command line tools, engineyard, April 29, 2014
Testing Your Shell Scripts, with Bats, Tim Perry, December 5, 2016
GitHub jasonkarns/bats-assert (“Assertion library for BATS (Bash Automated Testing System)”)
GitHub duggan/pontoon/test/bats
GitHub jenkinsci/docker/tests
More Projects using Bats
Sphinx + reST¶
- Sphinx
Sphinx Tutorial v0.1 talk by Brandon Rhodes from PyCon 2013
How to generate sphinx documentation for python code running in an embedded system
Automatically Generating Documentation for All Python Package Contents, stackoverflow.com
A good example of including snippets of code from source files is found in the GitPython Tutorial
- sphinx.ext.intersphinx – Link to other projects’ documentation
GitHug Gist shimizukawa/conf.py (Sphinx: Link to outer non-sphinx document by using intersphinx. https://groups.google.com/d/topic/sphinx-users/P_FolrZVoNg/discussion)
sphinx-contrib at Bitbucket
StackOverflow thread: Using Sphinx to write personal websites and blogs
MkDocs + Markdown¶
MkDocs: Documenting Projects with Markdown, by Douglas Matthews, EuroPython 2015, July 23, 2015
Building Product Documentation with MkDocs, by Agbonghama Collins, June 10, 2015
Static Site Generator, Full Stack Python
Programming in Golang (Go)¶
An Introduction to Programming in Go, PDF book by Caleb Doxsey
GitHub avelino/awesome-go (“A curated list of awesome Go frameworks, libraries and software https://awesome-go.com/”)
Programming in Julia¶
Package management in Julia + A Brief Introduction to Package Management with Julia 1.0, by Simon Wenkel, October 6, 2018 + The Julia Pkg package manager + Julia Hub (packages)
GitHub datawookie/MonthOfJulia (“Some code examples gathered during my Month of Julia.”)
Rosetta Code Category:Julia
[Example] Julia and OpenGL, Reddit post, April 20, 2019
GitHub JuliaDynamics/InteractiveDynamics.jl (“Fast, general-purpose interactive applications for dynamical systems”)
Creating A Physics Process For Vulkan In Julia, by Emmett Boudreau, Medium, May 22, 2020
- Videos
JuliaCon 2020 | Using VS Code for Julia development, by David Anthoff, The Julia Programming Language channel, YouTube video, July 31, 2020
Julia by Example, by Simon Danisch, Nextjournal, September 5, 2019
Zero2Hero intensive Julia workshop, by George Datseris, YouTube video, March 3, 2020
Git¶
Git 101 and its day to day usage: Part 1, by Abhinav Dhasmana, February 14, 2017
Git 101 and its day to day usage: Part 2, by Abhinav Dhasmana, February 22, 2017
Git tips from the trenches, February 1, 2014
Learn Git Branching (really cool animated tutorial, visualizing Git concepts)
Git Interactive Rebase, Squash, Amend and Other Ways of Rewriting History, by Tute Costa, November 3, 2014
Git: Using topic branches and interactive rebasing effectively, by kumar303
Git - When to Merge vs. When to Rebase, by Derek Gourlay, February 15, 2016
GitHub git-tips/tips (“Most commonly used git tips and tricks. http://git.io/git-tips”)
My approach to using Git, without the headaches, by David Gilbertson, November 25, 2017
Managing Git repos with Python modules + GitHub gitpython-developers/GitPython (“GitPython is a python library used to interact with Git repositories.”) + Dulwich + GitHub libgit2/pygit2 (“Python bindings for libgit2”) + GitHub FriendCode/Gittle (“Gittle - Pythonic Git for Humans”) + GitHub PyGithub/PyGithub (“Typed interactions with the GitHub API v3”) + Python Git Module experiences? [closed], stackoverflow post, September 28, 2009
- Viewing Git history
2.3 Git Basics - Viewing the Commit History, the Git Book
GitHub esc/git-big-picture
Visualizing branch topology in git, Stackoverflow post by Benjol, December 3, 2009
- Git merging and conflict resolution
- meld
Git merging using Meld, Stackoverflow thread, June 21, 2012
Three way git merging with meld, by Lukáš Zapletal, September 17, 2012
Painless Merge Conflict Resolution in Git, by Kevin Wu Won, September 14, 2010
- Oops. I didn’t mean to do that… (Ugh!)
How to undo (almost) anything with Git, GitHub blog post by jaw6, June 8, 2015
Undo Almost Anything with Git webinar, YouTube video by Peter Bell and Michael Smith, February 11, 2014
Undoing Changes, Git tutorial, attlasian.com
- GitHub for hosting your Git repositories
Fork A Repo (GitHub Help)
Forking Projects, (GitHub Guides)
Syncing a fork (GitHub Help)
Pushing to a remote (GitHub Help)
Simpler GitHub Pages publishing (GitHub Help)
Configuring a publishing source for GitHub Pages (GitHub Help)
- git-flow utilities to follow the Vincent Dreisen branching workflow
Getting Started – Git-Flow, yakiloo
hub (Git front end for GitHub)
- HubFlow (GitFlow for GitHub)
Using GitFlow with GitHub (Note: At this time, this workflow is designed for developers who belong to the same GitHub organisation. Although you are welcome to use it for opensource projects, it is designed for companies like DataSift who are using private repos on GitHub.)
Development flow with git flow, github, by Vysakh Sreenivasan
GitFlow: safely merge develop changes to a feature branch, stackoverflow thread
Comparing Workflows, Atlassian Tutorials
- bumpversion (can flexibly increment version numbers and commit/tag in Git)
bumpversion screencast showing bumpversion in action
PEP 440 – Version Identification and Dependency Specification (Python versioning specification that addresses several limitations of the previous attempt at a standardized approach to versioning, as described in PEP 345 and PEP 386.)
- Git aliases and advanced tricks
Includes in your git config, by Aurélien’s room, December 5, 2015
Using git’s include for private configuration information (like github tokens)
Protect Your Private Data Using Gitconfig Include Directive, Basetta.Bz, January 28, 2013
One weird trick for powerful Git aliases, by Nicola Paolucci, October 3, 2014
GitHubGist mwhite/git-aliases.md (The Ultimate Git Alias Setup)
Must Have Git Aliases: Advanced Examples, by @durdn
GitHubGist mcxiaoke/.gitconfig
What are your favorite Git aliases?, Reddit
r/git
post,SCM Breeze (GitHub Gist ndbroadbent/scm_breeze (“Adds numbered shortcuts to the output git status, and much more http://madebynathan.com/2011/10/18/git-shortcuts-like-youve-never-seen-before/”))
- Encrypting some/all of a Git repository
encrypted repositories?, Gmane thread
GitHub AGWA/git-crypt (“Transparent file encryption in git https://www.agwa.name/projects/git-crypt/”)
GitHub Gist shadowhand/encrypted-git-repo.md (“Transparent Git Encryption”)
7.14 Git Tools - Credential Storage, Git book
Splitting a subfolder out into a new repository, GitHub documentation
- Mac OS X and Windows issues with Git
Git on Mac OS X: Don’t ignore case!, by Howard Lewis Ship, July 28, 2010
How do I commit case-sensitive only filename changes in Git?, Stackoverflow, July 16, 2013
Case sensitivity in Git, Stackoverflow, January 18, 2012 (has solution for Mac OS X users)
version.py Python script for getting version number from Git to use in
setup.py
Standard way to embed version into python package?, stackoverflow post, by Dmitri Tcaciuc, January 19, 2009
- Advanced tasks (DANGER)
How to delete files permanently from your local and remote git repositories, by Anoopjohn, February 20, 2014
GitHub aaronzirbes/shrink-git-repo.sh (“This script will help you remove large files from your git repo history and shrink the size of your repository.”)
How to Shrink a Git Repository, by Steve Lorek, May 11, 2012
Make the current commit the only (initial) commit in a Git repository?, Stackoverflow question by kaese, March 13, 2012
Agile/Scrum¶
Learn Scrum in 7 Minutes!, by techexcel, (YouTube video)
Scrum and Kanban, Kanbantool,
Introduction to Scrum - CollabNet Scrum Training Part 1, YouTube
- Humor about Agile/Scrum
I Need Agile Methodology, YouTube [Play on the hilarious iPhone vs. Evo video. “NSFW because of language (though that’s probably relative to your work environment).”]
Another perspective on SCRUM, YouTube
Continuous Integration and DevOps¶
- GitHub Actions and workflows
Context and expression syntax for GitHub Actions, GitHub Docs
Workflow syntax for GitHub Actions, GitHub Docs
Automate Python Testing With GitHub Actions, by Rupert Thomas, The Startup, January 6, 2020
Only Run Github Actions on Specific Branches, by Keith Weaver, October 2, 2019
Sharing a variable between jobs GitHub Support Community (GitHub Actions)
Release and Deploy Ansible Collection with GitHub Actions, by Jose Angel Munoz, August 9, 2020
Ansible Collections: Role Tests with Molecule, by Eric Anderson, April 30, 2020
Molecule notes: not a tutorial, more of a tricks session (Based on molecule v3.0.2), by @ssbarnea
- Jenkins CI
Pipeline as Code with Jenkins, Jenkins web sit
GitHub Organization Folder Plugin, Jenkins Plugin web site
Pipeline Stage View Plugin, Jenkins Plugin web site
Automatically Generating Jenkins Jobs, by Jim Graf, March 11, 2016
Simple Continuous Integration / Deployment With Jenkins, by Randall Degges
7 Habits of Highly Effective Jenkins Users, by Andrew Beyer, July 28, 2011
A Back Up And Restore Recipe for Jenkins Metadata, by chris, March 16, 2015
How To Deploy Jenkins Completely Pre-Configured - Automating Jenkins, by Emmet O’Grady, October 11, 2016
Jenkins2 Pipeline jobs using Groovy code in Jenkinsfile, by Wilson Mar, August 3, 2016
Creating Jenkins pipelines with Ansible, part 1, by Joel Wilsson, Augusst 6, 2016
Creating Jenkins pipelines with Ansible, part 2, by Joel Wilsson, August 10, 2016
GitHub Gist jnbnyc/setup-users.groovy (“jenkins init.groovy.d script for configuring users”)
GoCD (“Simplify Continuous Delivery”)
Implementing Continuous Delivery: Jenkins or Bamboo?, by Francis Adanza, April 12, 2016
See also Ansible
Kanban method¶
Kanban (Development), Wikipedia
Kanban Applied to Software Development: from Agile to Lean, by Kenji Hiranabe, January 14, 2008
Kanban vs. Scrum: Kanban is NOT for Software Development, but Scrum is!, by charlesbradley, February 4, 2013
How To Get Started With Kanban In Software Development, by Derick Bailey, August 5, 2009
Adventures in Lean, by Derick Bailey, November 19, 2008
Software Engineering Project Management¶
44 engineering management lessons, by Slava Akhmechet, October 3, 2014
How GitHub Uses GitHub - Managing your projects, by Cynthia Rich, October 24, 2017
Configuring automation for project boards, GitHub Help
Messaging using AMQP¶
AMQP and Beyond: Messaging by Extending RabbitMQ, by Tony Garnock-Jones
kombu - AMQP Messaging Framework for Python, Version: 1.0.5
Federated Queues, RabbitMQ web site
Distributed RabbitMQ brokers, RabbitMQ web site
Alvaro Videla - Building a Distributed Data Ingestion System with RabbitMQ, YouTube, Jul 16, 2014
Distributed log aggregation with RabbitMQ Federation, by Alvaro Videla, December 17, 2013
Routing Topologies for Performance and Scalability with RabbitMQ, by Helena Edelson, April 1, 2011
Configuring SSL for RabbitMQ, by Richard, January 27, 2013
Securing the RabbitMQ Management Console with SSL, by Richard, January 27, 2013
Data Mining¶
GitHub TDAmeritrade/stumpy (“STUMPY is a powerful and scalable Python library that can be used for a variety of time series data mining tasks”)
Natural Language Processing (NLP)/Web Scraping¶
“wrapper induction” on Google Scholar
templatemaker, Python code to create “a template that can extract data from files in that same format.”
templater, Python code to “extract template (a pattern) from strings and parse otherstrings with this pattern.”
Inferring templates from a collection of strings, stackoverflow.com
BeautifulSoup for Python
Extracting Data from HTML with BeautifulSoup, by Guarav Singhal, Pluralsight, December 19, 2019
GitHub Semantic-Org/Semantic-UI (Semantic is a UI component framework based around useful principles from natural language. http://www.semantic-ui.com)
See also Taxonomies and Ontologies for Information Security.
“Big Data”¶
Numpy — Python made efficient, by Karan Bhanot, October 15, 2018
The Three Generations of Big Data Processing, slideshare
DataCatalogs.org (Aims to be the most comprehensive list of open data catalogs in the world. It is curated by a group of leading open data experts from around the world including representatives from local, regional and national governments, international organisations such as the World Bank, and numerous NGOs.)
Handy Python Libraries for Formatting and Cleaning Data, by Melissa Bierly, August 23, 2016
Jupyter Notebook¶
The Jupyter notebook documentation on ReadTheDocs
Jupyter Notebook Extensions: How to get more productivity in the notebook environment, by Will KoehrsenFollow, December 7, 2018
28 Jupyter Notebook tips, tricks, and shortcuts, by Josh Devlin, October 12, 2016
Jupyter Notebook Best Practices for Data Science, by Jonathan Whitmore, September 10, 2015
Making Git and Jupyter Notebooks play nice, by Time Staley, February 19, 2017
10 tips on using Jupyter Notebook, by Roman Kierzkowski, October 18, 2017
Jupyter Notebook Tutorial: The Definitive Guide, by Karlijn Willems, November 15, 2016
Markdown for Jupyter notebooks cheatsheet, by Inge Halilovic, February 7, 2017
Machine Learning¶
- Dive into Machine Learning
GitHub hangtwenty/dive-into-machine-learning (Dive into Machine Learning with Python Jupyter notebook and scikit-learn)
Machine Learning in Python Has Never Been Easier!, by bigmlcom, May 4, 2012
- How to predict likes and shares based on your article’s title using Machine Learning, by Flavio H. Frietas, September 21, 2018
GitHub flaviohenriquecbc/machine-learning-capstone-project (“Project: Predicting article retweets and likes based on the title using Machine Learning”)
Predicting Airbnb Listing Prices with Scikit-Learn and Apache Spark, by Nick Amato, April 20, 2016
Software licensing and Open Source¶
tl;dr Legal quick references
How to Make Money from Open Source, by pieterh, September 18, 2012
How To Capture an Open Source Project, by pieterh, October 21, 2013
OSI Hopes To Decrease Number of Licenses, Slashdot (Bruce Parens, creator of the Open Source definition, hopes to get back to just three Open Source licenses from which to chose, rather than over 30)
Understanding Open Source Software, by Red Hat’s Mark Webbink, Esq., GROKLAW
BSD and GPL Licensing, wikipedia
The Open Source Initiative has a list of open source licenses
Open Source Licensing: Links and Resources, wasabisystems.com
GPL v3 drafting process (Current Release: January 16, 2006: Next Release: Anticipated May or June 2006)
Trademark and OSS, Software Pluralism, University of Washington Law School
Derivative Works, Software Pluralism, University of Washington Law School
Patent Risks, Software Pluralism, University of Washington Law School
Dual-licensing model
Dual Licensing in Open Source Software Industry, by Mikko Välimä, January, 2003
Dual Licensing: Having Your Cake and Eating It Too, by Philip H. Albert, LinuxInsider, November 16, 2004
Dual Licensing, OSS Watch
Open Source licenses in the courts
Litigation in Open Source, by Jason B. Wacha, Vice President of Corporate Affairs and General Counsel, MontaVista Software, Inc., August 8, 2004
Is Linksys shirking the GPL? (Maybe not.), O’Reilly OnLAMP.com
Linux’s Hit Men, by Daniel Lyons, Forbes.com, October 14, 2003 [Discusses the problems of Cisco Systems’ purchase of Linksys (manufacturer of home routers), which had GPL’d code on the Broadcom chips it used.]
GPL: IT’S THE LAW, by Nancy Cohen
Automated Software Distribution projects¶
The FFive Projects dealing with Managing File Systems