Skip to content

Instantly share code, notes, and snippets.

This is a template for writing product opportunities. These are documents that illuminate some level of strategic thinking related to a particular product pain point that customers have. Typically they are accompanied by research (data, customer conversations, competitive analysis, etc.). This template helps break down the work so that Product Managers can keep moving quickly.

Product Opportunity Template

The purpose of filling out this document is to provide enough information for your colleagues to understand the opportunity, research (customer conversations and data), and value of tackling this work. It is not intended to provide solutions, scope or anything necessary to start the project or determine the next steps to start the project. This document focuses squarely on the problem space.


Questions

@Stepland
Stepland / EliteTMHelper.py
Last active March 17, 2024 00:56
Want to be Elite TM but don't have the time and patience to rip 500 Vinyls ? no problem.
import requests
import time
import sys
import argparse
import pickle
import json
class RedactedAPIError(Exception):
pass
@DonnchaC
DonnchaC / torrent-file-size.py
Last active July 14, 2022 03:06
Get total file sizes of contents for a set of .torrent files
import os
import sys
import bencodepy
import humanize
import argparse
def total_size_files_torrent(file_name):
try:
parsed = bencodepy.decode_from_file(file_name)
/**
* Retrieves all the rows in the active spreadsheet that contain data and logs the
* values for each row.
* For more information on using the Spreadsheet API, see
* https://developers.google.com/apps-script/service_spreadsheet
*/
function readRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
@ccstone
ccstone / BBEdit-TextWrangler_RegEx_Cheat_Sheet.txt
Last active March 30, 2024 07:53
BBEdit-TextWrangler Regular Expression Cheat-Sheet
————————————————————————————————————————————————————————————————————————————————————————————————————
BBEdit / BBEdit-Lite / TextWrangler Regular Expression Guide Modified: 2018/08/10 01:19
————————————————————————————————————————————————————————————————————————————————————————————————————
NOTES:
The PCRE engine (Perl Compatible Regular Expressions) is what BBEdit and TextWrangler use.
Items I'm unsure of are marked '# PCRE?'. The list while fairly comprehensive is not complete.
@sandrop
sandrop / Google-Analytics-Roll-Up.js
Created August 5, 2011 22:30
Google Analytics Roll Up
// edit usual tracking snippet
var _gaq = _gaq || [];
_gaq.push(
['_setAccount', 'UA-xxxxxxx-1'],
['_trackPageview'],
['rollup._setAccount', 'UA-yyyyyyyy-1'],
['rollup._trackPageview']
);
@jasonroelofs
jasonroelofs / setup-statsd.sh
Created April 27, 2011 18:25 — forked from collegeman/setup-statsd.sh
Turn an Ubuntu 10.10 EC2 into a StatsD/Graphite server
# install git
sudo apt-get install g++ curl libssl-dev apache2-utils
sudo apt-get install git-core
# download the Node source, compile and install it
git clone https://github.com/joyent/node.git
cd node
./configure
make
sudo make install
# install the Node package manager for later use
@cowboy
cowboy / pubsub-demo.js
Created December 16, 2010 20:04 — forked from rmurphey/pubsub-demo.js
Two approaches: "Traditional" vs Pub/Sub (via rmurphey)
// Note that this uses my Pub/Sub implementation, which is slightly different than
// phiggins' in that jQuery custom events are used, and as such the first event handler
// argument passed is the event object.
//
// jQuery Tiny Pub/Sub: A really, really, REALLY tiny pub/sub implementation for jQuery
// https://gist.github.com/661855
// The "traditional" way.
@davist11
davist11 / Fancy File Inputs.js
Created October 25, 2010 21:32
Fancy File Inputs
var SITE = SITE || {};
SITE.fileInputs = function() {
var $this = $(this),
$val = $this.val(),
valArray = $val.split('\\'),
newVal = valArray[valArray.length-1],
$button = $this.siblings('.button'),
$fakeFile = $this.siblings('.file-holder');
if(newVal !== '') {