@andee_marks
Also Does Code Sound Smelly Bad? Andy Marks Technical - - PowerPoint PPT Presentation
Also Does Code Sound Smelly Bad? Andy Marks Technical - - PowerPoint PPT Presentation
Also Does Code Sound Smelly Bad? Andy Marks Technical Principal ThoughtWorks @andee_marks Background @andee_marks Agenda Music Theory Redux Aeolian Design Choices (& examples) @andee_marks A Music Theory Primer Notes
@andee_marks
Background
@andee_marks
Agenda
- Music Theory Redux
- Aeolian
- Design Choices (& examples)
@andee_marks
A Music Theory Primer
Notes Tempo Keys Octave
@andee_marks
github.com/andeemarks/aeolian
“the aeolian tonic chord is the submediant minor triad”
Java One note per line of code Make good quality code pleasant to listen to Make poor quality code unpleasant to listen to
@andee_marks
Tool chain
metrics .abc .midi
abc2midi
@andee_marks
Aeolian/Hello World
public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } X:1 T:HelloWorld.metrics C:AEOLIAN M:4/4 L:1/8 Q:1/4=140 K:C %%MIDI gchord c | "C"E c b E, E, E, | X:1 T:HelloWorld.metrics C:AEOLIAN M:4/4 L:1/8 Q:1/4=140 K:C %%MIDI gchord c | "C"E c b E, E, E, |
⇨
@andee_marks
ABC Notation
X:1 T:HelloWorld.metrics C:AEOLIAN M:4/4 L:1/8 Q:1/4=140 K:C %%MIDI gchord c | "C"E c b E, E, E, | Notes Tempo Keys
⇨
Octave
@andee_marks
Design Choices
@andee_marks
Design Choices #1/Notes
Notes
<module name="LineLength"> (cond (< line-length 10) (note-from-octave octave-1 line-length) (<= 10 line-length 39) (note-from-octave octave-2 line-length) (<= 40 line-length 79) (note-from-octave octave-3 line-length)
...
⇨
@andee_marks
Design Choices #2/Tempo
Tempo
(+ (* 20 complexity) default-tempo) <module name="CyclomaticComplexity">
⇨
@andee_marks
Design Choices #3/Key
Keys
⇨
<module name="SimianCheck"> (if (< duplication-percentage 10) (set-major-key) (set-minor-key)))
@andee_marks
Design Choices #4/Instruments
Instruments
⇨
(if (not (= current-author (get-author))) (instrument-for current-author)
@andee_marks
Design Choices #5/Lyrics
Lyrics
(if (not (= current-source-file (get-source-file))) (lyrics-for current-source-file)
@andee_marks
Design Choices #6/Sequencing
Sequencing
@andee_marks
Design Choices/Unresolved
Volume
⇨
Stereo Length Note length Comments
/** **/
Editor integration
@andee_marks
Conclusion
@andee_marks
Visual indicators
@andee_marks