Skip to content

Instantly share code, notes, and snippets.

@miku
Last active January 3, 2017 10:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miku/0a1d28e77583e89f74be366b4cfb2c54 to your computer and use it in GitHub Desktop.
Save miku/0a1d28e77583e89f74be366b4cfb2c54 to your computer and use it in GitHub Desktop.
  • Solve the easiest possible problem in the dumbest possible way.
  • Write a test for it.
  • Is there a better name for this thing?
  • Can we move work between query time (when we need the answer) and ingest time (when we see the data that eventually informs the answer)?
  • Is it easier in a relational data store? A KV Store? A column store? A document store? A graph store?
  • Can performance be improved by batching many small updates?
  • Can clarity be improved by transforming a single update to more smaller updates?
  • Can we more profitably apply a functional or declarative or imperative paradigm to the existing design?
  • Can we profitably apply a change from synchronous to asynchronous, or vice versa?
  • Can we profitably apply an inversion of control, moving logic between many individual call sites, a static central definition, and a reflectively defined description of the work to be done?
  • Is it faster with highly mutable or easier with completely immutable data structures?
  • Is it easier on the client side or the server side?
  • List the transitive closure of fields in a data model. Regroup them to make the most sense for your application. Do you have the same data model?
  • Is it better to estimate it quickly or compute it slowly?
  • What semantics do you need? Should it be ordered? Transactional? Blocking?
  • Can you do it with a regex? Do you need to bite the bullet and make a real parser? Can you avoid parsing by using a standardized format? (A few to get you started: s-expressions/XML/protobuf/JSON/yaml/msgpack/capn/avro/edn.)
  • What is the schema for this data? Is the schema holding you back?
  • Draw a state diagram according to the spec.
  • Draw a state diagram according to the data.
  • Draw a data flow (dX/dy)
  • Draw a timeline (dX/dt)
  • How would you do it in Haskell? C? Javascript?
  • Instead of doing something, emit an object.
  • Instead of emitting an object, do something.
  • Store all of it.
  • Truncate the old stuff.
  • Write the API you wish existed.
  • Make an ugly version where all the things work.
  • Make a gorgeous version that doesn't do anything.
  • Can you codegen the boilerplate?
  • Enumerate all the cases.
  • What happens if you do it all offline / precompute everything? What happens if you recompute every time? Can you cache it?
  • Can you build an audit log?
  • Think like a tree: ignore the book-keeping details and find the cleanest representation.
  • Think like a stack: zoom in to the book-keeping details and ignore the structure.
  • Replace your implementation with an implementation that computes how much work the real implementation does for that problem.
  • What is the steady state?
