From 2558e56d3ed0f5f49282b108366d669bb5513277 Mon Sep 17 00:00:00 2001 From: robert Date: Thu, 31 Jan 2013 23:30:23 +0000 Subject: [PATCH] add first version of fosdem2013 slides --- fosdem2013/cc-by-sa-80x15.png | Bin 0 -> 672 bytes fosdem2013/index.html | 136 ++++++++++++ fosdem2013/local.conf | 6 + fosdem2013/slides.css | 266 ++++++++++++++++++++++++ fosdem2013/slides.js | 200 ++++++++++++++++++ fosdem2013/template/firefox-title.png | Bin 0 -> 7401 bytes fosdem2013/template/page-background.png | Bin 0 -> 2554 bytes 7 files changed, 608 insertions(+) create mode 100644 fosdem2013/cc-by-sa-80x15.png create mode 100755 fosdem2013/index.html create mode 100644 fosdem2013/local.conf create mode 100644 fosdem2013/slides.css create mode 100644 fosdem2013/slides.js create mode 100644 fosdem2013/template/firefox-title.png create mode 100644 fosdem2013/template/page-background.png diff --git a/fosdem2013/cc-by-sa-80x15.png b/fosdem2013/cc-by-sa-80x15.png new file mode 100644 index 0000000000000000000000000000000000000000..c67509f1264e4b845b643e340cb39970e432c711 GIT binary patch literal 672 zcmV;R0$=@!P)1RCwBA zU>IS55s3f)|36ZE%gD$AVXfJ;8d+k`uDvs-&g|&uC@(L^)aL5ydg|1vw(eGO32`7- zURJ@?$@SxhkAvK|ka%Unlz92#A;p2zGg2JH^$yhwR ze8~!7VPRapg#ci1+`Msf!`h8N_Qy{jJbXO7eY}UNhc8{cl%AdrWSl*FR#{mYnC^jT z`2G9$KoZCXiU7rpjg4JgT&`Wc1~r9=3CKlDKM;VNoG{t=wa}t)VZ!k3<bHjPBvDU%miIK|w)alma~l@i{O71KCPSN;c*e^f{0XjBOzyA)p8(yPi37Mp0Q2 zqDz2Z09aAsk70s!21)8EZFnHp!+l--&!0ZOfB!xnZNLyQF)@jbiw+3(2XbYl<(eCs zw{F=w$m?NXXksa)qvN99zI_9XQaqZ=%F0w!l_9?6=M&hmWyc`*Exu|A*nUdQOs%Y} zY;SMJs>jLM>H78S1tkUW^xQw8f3z( + + + + + Mozilla Stability + + + + + + + + + + + +
+

Table of Contents

+

Improving Mozilla Stability

+ +
+

The following slides are available in this presentation:

+
+
    +
+
+ + + +
+

Are We Stable Yet?

+ +
+
    +
  • http://arewestableyet.com/
  • +
  • Common stability indicators
  • +
  • ADI (active daily installations) and crash rate (crashes per 100 ADI)
  • +
  • Startup and Flash crashes, tracked bugs
  • +
+
+
+ +
+

Socorro Data

+ +
+
    +
  • http://crash-stats.mozilla.com/
  • +
  • Collects crash reports, displays contents and statistics
  • +
  • Signature: Last functions(s) called before crash
  • +
  • Top crashes by signature and release
  • +
+
+
+ +
+

Custom Reports

+ +
+
    +
  • https://crash-analysis.mozilla.com/rkaiser/0000.overview.html
  • +
  • Testing ground for reports to be integrated into Socorro in the future
  • +
  • Explosiveness: detection of rising/new crashes
  • +
  • B2G crash list: reports from Firefox OS (testing) devices
  • +
+
+
+ +
+

Bugzilla

+ +
+
    +
  • https://bugzilla.mozilla.org/
  • +
  • Central hub of tracking and QA/developer/etc. interaction
  • +
  • Keywords: crash, topcrash, needURLs
  • +
  • Tracking flags for releases
  • +
+
+
+ +
+

Contacts

+ +
+
    +
  • Mailing list: stability@mozilla.org
  • +
  • irc.mozilla.org: #crashkill
  • +
  • CrashKill meetings: Mondays @ 10am Pacific, Stability room in Vidyo
  • +
