software-engineering.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. {% extends "/html/base.html" %}
  2. {%block subtitle %}: {{page.title}}{% endblock %}
  3. {% block head %}
  4. <script src="/assets/d3/d3.js"></script>
  5. <link rel="stylesheet" href="/assets/c3/c3.min.css">
  6. <script src="/assets/c3/c3.min.js"></script>
  7. {% endblock %}
  8. {% block content %}
  9. <div id="software-engineering">
  10. <div id="page-header">
  11. <h2>{{page.title}}</h2>
  12. </div>
  13. {% if page.toc %}{{page.toc|safe}}{% endif %}
  14. {{page.content|safe}}
  15. <script>
  16. function HACK_identifyData () {
  17. var el = document.getElementById('roles_by_project');
  18. while( el && el.nodeName.toLowerCase() != 'table') {
  19. el = el.nextSibling;
  20. }
  21. if (el) {
  22. el.setAttribute('id', 'roles_by_project_data');
  23. }
  24. }
  25. HACK_identifyData();
  26. </script>
  27. <h2>Roles by time</h2>
  28. <div id="roles-by-time"></div>
  29. <h2>Tech skills timeline</h2>
  30. <div id="tech-skills-timeline"></div>
  31. <script>
  32. function parseProjectData () {
  33. var projectData = [{
  34. project: "Tiny DataCenter",
  35. fe: false,
  36. be: true,
  37. ops: true,
  38. dm: true,
  39. pm: true,
  40. arch: true,
  41. mentor: true,
  42. mobile: false,
  43. time: "2018",
  44. tools: ["Docker", "Clojure"]
  45. },
  46. {
  47. project: "BlockChain Platform",
  48. fe: false,
  49. be: true,
  50. ops: true,
  51. dm: false,
  52. pm: false,
  53. arch: true,
  54. mentor: true,
  55. mobile: false,
  56. time: "2017",
  57. tools: ["Kubernetes", "Docker", "GCP"]
  58. },
  59. {
  60. project: "AddressBook.Link",
  61. fe: false,
  62. be: false,
  63. ops: false,
  64. dm: false,
  65. pm: true,
  66. arch: true,
  67. mentor: false,
  68. mobile: true,
  69. time: "2017",
  70. tools: ["JS", "React Native", "ObjC"]
  71. }
  72. ];
  73. return projectData;
  74. }
  75. function roleByTimeChartData (projectData) {
  76. var labels = ["2014", "2015", "2016", "2017", "2018"];
  77. var rolesByYear = [
  78. ["FE", 0,0,0,0,0],
  79. ["BE", 0,0,0,0,0],
  80. ["FE", 0,0,0,0,0],
  81. ["Ops", 0,0,0,1,1],
  82. ["DM", 0,0,0,0,1],
  83. ["PM", 0,0,0,1,1],
  84. ["Arch", 0,0,0,2,1],
  85. ["Mentor", 0,0,0,1,1],
  86. ["Mobile", 0,0,0,1,0]
  87. ];
  88. return rolesByYear;
  89. }
  90. function makeRolesByTimeChart (elemSelector, projectData) {
  91. var chartData = roleByTimeChartData(projectData);
  92. var chart = c3.generate({
  93. bindto: elemSelector,
  94. data: {columns: chartData}
  95. });
  96. return chart;
  97. }
  98. function techSkillsTimelineData(projectData) {
  99. var labels = ["2014", "2015", "2016", "2017", "2018"];
  100. var skillsByYear = [
  101. ["Clojure", 0,0,0,0,1],
  102. ["Docker", 0,0,0,1,1],
  103. ["Kubernetes", 0,0,0,1,0],
  104. ["GCP", 0,0,0,1,0],
  105. ["JS", 0,0,0,1,0],
  106. ["Reach Native", 0,0,0,1,0],
  107. ["ObjC", 0,0,0,1,0]
  108. ];
  109. return skillsByYear;
  110. }
  111. function makeTechSkillsTimeline (elemSelector, projectData) {
  112. var chartData = techSkillsTimelineData(projectData);
  113. var chart = c3.generate({
  114. bindto: elemSelector,
  115. data: {columns: chartData}
  116. });
  117. return chart;
  118. }
  119. var projectData = parseProjectData();
  120. var rolesByTimeChart = makeRolesByTimeChart('#roles-by-time', projectData);
  121. var techSkillsTimeline = makeTechSkillsTimeline('#tech-skills-timeline', projectData);
  122. </script>
  123. <div id="prev-next">
  124. <a href="/">&laquo; Home</a>
  125. {% if all page.prev page.next %}
  126. ||
  127. {% endif %}
  128. {% if page.next %}
  129. <a href="{{page.next.uri}}">{{page.next.title}} &raquo;</a>
  130. {% endif %}
  131. </div>
  132. </div>
  133. {% endblock %}