added method to plot the blips
[tech-radar.git] / examples / default.html
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8">
5 <title>Thoughtworks Radar 2014</title>
6 <script src="../bower_components/d3/d3.min.js"></script>
7 <script src="../src/namespaces.js"></script>
8 <script src="../src/util/fib.js"></script>
9 <script src="../src/models/cycle.js"></script>
10 <script src="../src/models/blip.js"></script>
11 <script src="../src/models/quadrant.js"></script>
12 <script src="../src/models/radar.js"></script>
13 <script src="../src/graphing/radar.js"></script>
14 <style>
15 svg {
16 padding: 20px;
17 }
18 svg circle:nth-child(1) {
19 fill: #eaeaea;
20 }
21 svg circle:nth-child(2) {
22 fill: #dadada;
23 }
24 svg circle:nth-child(3) {
25 fill: #cacaca;
26 }
27 svg circle:nth-child(4) {
28 fill: #bababa;
29 }
30 svg text {
31 font: 11px 'Open Sans';
32 font-variant: small-caps;
33 text-transform:uppercase;
34 fill: #000;
35 }
36 svg line {
37 stroke: rgba(255, 255, 255, 0.3);
38 }
39
40 </style>
41 </head>
42 <body>
43 </body>
44 <script>
45 var adopt = new tr.models.Cycle('Adopt', 0);
46 var assess = new tr.models.Cycle('Assess', 1);
47 var trial = new tr.models.Cycle('Trial', 2);
48 var hold = new tr.models.Cycle('Hold', 3);
49
50 var radar = new tr.models.Radar();
51 var toolsQuadrant = new tr.models.Quadrant('Tools');
52 var techniquesQuadrant = new tr.models.Quadrant('Techniques');
53 var platformsQuadrant = new tr.models.Quadrant('Platforms');
54 var languageFramework = new tr.models.Quadrant('Languages & Frameworks');
55
56 toolsQuadrant.add([
57 new tr.models.Blip('D3', adopt),
58 new tr.models.Blip('Dependency Management for JavaScript', adopt, true),
59 new tr.models.Blip('Ansible', trial, true),
60 new tr.models.Blip('Calabash', trial, true),
61 new tr.models.Blip('Chaos Monkey', trial, true),
62 new tr.models.Blip('Gatling', trial),
63 new tr.models.Blip('Grunt.js', trial, true),
64 new tr.models.Blip('Hystrix', trial),
65 new tr.models.Blip('Icon fonts', trial),
66 new tr.models.Blip('Librarian-puppet and Librarian-Chef', trial),
67 new tr.models.Blip('Logstash & Graylog2', trial),
68 new tr.models.Blip('Moco', trial, true),
69 new tr.models.Blip('PhantomJS', trial),
70 new tr.models.Blip('Prototype On Paper', trial, true),
71 new tr.models.Blip('SnapCI', trial, true),
72 new tr.models.Blip('Snowplow Analytics & Piwik', trial),
73 new tr.models.Blip('Cloud-init', assess, true),
74 new tr.models.Blip('Docker', assess, true),
75 new tr.models.Blip('Octopus', assess),
76 new tr.models.Blip('Sensu', assess, true),
77 new tr.models.Blip('Travis for OSX/iOS', assess, true),
78 new tr.models.Blip('Visual regression testing tools', assess, true),
79 new tr.models.Blip('Xamarin', assess, true),
80 new tr.models.Blip('Ant', hold, true),
81 new tr.models.Blip('Heavyweight test tools', hold),
82 new tr.models.Blip('TFS', hold)
83 ]);
84 techniquesQuadrant.add([
85 new tr.models.Blip('Capturing client-side JavaScript errors', adopt),
86 new tr.models.Blip('Continuous delivery for mobile devices', adopt),
87 new tr.models.Blip('Mobile testing on mobile networks', adopt),
88 new tr.models.Blip('Segregated DOM plus node for JS Testing', adopt, true),
89 new tr.models.Blip('Windows infrastructure automation', adopt),
90 new tr.models.Blip('Capture domain events explicitily', trial, true),
91 new tr.models.Blip('Client and server rendering with same code', trial, true),
92 new tr.models.Blip('HTML5 storage instead of cookies', trial),
93 new tr.models.Blip('Instrument all the things', trial, true),
94 new tr.models.Blip('Masterless Chef/Puppet', trial, true),
95 new tr.models.Blip('Micro-services', trial),
96 new tr.models.Blip('Perimeterless enterprise', trial),
97 new tr.models.Blip('Provisioning testing', trial, true),
98 new tr.models.Blip('Structured logging', trial, true),
99 new tr.models.Blip('Bridging physical and digital worlds with simple hardware', assess, true),
100 new tr.models.Blip('Collaborative analytics and data science', assess),
101 new tr.models.Blip('Datensparsamkeit', assess, true),
102 new tr.models.Blip('Development environments in the cloud', assess),
103 new tr.models.Blip('Focus on mean time to recovery', assess),
104 new tr.models.Blip('Machine image as a build artifact', assess),
105 new tr.models.Blip('Tangible interaction', assess, true),
106 new tr.models.Blip('Cloud lift and shift', hold, true),
107 new tr.models.Blip('Ignoring OWASP Top 10', hold, true),
108 new tr.models.Blip('Siloed metrics', hold, true),
109 new tr.models.Blip('Velocity as productivity', hold, true)
110 ]);
111 platformsQuadrant.add([
112 new tr.models.Blip('Elastic Search', adopt),
113 new tr.models.Blip('MongoDB', adopt),
114 new tr.models.Blip('Neo4J', adopt),
115 new tr.models.Blip('Node.js', adopt),
116 new tr.models.Blip('Redis', adopt),
117 new tr.models.Blip('SMS and USSD as UI', adopt),
118 new tr.models.Blip('Hadoop 2.0', trial),
119 new tr.models.Blip('Hadoop as a service', trial, true),
120 new tr.models.Blip('Open Stack', trial),
121 new tr.models.Blip('PostgreSQL for NoSql', trial),
122 new tr.models.Blip('Vumi', trial),
123 new tr.models.Blip('Akka', assess, true),
124 new tr.models.Blip('Backend as a service', assess, true),
125 new tr.models.Blip('Low-cost robotics', assess, true),
126 new tr.models.Blip('PhoneGap/Apache Cordova', assess),
127 new tr.models.Blip('Private Clouds', assess),
128 new tr.models.Blip('SPDY', assess, true),
129 new tr.models.Blip('Storm', assess, true),
130 new tr.models.Blip('Web Components standard', assess, true),
131 new tr.models.Blip('Big enterprise solutions', hold),
132 new tr.models.Blip('CMS as a platform', hold, true),
133 new tr.models.Blip('Enterprise Data Warehouse', hold, true)
134 ]);
135 languageFramework.add([
136 new tr.models.Blip('Clojure', adopt),
137 new tr.models.Blip('Dropwizard', adopt),
138 new tr.models.Blip('Scala, the good parts', adopt),
139 new tr.models.Blip('Sinatra', adopt),
140 new tr.models.Blip('CoffeeScript', trial),
141 new tr.models.Blip('Go language', trial, true),
142 new tr.models.Blip('Hive', trial, true),
143 new tr.models.Blip('Play Framework 2', trial),
144 new tr.models.Blip('Reactive Extensions across languages', trial, true),
145 new tr.models.Blip('Web API', trial, true),
146 new tr.models.Blip('Elixir', assess, true),
147 new tr.models.Blip('Julia', assess, true),
148 new tr.models.Blip('Nancy', assess),
149 new tr.models.Blip('OWIN', assess),
150 new tr.models.Blip('Pester', assess, true),
151 new tr.models.Blip('Pointer Events', assess, true),
152 new tr.models.Blip('Python 3', assess, true),
153 new tr.models.Blip('TypeScript', assess, true),
154 new tr.models.Blip('Yeoman', assess, true),
155 new tr.models.Blip('Handwritten CSS', hold),
156 new tr.models.Blip('JSF', hold, true)
157 ]);
158
159 radar.setFirstQuadrant(toolsQuadrant);
160 radar.setSecondQuadrant(techniquesQuadrant);
161 radar.setThirdQuadrant(platformsQuadrant);
162 radar.setFourthQuadrant(languageFramework);
163
164 var radarGraph = new tr.graphing.Radar(d3.select("body").append("svg"), 800, radar);
165 radarGraph.plot();
166 </script>
167 </html>