+
+
+ + + diff --git a/fosdem2013/local.conf b/fosdem2013/local.conf new file mode 100644 index 0000000..0996d80 --- /dev/null +++ b/fosdem2013/local.conf @@ -0,0 +1,6 @@ + diff --git a/fosdem2013/slides.css b/fosdem2013/slides.css new file mode 100644 index 0000000..fa67a95 --- /dev/null +++ b/fosdem2013/slides.css @@ -0,0 +1,266 @@ +/************************** + * styles for talk slides * + * by Robert Kaiser * + * * + * (for Linuxwochen 2009) * + **************************/ + + +/***** base style *****/ + +html { + overflow: hidden; /* to make translations not paint scrollbars */ +} + +body { + margin: 0px; + padding: 0px; + border: 0px; + font-family: Arial,Helvetica,sans-serif; + font-size: 2em; + color: #6d7581; + background: white url("template/page-background.png") top left repeat-x; +} + +ul { + padding-left: 1.2em; + margin-bottom: 0.5em; +} + +ul:first-child, +ul:last-child { + margin-top: 0; +} + +#header { + height: 38px; + position: relative; + padding: 0 15px 0 0; + z-index: 1; +} + +#headerlogo { + position: relative; + display: block; + text-indent: -500px; + font-size: 1px; + overflow: hidden; + height: 48px; + width: 186px; + background: url("template/firefox-title.png") 5px 3px no-repeat; +} + +#header-text { + float: right; + padding: 7px 20px; + font-size: 24px; + font-weight: bold; + color: #C0C8CA; +} + +#header-text.neartime { + color: #A0C8DA; +} + +#header-text.ontime { + color: #80CC80; +} + +#header-text.overtime { + color: #FF8080; +} + +#slidenav { + padding: 4px 15px 30px 55px; + font-size: 10px; + color: #A0C8DA; +} + +#slidenav a:link, +#slidenav a:visited { + color: #6d7581; +} + +#slidenav a:hover, +#slidenav a:active { + color: #0000FF; +} + +#slidenav .nolink { + color: #A0C8DA; +} + +#subheader-text { + float: right; + padding: 0 20px; + color: #6d7581; +} + +article { + position: absolute; + width: 100%; + /* header is 38px + 1px border, slidenav is 13px + 4px + 30px paddings, + another 5px for safety */ + height: calc(100% - 90px); + overflow: auto; + + transition-property: transform, opacity; + transition-duration: 3s; + transition-timing-function: ease; + transform-origin: center 5em; + + opacity: 0; +/* + transform: translate(-100%, 0); +*/ +/* + transform: scale(0.1) rotate(360deg); +*/ + transform: scale(0.1) rotate(360deg) translate(-200%, 0); +} + +article[aria-selected="true"] { + opacity: 1; + transform: scale(1) rotate(0deg) translate(0, 0); +} + +article[aria-selected="true"] ~ article { + opacity: 0; +/* + transform: translate(100%, 0); +*/ +/* + transform: scale(0.1) rotate(-360deg); +*/ + transform: scale(0.1) rotate(-360deg) translate(200%, 0); +} + +/***** headers *****/ + +h1 { + margin: 0 0 0.5em 0; + font-size: 1.7em; + font-weight: bold; + color: #505050; + text-align: center; + text-shadow: #AAAA80 3px 3px 5px; +} + +h2 { + margin: 0.5em 0; + font-size: 1.3em; + font-weight: bold; + color: #505050; + text-align: center; + text-shadow: #AAAA80 2px 2px 3px; +} + +h3 { + margin: 0.5em 0; + font-size: 1.1em; + font-weight: bold; + color: #505050; + text-align: center; +} + +h4 { + margin: 0.5em 0; + font-size: 1em; + font-weight: bold; + color: #505050; + text-align: left; +} + +/***** boxes *****/ + +.simplebox { + padding: 0.5em; +} + +.captionedbox { + padding: 0px; +} + +.simplebox, +.captionedbox { + margin: 1em; + border: 1px solid #A0C8DA; + background: white url("template/page-background.png") top left repeat-x; + border-radius: .5em; + box-shadow: #6d7581 1px 1px 3px 2px; +} + +.captionedbox-content { + margin: 0px; + padding: 0.5em; + border: 0px; + border-top: 2px solid #A0C8DA; + -moz-border-top-colors: #A0C8DA #6d7581; + border-radius: 0 0 .5em .5em; +} + +.captionedbox-caption { + margin: 0.5em; + font-weight: bold; + text-shadow: #AAAA80 1px 1px 2px; +} + +/***** misc formatting *****/ + +mark { + font-weight: bold; + color: #FF6600; + background-color: transparent; + text-shadow: #AAAA80 2px 2px 3px; +} + +.border { + border: 1px solid #6d7581; + padding: 0.5em; +} + +ul > li { + margin: 0.5em 0; +} + +.cent { + text-align: center; +} + +.topmargin { + margin-top: 0.5em; +} + +.akey { + text-decoration: underline; +} + +a:link, a:visited { color: #447bc4; text-decoration: none; } +a:hover, a:active { color: #FF6600; text-decoration: underline; } + +mark a:link, mark a:visited { color: #FF6600; } +mark a:hover, mark a:active { color: #FF6600; } + +/***** small stuff *****/ + +.small, +.small { + font-size: 0.75em; +} + +ul.small, +.small ul { + padding: 0px; + border: 0px; + margin: 0px 0px 0px 1em; +} + +ul.small > li +.small ul > li { + margin: 0px; + padding: 0px; + border: 0px; +} + +/***** specific slides *****/ + diff --git a/fosdem2013/slides.js b/fosdem2013/slides.js new file mode 100644 index 0000000..306a95c --- /dev/null +++ b/fosdem2013/slides.js @@ -0,0 +1,200 @@ +/****************************** + * JavaScript for talk slides * + * by Robert Kaiser * + * * + * (for FOSDEM 2011) * + ******************************/ + +var slides = {}; +var articleNodes; +var currentSlide; +var currentIdx; +var defaultIdx = 1; // set to slide index to show by default +var firstIdx = 2; // set no value if to use first available +var lastIdx; // set no value if to use first available + +var pageTitle, headerText, subHeaderText; +var navPrev, navNext, navPrevNolink, navNextNolink; + +// Slide timer - color variation of headerText +var slideSeconds = 3 * 60; + +// Called when the document has been loaded. +function docLoaded() { + pageTitle = document.getElementsByTagName("title")[0]; + headerText = document.getElementById("header-text"); + subHeaderText = document.getElementById("subheader-text"); + navPrev = document.getElementById("nav-prev"); + navNext = document.getElementById("nav-next"); + navPrevNolink = document.getElementById("nav-prev-nolink"); + navNextNolink = document.getElementById("nav-next-nolink"); + articleNodes = document.getElementsByTagName("article"); + + if (!firstIdx) + firstIdx = 0; + if (!lastIdx) + lastIdx = articleNodes.length - 1; + + // Get a list of all slides (articles). + subHeaderText.textContent = articleNodes.length + " slides..."; + for (var i = 0; i < articleNodes.length; ++i) { + subHeaderText.textContent = "Indexing slide " + i + " / " + articleNodes.length; + if (!articleNodes[i].id) + articleNodes[i].id = "slide_" + i; + + slides[articleNodes[i].id] = + {"idx": i, + "name": articleNodes[i].id, + "title": articleNodes[i].title ? articleNodes[i].title : articleNodes[i].id, + "obj": articleNodes[i]}; + + if (location.hash.length && + (location.hash == "#" + articleNodes[i].id || location.hash == "#" + i)) { + articleNodes[i].setAttribute("aria-selected", "true"); + currentSlide = slides[articleNodes[i].id]; + currentIdx = i; + } + } + + if (!currentSlide) { + currentIdx = defaultIdx; + currentSlide = slides[articleNodes[currentIdx].id]; + currentSlide.obj.setAttribute("aria-selected", "true"); + location.hash = "#" + currentSlide.name; + } + updateDisplay(); +} + +// Called when the hash part of the location changes. +function locationHashChanged() { + if (location.hash.length > 1) { + var hashtag = location.hash.substring(1); + // If not a number, treat as ID + if (isNaN(hashtag) && slides[hashtag]) { + currentSlide.obj.removeAttribute("aria-selected"); + currentSlide = slides[hashtag]; + currentIdx = currentSlide.idx; + currentSlide.obj.setAttribute("aria-selected", "true"); + updateDisplay(); + } + else if (articleNodes[hashtag]) { + currentSlide.obj.removeAttribute("aria-selected"); + currentIdx = hashtag; + currentSlide = slides[articleNodes[currentIdx].id]; + currentSlide.obj.setAttribute("aria-selected", "true"); + updateDisplay(); + } + } +} +window.onhashchange = locationHashChanged; + +// Update the display after we updated what slide is shown. +function updateDisplay() { + if (currentIdx >= firstIdx && currentIdx <= lastIdx && + currentSlide.name != "toc") + subHeaderText.textContent = (currentIdx - firstIdx + 1) + "/" + + (lastIdx - firstIdx + 1) + " - " + + currentSlide.title; + else + subHeaderText.textContent = currentSlide.title; + pageTitle.textContent = headerText.textContent + ": " + currentSlide.title; + if (currentIdx > firstIdx && currentSlide.name != "toc") { + navPrev.hidden = false; + navPrev.href = "#" + articleNodes[currentIdx - 1].id; + navPrevNolink.hidden = true; + } + else { + navPrev.hidden = true; + navPrevNolink.hidden = false; + } + if (currentIdx < lastIdx && currentSlide.name != "toc") { + navNext.hidden = false; + navNext.href = "#" + articleNodes[currentIdx + 1].id; + navNextNolink.hidden = true; + } + else { + navNext.hidden = true; + navNextNolink.hidden = false; + } + headerText.className = ""; + slideStart = new Date(); + if (currentSlide.name == "toc") + createTOC(); + else + setTimeout("timerFired()", timerMSec); +} + +// Create TOC list. +function createTOC() { + var list = document.getElementById("toc-list"); + if (!list.getElementsByTagName("li").length) { + for (var slide in slides) { + if (slide != "toc") { + var item = document.createElement("li"); + var link = document.createElement("a"); + var slideHeaders = slides[slide].obj.getElementsByTagName("h1"); + if (slideHeaders.length) + link.textContent = slideHeaders[0].textContent; + else + link.textContent = slides[slide].title; + link.href = "#" + slides[slide].name; + item.appendChild(link); + list.appendChild(item); + } + } + } +} + +// Do timed color variation on slides. +function timerFired() { + var slideCurrent = new Date(); + var secondsDiff = Math.round((slideCurrent.getTime() - slideStart.getTime()) / 1000); + if (secondsDiff >= slideSeconds) { + headerText.className = "overtime"; + } + else if (secondsDiff >= Math.round(2 * slideSeconds / 3)) { + headerText.className = "ontime"; + setTimeout("timerFired()", timerMSec); + } + else if (secondsDiff >= Math.round(slideSeconds / 3)) { + headerText.className = "neartime"; + setTimeout("timerFired()", timerMSec); + } + else { + // We should never come here, but if we do, go into a 100ms loop until we get over the upcoming step. + setTimeout("timerFired()", 100); + } +} +var slideStart = new Date(); +var timerMSec = 1000 * (slideSeconds / 3); +setTimeout("timerFired()", timerMSec); + +// Keyboard/click nav functionality, mostly inherited from FOSDEM 2007. +(function() { + function go(where) { + where = where || "next"; + var navElem = document.getElementById("nav-" + where); + if (!navElem.hidden) + window.location.href = navElem.href; + } + + function handleClick(e) { + e = e || event; + var target = (window.event) ? e.srcElement : e.target; + if (e.which == 1 && target.nodeName != "A" && target.nodeName != "VIDEO") + go("next"); + } + + function handleKeyPress(e) { + e = e || event; + switch (e.keyCode) { + case e.DOM_VK_LEFT: + go("prev"); break; + case e.DOM_VK_RIGHT: + go("next"); break; + } + } + + window.onclick = handleClick; + window.onkeypress = handleKeyPress; +})(); diff --git a/fosdem2013/template/firefox-title.png b/fosdem2013/template/firefox-title.png new file mode 100644 index 0000000000000000000000000000000000000000..2648e7980292a53f5d2ff270a0f679aae99765fc GIT binary patch literal 7401 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 b4nX_A=e|N!QKmc`00000NkvXXu0mjf!`nOz literal 0 HcmV?d00001 diff --git a/fosdem2013/template/page-background.png b/fosdem2013/template/page-background.png new file mode 100644 index 0000000000000000000000000000000000000000..b499bb223e6add15a58abe5bab5da694c9bba585 GIT binary patch literal 2554 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 QTmS$707*qoM6N<$f@M)E4gdfE literal 0 HcmV?d00001 -- 2.35.3