Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
There is now a white paper describing the inner workings of the Fighting Churn WIth Data churn simulation program:
Do you want to try out Fighting Churn With Data techniques with a more realistic data set? Try the new simulation of a Customer Relationship Management (CRM) product! It contains many realistic features including: multiple product plans, multi-user customer accounts, multiple billing periods, valued actions, and more! With these features you can try out ALL the code listings in Fighting Churn With Data and experience a great new challenge on your path to mastering churn.
To try the new simulation follow the setup instructions and add the argument --config-name crm5
to the churnsim.py
command line, or set the argument schema='crm5'
to the function
run_standard_simulation
if you are running the simulation from a package
installation. The simulation will take an hour or so on a typical computer and produce around
30GB of data in your PostgreSQL database. See the Setup Instructions for more details.
This is code for the book "Fighting Churn With Data: Science and strategy for keeping your customers"; the book serves as a detailed guide to the code. You can get more information at:
This page contains the most up to date setup instructions.
WARNING TO PYPI USERS: None of the internal links in this document work on the pypi.org website! To use the internal links in this README view it on github.
Before you can load data or run the code you have to do some setup on your system. If you never have done this before it may seem like a lot of work, and it kind of is, but this amount of setup is routine when you begin to work with a new technology. These setup instructions should work for most people using either shell Python, Jupyter Notebook, or an IDE, on either Mac or Windows. That said, I must apologize because I am neither an expert in PostgreSQL nor an expert in Python, but I am about to give a lot of advice on how to setup and use these technologies - if you find I am not doing things the best way, or just not how you would have done it, please be patient. If you want to make things better please help help out! :)
Python and PostgreSQL are required.
After the pre-requesisites, you have a choice on how to run the Fighting Churn With Data Code:
pip
Python package installation. This is great if you want to run the code and see the output, but you do not want to change the code or run it line by line.This version of the README is for the the code released with the fightchurn pip package in September 2021. In this version there have been some modifications to the paths described in the first printing of Fighting Churn With Data to enable packaging the Python code. The following two differences summarize the changes:
fight-churn/listings/py/run_churn_list.py
: the path in the current code is
fight-churn/fightchurn/run_churn_listing.py
fight-churn/data-generation/
: the path in the current code is fight-churn/fightchurn/churnsim
Complete details of the errata are described here.
This project is licensed under the MIT License - see the LICENSE.md file for details.
FAQs
Code from the book Fighting Churn With Data
We found that fightchurn demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.