strategies =
[
'(Organic) machinery',
'A line has two sides',
'A very small object Its center',
'Abandon desire',
'Abandon normal instructions',
'Abandon normal instruments',
'Accept advice',
'Accretion',
'Adding on',
'Allow an easement (an easement is the abandonment of a stricture)',
'Always first steps',
'Always give yourself credit for having more than personality (given by Arto Lindsay)',
'Are there sections? Consider transitions',
'Ask people to work against their better judgement',
'Ask your body',
'Assemble some of the elements in a group and treat the group',
'Balance the consistency principle with the inconsistency principle',
'Be dirty',
'Be extravagant',
'Be less critical',
'Breathe more deeply',
'Bridges\n--build\n--burn',
'Cascades',
'Change ambiguities to specifics',
'Change instrument roles',
'Change nothing and continue with immaculate consistency',
'Change specifics to ambiguities',
'Children\n--speaking\n--singing',
'Cluster analysis',
'Consider different fading systems',
'Consider transitions',
'Consult other sources\n--promising\n--unpromising',
'Convert a melodic element into a rhythmic element',
'Courage!',
'Cut a vital connection',
'Decorate, decorate',
'Define an area as `safe\' and use it as an anchor',
'Destroy\n-nothing\n-the most important thing',
'Discard an axiom',
'Disciplined self-indulgence',
'Disconnect from desire',
'Discover the recipes you are using and abandon them',
'Display your talent',
'Distort time',
'Do nothing for as long as possible',
'Do something boring',
'Do the last thing first',
'Do the washing up',
'Do the words need changing?',
'Do we need holes?',
'Don\'t avoid what is easy',
'Don\'t be frightened of cliches',
'Don\'t break the silence',
'Don\'t stress one thing more than another',
'Dont be afraid of things because they\'re easy to do',
'Dont be frightened to display your talents',
'Emphasize differences',
'Emphasize repetitions',
'Emphasize the flaws',
'Faced with a choice, do both (given by Dieter Rot)',
'Feed the recording back out of the medium',
'Fill every beat with something',
'Find a safe part and use it as an anchor',
'Get your neck massaged',
'Ghost echoes',
'Give the game away',
'Give way to your worst impulse',
'Go outside. Shut the door.',
'Go slowly all the way round the outside',
'Go to an extreme, come part way back',
'Honor thy mistake as a hidden intention',
'How would someone else do it?',
'How would you have done it?',
'Humanize something free of error',
'Idiot glee (?)',
'Imagine the piece as a set of disconnected events',
'In total darkness, or in a very large room, very quietly',
'Infinitesimal gradations',
'Intentions\n--nobility of\n--humility of\n--credibility of',
'Into the impossible',
'Is it finished?',
'Is something missing?',
'Is the information correct?',
'Is the style right?',
'Is there something missing',
'It is quite possible (after all)',
'It is simply a matter of work',
'Just carry on',
'Left channel, right channel, center channel',
'Listen to the quiet voice',
'Look at the order in which you do things',
'Look closely at the most embarrassing details & amplify them',
'Lost in useless territory',
'Lowest common denominator',
'Magnify the most difficult details',
'Make a blank valuable by putting it in an exquisite frame',
'Make a sudden, destructive unpredictable action; incorporate',
'Make an exhaustive list of everything you might do & do the last thing on the list',
'Make it more sensual',
'Make what\'s perfect more human',
'Mechanicalize something idiosyncratic',
'Move towards the unimportant',
'Mute and continue',
'Not building a wall but making a brick',
'Once the search has begun, something will be found',
'Only a part, not the whole',
'Only one element of each kind',
'Overtly resist change',
'Pae White\'s non-blank graphic metacard',
'Put in earplugs',
'Question the heroic',
'Reevaluation (a warm feeling)',
'Remember those quiet evenings',
'Remove a restriction',
'Remove ambiguities and convert to specifics',
'Remove specifics and convert to ambiguities',
'Repetition is a form of change',
'Retrace your steps',
'Reverse',
'Short circuit (example; a man eating peas with the idea that they will improve his virility shovels them straight into his lap)',
'Simple subtraction',
'Simply a matter of work',
'Slow preparation, fast execution',
'Spectrum analysis',
'State the problem as clearly as possible',
'Take a break',
'Take away the elements in order of apparent non-importance',
'Take away the important parts',
'Tape your mouth (given by Ritva Saarikko)',
'The inconsistency principle',
'The most important thing is the thing most easily forgotten',
'The tape is now the music',
'Think\n--inside the work\n--outside the work',
'Think of the radio',
'Tidy up',
'Towards the insignificant',
'Trust in the you of now',
'Try faking it (from Stewart Brand)',
'Turn it upside down',
'Twist the spine',
'Use \'unqualified\' people',
'Use an old idea',
'Use an unacceptable color',
'Use cliches',
'Use fewer notes',
'Use filters',
'Use something nearby as a model',
'Use your own ideas',
'Voice your suspicions',
'Water',
'What are the sections sections of? Imagine a caterpillar moving',
'What are you really thinking about just now?',
'What context would look right?',
'What is the reality of the situation?',
'What is the simplest solution?',
'What mistakes did you make last time?',
'What to increase? What to reduce? What to maintain?',
'What would your closest friend do?',
'What wouldn\'t you do?',
'When is it for?',
'Where is the edge?',
'Which parts can be grouped?',
'Work at a different speed',
'Would anyone want it?',
'You are an engineer',
'You can only make one dot at a time',
'You don\'t have to be ashamed of using your own ideas',
'[blank white card]',
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment