# HG changeset patch # User Yasutaka Higa # Date 1424352166 -32400 # Node ID dc01e38c4fc16d68eb4415577077137f7b491045 # Parent 8d1325911030e6b2310a78f59eb6e12552005392 Add generated slides in English diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/pictures/logo.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/pictures/logo.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,683 @@ + + + +image/svg+xml \ No newline at end of file diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/scripts/script.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/scripts/script.js Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,213 @@ +(function () { + var url = window.location, + body = document.body, + slides = document.querySelectorAll('div.slide'), + progress = document.querySelector('div.progress div'), + slideList = [], + l = slides.length, + i; + + for (i = 0; i < l; i++) { + slideList.push(slides[i].id); + } + + function getTransform() { + var denominator = Math.max( + body.clientWidth / window.innerWidth, + body.clientHeight / window.innerHeight + ); + + return 'scale(' + (1 / denominator) + ')'; + } + + function applyTransform(transform) { + body.style.MozTransform = transform; + body.style.WebkitTransform = transform; + body.style.OTransform = transform; + body.style.msTransform = transform; + body.style.transform = transform; + } + + function enterSingleSlideMode() { + body.className = 'full'; + applyTransform(getTransform()); + } + + function enterSlideListMode() { + body.className = 'list'; + applyTransform('none'); + } + + function getCurrentSlideNumber() { + return slideList.indexOf(url.hash.substr(1)); + } + + function scrollToCurrentSlide() { + var current_slide = document.getElementById(slideList[getCurrentSlideNumber()]); + + if (null != current_slide) { + window.scrollTo(0, current_slide.offsetTop); + } + } + + function isSlideListMode() { + return 'full' !== url.search.substr(1); + } + + function normalizeSlideNumber(slide_number) { + if (0 > slide_number) { + return slideList.length - 1; + } else if (slideList.length <= slide_number) { + return 0; + } else { + return slide_number; + } + } + + function updateProgress(slide_number) { + if (!progress) return; + progress.style.width = (100 / (slideList.length - 1) * normalizeSlideNumber(slide_number)).toFixed(2) + '%'; + } + + function getSlideHashByNumber(slide_number) { + return '#' + slideList[normalizeSlideNumber(slide_number)]; + } + + function goToSlide(slide_number) { + url.hash = getSlideHashByNumber(slide_number); + + if (!isSlideListMode()) { + updateProgress(slide_number); + } + } + + window.addEventListener('DOMContentLoaded', function () { + if (!isSlideListMode()) { + // "?full" is present without slide hash so we should display first + // slide + if ( -1 === getCurrentSlideNumber() ) { + history.replaceState(null, null, url.pathname + '?full' + getSlideHashByNumber( 0 ) ); + } + + enterSingleSlideMode(); + updateProgress(getCurrentSlideNumber()); + } + }, false); + + window.addEventListener('popstate', function (e) { + if (isSlideListMode()) { + enterSlideListMode(); + scrollToCurrentSlide(); + } else { + enterSingleSlideMode(); + } + }, false); + + window.addEventListener('resize', function (e) { + if (!isSlideListMode()) { + applyTransform(getTransform()); + } + }, false); + + document.addEventListener('keydown', function (e) { + if (e.altKey || e.ctrlKey || e.metaKey) return; + + var current_slide_number = getCurrentSlideNumber(); + + switch (e.which) { + case 9: // Tab = +1; Shift + Tab = -1 + if (isSlideListMode()) { + e.preventDefault(); + + current_slide_number += e.shiftKey ? -1 : 1; + url.hash = getSlideHashByNumber(current_slide_number); + } + break; + + case 13: // Enter + if (isSlideListMode()) { + e.preventDefault(); + + history.pushState(null, null, url.pathname + '?full' + getSlideHashByNumber(current_slide_number)); + enterSingleSlideMode(); + + updateProgress(current_slide_number); + } + break; + + case 27: // Esc + if (!isSlideListMode()) { + e.preventDefault(); + + history.pushState(null, null, url.pathname + getSlideHashByNumber(current_slide_number)); + enterSlideListMode(); + scrollToCurrentSlide(); + } + break; + + case 33: // PgUp + case 38: // Up + case 37: // Left + case 72: // h + case 75: // k + e.preventDefault(); + + current_slide_number--; + goToSlide(current_slide_number); + break; + + case 34: // PgDown + case 40: // Down + case 39: // Right + case 76: // l + case 74: // j + e.preventDefault(); + + current_slide_number++; + goToSlide(current_slide_number); + break; + + case 36: // Home + e.preventDefault(); + + current_slide_number = 0; + goToSlide(current_slide_number); + break; + + case 35: // End + e.preventDefault(); + + current_slide_number = slideList.length - 1; + goToSlide(current_slide_number); + break; + + case 32: // Space = +1; Shift + Space = -1 + e.preventDefault(); + + current_slide_number += e.shiftKey ? -1 : 1; + goToSlide(current_slide_number); + break; + + default: + // Behave as usual + } + }, false); + + document.addEventListener('click', function (e) { + if ( + 'SECTION' === e.target.nodeName && + -1 !== e.target.parentNode.parentNode.className.indexOf('slide') && + isSlideListMode() + ) { + e.preventDefault(); + + // NOTE: we should update hash to get things work properly + url.hash = '#' + e.target.parentNode.parentNode.id; + history.replaceState(null, null, url.pathname + '?full#' + e.target.parentNode.parentNode.id); + enterSingleSlideMode(); + + updateProgress(getCurrentSlideNumber()); + } + }, false); + +}()); diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/slide.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/slide.html Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,407 @@ + + + + + Categorical Formalization of Program Modification + + + + + + + + +
+

Categorical Formalization of Program Modification

+

Yasutaka Higa

+
+
+
+
+

Categorical Formalization of Program Modification

+

Yasutaka Higa

+

Concurrency Reliance Laboratory (Kono lab)
Department of Information Engineering
University of the Ryukyus

+
+
+
+ + + + +
+
+
+

Formalization of Program Modification

+
+ + + + +
    +
  • To improve the reliability of a program
  • +
  • Development process has to be formalized
  • +
  • Especially program modifications are important
  • +
  • Let’s formalize modification using Monad
  • +
+ + + +
+
+ +
+
+
+

Formalization using Monad

+
+ + +
    +
  • Monad is a notion of Category theory
  • +
  • Monad represents meta computations in functional programming languages
  • +
  • We proposed Delta Monad representation of program modifications
  • +
  • We give definitions and the proof
  • +
  • Delta Monad can be used with other monads
  • +
+ + + +
+
+ +
+
+
+

Merits of formalizing program modifications

+
+ + +
    +
  • Formal methods give verification of program based on mathematics and logics
  • +
  • Such as lambda calculus and corresponding proofs
  • +
  • Moggi[1989] , introduce Monad as notion of meta computation in program
  • +
  • A meta computation represented as a Monad has one to one mapping
  • +
  • We define program modification as meta computation which includes all modifications
  • +
+ + + +
+
+ +
+
+
+

Definitions of Program

+
+ + +
    +
  • A program is a typed lambda calculus
  • +
  • lambda term +
      +
    • variables : x,y
    • +
    • function applications : f x
    • +
    • lambda : \x -> f x
    • +
    +
  • +
  • type +
      +
    • type variable : A, B
    • +
    • functional type : A -> B
    • +
    +
  • +
+ + + +
+
+ +
+
+
+

Every lambda term has a type

+
+ + +
    y   :: B
+    f   :: A -> B
+    f x = y
+
+
    +
  • = is a function definition
  • +
  • f x is a application function f
  • +
  • f x has type B
  • +
+ + + +
+
+ +
+
+
+

Definition of Delta in Haskell

+
+ + +
data Delta a = Mono a | Delta a (Delta a)
+
+ +
    +
  • data is a data type definition in Haskell
  • +
  • a is a type variable
  • +
  • Mono a and Delta a (Delta a) has a type Delta a
  • +
  • Delta can be stores all modification like list structure
  • +
+ + + +
+
+ +
+
+
+

How to define meta computation in Haskell

+
+ + +
    +
  • original function : f :: a -> b
  • +
  • meta function : f’ :: a -> Monad b
  • +
  • Original function combination : f ( g ( x ))
  • +
  • Meta function combination : (x »= f’) »= g’
  • +
  • f’ returns various value which type is Monad
  • +
  • Meta computation defined by f’ and >>=
  • +
  • cf. >>= is an infix function
  • +
+ + + +
+
+ +
+
+
+

Definition of Delta meta computation

+
+ + +
 >>= :: (Delta a) -> (a -> Delta b) -> (Delta b)
+ (Mono x)    >>= f = f x
+ (Delta x d) >>= f = Delta (headDelta (f x))
+                           (d >>= (tailDelta . f))
+
+ +
    +
  • Meta function f is applied to all the versions in a Delta Monad
  • +
  • Delta data types is accessed by a pattern match
  • +
  • headDelta takes first version of Delta
  • +
  • tailDelta takes the rest versions
  • +
+ + + +
+
+ +
+
+
+

An example of Program using Delta Monad

+
+ + +
    +
  • Two versions of a simple program are shown
  • +
  • Gives Delta Monad representation of the versions
  • +
  • Various computation can be possible in the Delta
  • +
+ + + +
+
+ +
+
+
+

An Example Program: numberCount (Version 1)

+
+ + + +
generator x     = [1..x]
+numberFilter xs = filter isPrime xs
+count xs        = length xs
+
+numberCount x = count (numberFilter (generator x))
+
+ + + +
+
+ +
+
+
+

An Example Program: numberCount (Version 2)

+
+ + + +
generator x     = [1..x]
+numberFilter xs = filter even xs
+count xs        = length xs
+
+numberCount x = count (numberFilter (generator x))
+
+ + + +
+
+ +
+
+
+

An Example of Program includes two versions

+
+ + +
generator x     = Mono [1..x]
+numberFilter xs = Delta (filter even xs)
+                        (Mono (filter isPrime xs))
+count x         = Mono (length x)
+
+numberCount x = count =<< numberFilter =<< generator x
+
+ + + +
+
+ +
+
+
+

Execution Program includes two version

+
+ + +
    +
  • result +
      +
    • Version 1 : 168
    • +
    • Version 2 : 500
    • +
    +
  • +
+ +
*Main> numberCount 1000
+Delta 500 (Mono 168)
+
+ + + +
+
+ +
+
+
+

Combine Delta Monad with other Monads

+
+ + +
    +
  • Delta Monad can be used with other monads
  • +
  • Meta computations can be added function to Delta +
      +
    • Exception, Logging , I/O
    • +
    +
  • +
+ + + +
+
+ +
+
+
+

An Example Delta Monad with Traces

+
+ + +
*Main> numberCountM 10
+DeltaM (Delta (Writer (4, ["[1,2,3,4,5,6,7,8,9,10]",
+                           "[2,3,5,7]",
+                           "4"]))
+       (Mono  (Writer (5, ["[1,2,3,4,5,6,7,8,9,10]",
+                           "[2,4,6,8,10]",
+                           "5"]))))
+
+ + + +
+
+ +
+
+
+

How to use Delta Monad in program development

+
+ + +
    +
  • Executing selected versions
  • +
  • Comparing traces of versions
  • +
  • Version Control Systems are formalized by Delta Monad
  • +
  • Combination of other Monads make development more reliable
  • +
+ + + +
+
+ +
+
+
+

Conclusion

+
+ + +
    +
  • Program Modifications are formal defined
  • +
  • Program Modifications are meta computation
  • +
  • Program Modifications are Delta Monad
  • +
  • Monad-laws are proved in Agda
  • +
  • Delta Monad include all necessary aspects of modifications?
  • +
  • What is products/colimits over program versions?
  • +
+ + + + +
+
+ + + + + + diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/DroidSansMono.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/DroidSansMono.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,626 @@ + + + + Foundry: Ascender Corporation + Foundry URL: http://www.ascendercorp.com/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/DroidSansMono.ttf Binary file english_presentation/themes/ribbon/fonts/DroidSansMono.ttf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Bold.Italic.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/PTSans.Bold.Italic.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Bold.Italic.ttf Binary file english_presentation/themes/ribbon/fonts/PTSans.Bold.Italic.ttf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Bold.Italic.woff Binary file english_presentation/themes/ribbon/fonts/PTSans.Bold.Italic.woff has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Bold.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/PTSans.Bold.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Bold.ttf Binary file english_presentation/themes/ribbon/fonts/PTSans.Bold.ttf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Bold.woff Binary file english_presentation/themes/ribbon/fonts/PTSans.Bold.woff has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Italic.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/PTSans.Italic.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Italic.ttf Binary file english_presentation/themes/ribbon/fonts/PTSans.Italic.ttf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Italic.woff Binary file english_presentation/themes/ribbon/fonts/PTSans.Italic.woff has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Narrow.Bold.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/PTSans.Narrow.Bold.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Narrow.Bold.ttf Binary file english_presentation/themes/ribbon/fonts/PTSans.Narrow.Bold.ttf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Narrow.Bold.woff Binary file english_presentation/themes/ribbon/fonts/PTSans.Narrow.Bold.woff has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Narrow.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/PTSans.Narrow.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Narrow.ttf Binary file english_presentation/themes/ribbon/fonts/PTSans.Narrow.ttf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.Narrow.woff Binary file english_presentation/themes/ribbon/fonts/PTSans.Narrow.woff has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/PTSans.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,728 @@ + + + + +Generated by SVGconv. +Copyright : Copyright 2009 ParaType Ltd. All rights reserved. +Designer : A.Korolkova, O.Umpeleva, V.Yefimov +Foundry : ParaType Ltd +Foundry URL : http://www.paratype.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.ttf Binary file english_presentation/themes/ribbon/fonts/PTSans.ttf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/PTSans.woff Binary file english_presentation/themes/ribbon/fonts/PTSans.woff has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/TargetBlank.otf Binary file english_presentation/themes/ribbon/fonts/TargetBlank.otf has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/fonts/TargetBlank.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/fonts/TargetBlank.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,14 @@ + + + + Designer: Vadim Makeev + + + + + + + + + + \ No newline at end of file diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/images/grid.png Binary file english_presentation/themes/ribbon/images/grid.png has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/images/linen.png Binary file english_presentation/themes/ribbon/images/linen.png has changed diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/images/ribbon.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/images/ribbon.svg Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/styles/fonts.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/styles/fonts.css Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,63 @@ +/* PTSans */ +@font-face { + font-family:'PT Sans'; + src:local('PT Sans'), + url(../fonts/PTSans.woff) format('woff'), + url(../fonts/PTSans.ttf) format('truetype'), + url(../fonts/PTSans.svg#PTSans-Regular) format('svg'); + } +@font-face { + font-weight:bold; + font-family:'PT Sans'; + src:local('PT Sans Bold'), + url(../fonts/PTSans.Bold.woff) format('woff'), + url(../fonts/PTSans.Bold.ttf) format('truetype'), + url(../fonts/PTSans.Bold.svg#PTSans-Bold) format('svg'); + } +@font-face { + font-style:italic; + font-family:'PT Sans'; + src:local('PT Sans Italic'), + url(../fonts/PTSans.Italic.woff) format('woff'), + url(../fonts/PTSans.Italic.ttf) format('truetype'), + url(../fonts/PTSans.Italic.svg#PTSans-Italic) format('svg'); + } +@font-face { + font-style:italic; + font-weight:bold; + font-family:'PT Sans'; + src:local('PT Sans Bold Italic'), + url(../fonts/PTSans.Bold.Italic.woff) format('woff'), + url(../fonts/PTSans.Bold.Italic.ttf) format('truetype'), + url(../fonts/PTSans.Bold.Italic.svg#PTSans-BoldItalic) format('svg'); + } +@font-face { + font-family:'PT Sans Narrow'; + src:local('PT Sans Narrow'), + url(../fonts/PTSans.Narrow.woff) format('woff'), + url(../fonts/PTSans.Narrow.ttf) format('truetype'), + url(../fonts/PTSans.Narrow.svg#PTSans-Narrow) format('svg'); + } +@font-face { + font-family:'PT Sans Narrow'; + font-weight:bold; + src:local('PT Sans Narrow Bold'), + url(../fonts/PTSans.Narrow.Bold.woff) format('woff'), + url(../fonts/PTSans.Narrow.Bold.ttf) format('truetype'), + url(../fonts/PTSans.Narrow.Bold.svg#PTSans-NarrowBold) format('svg'); + } + +/* Droid Sans Mono */ +@font-face { + font-family:'Droid Sans Mono'; + src:local('Droid Sans Mono'), + url(../fonts/DroidSansMono.ttf) format('truetype'), + url(../fonts/DroidSansMono.svg#DroidSansMono) format('svg'); + } + +/* Linker */ +@font-face { + font-family:'Target Blank'; + src:url(../fonts/TargetBlank.otf) format('opentype'), + url(../fonts/TargetBlank.svg#TargetBlank) format('svg'); + } \ No newline at end of file diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/styles/reset.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/styles/reset.css Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,42 @@ +HTML, BODY, DIV, SPAN, APPLET, OBJECT, IFRAME, +H1, H2, H3, H4, H5, H6, P, BLOCKQUOTE, PRE, +A, ABBR, ACRONYM, ADDRESS, BIG, CITE, CODE, +DEL, DFN, EM, IMG, INS, KBD, Q, S, SAMP, +SMALL, STRIKE, STRONG, SUB, SUP, TT, VAR, +B, U, I, CENTER, +DL, DT, DD, OL, UL, LI, +FIELDSET, FORM, LABEL, LEGEND, +TABLE, CAPTION, TBODY, TFOOT, THEAD, TR, TH, TD, +ARTICLE, ASIDE, CANVAS, DETAILS, EMBED, +FIGURE, FIGCAPTION, FOOTER, HEADER, HGROUP, +MENU, NAV, OUTPUT, RUBY, SECTION, SUMMARY, +TIME, MARK, AUDIO, VIDEO { + margin:0; + padding:0; + border:0; + font-size:100%; + font:inherit; + vertical-align:baseline; + } +ARTICLE, ASIDE, DETAILS, FIGCAPTION, FIGURE, +FOOTER, HEADER, HGROUP, MENU, NAV, SECTION { + display:block; + } +BODY { + line-height:1; + } +OL, UL { + list-style:none; + } +BLOCKQUOTE, Q { + quotes:none; + } +BLOCKQUOTE:before, BLOCKQUOTE:after, +Q:before, Q:after { + content:''; + content:none; + } +TABLE { + border-collapse:collapse; + border-spacing:0; + } \ No newline at end of file diff -r 8d1325911030 -r dc01e38c4fc1 english_presentation/themes/ribbon/styles/style.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/english_presentation/themes/ribbon/styles/style.css Thu Feb 19 22:22:46 2015 +0900 @@ -0,0 +1,396 @@ +/* + Ribbon theme for Shower presentation template: http://github.com/pepelsbey/shower + Copyright © 2010–2011 Vadim Makeev, http://pepelsbey.net/ + Licensed under MIT license: https://github.com/pepelsbey/shower/wiki/License +*/ + +@import url(fonts.css); +@import url(reset.css); + +BODY { + font:25px/1.8 'PT Sans', sans-serif; + counter-reset:paging; + } + +/* Slide +---------------------------------------- */ +.slide:after { + counter-increment:paging; + content:counter(paging, decimal-leading-zero); + } +.slide SECTION { + padding:80px 120px 0; + width:784px; + height:560px; + background:#FFF; + color:#000; + } + .slide SECTION:before { + position:absolute; + bottom:-90px; + right:45px; + width:200px; + height:200px; + background:url(../../../pictures/logo.svg) no-repeat; + background-size: 200px; + content:''; + } + +/* Header */ +.slide HEADER { + margin:0 0 58px; + color:#666; + font:bold 40px/1.13 'PT Sans Narrow', sans-serif; + } + +/* Elements */ +.slide P { + margin:0 0 45px; + } +.slide P.note { + color:#888; + } +.slide A { + border-bottom:0.1em solid; + color:#0174A7; + text-decoration:none; + } +.slide A[target=_blank] { + margin-right:22px; + } +.slide A[target=_blank]:after { + position:absolute; + margin-left:7px; + font-family:'Target Blank'; + content:'\005E'; + } +.slide B, +.slide STRONG { + font-weight:bold; + } +.slide I, +.slide EM { + font-style:italic; + } +.slide KBD, +.slide CODE { + padding:3px 8px; + -webkit-border-radius:8px; + -moz-border-radius:8px; + border-radius:8px; + background:#FAFAA2; + -webkit-tab-size:4; + -moz-tab-size:4; + -o-tab-size:4; + tab-size:4; + font-family:Consolas, 'Droid Sans Mono', monospace; + } + +/* Quote */ +.slide BLOCKQUOTE { + font-style:italic; + } +.slide BLOCKQUOTE:before { + position:absolute; + margin:-15px 0 0 -80px; + color:#CCC; + font:200px/1 'PT Sans', sans-serif; + content:'\201C'; /* ldquo */ + } +.slide BLOCKQUOTE:after { + margin:-45px 0 45px; + display:block; + color:#444; + font-weight:bold; + content:attr(cite); + } + +/* Lists */ +.slide OL, +.slide UL { + margin:0 0 45px; + counter-reset:list; + } + .slide UL UL, + .slide OL UL, + .slide OL OL, + .slide UL OL { + margin:0 0 0 38px; + } + .slide OL > LI:before, + .slide UL > LI:before { + position:absolute; + margin-left:-120px; + width:100px; + color:#BBB; + text-align:right; + } + .slide UL > LI:before { + content:'\2022'; /* bull */ + line-height:1.1; + font-size:40px; + } + .slide OL > LI:before { + counter-increment:list; + content:counter(list)'.'; + } + +/* Code */ +.slide PRE { + margin:0 0 45px; + counter-reset:code; + white-space:normal; + } + .slide PRE CODE { + display:block; + padding:0; + background:none; + white-space:pre; + } + .slide PRE CODE:before { + position:absolute; + margin:0 0 0 -120px; + width:110px; + color:#BBB; + text-align:right; + counter-increment:code; + content:counter(code, decimal-leading-zero)'.'; + } + .slide PRE MARK { + padding:3px 8px; + -webkit-border-radius:8px; + -moz-border-radius:8px; + border-radius:8px; + } + .slide PRE MARK { + background:#FAFAA2; + color:#000; + font-style:normal; + } + .slide PRE MARK.important { + background:#C00; + color:#FFF; + font-weight:normal; + } + +/* Cover */ +.slide.cover SECTION { + background:transparent; + background-color: white; + } +.slide.cover H2 { + color:#666; + text-align:center; + font-size:84px; +} +.slide.cover H3#author { + color:#888; + text-align:right; + font-size:56px; + margin-top:24px; + margin-right:90px; +} + +.slide.cover H3#profile { + color:#888; + text-align:right; + font-size:24px; + margin-right:90px; +} + +/* Shout */ +.slide.shout SECTION:before { + display:none; + } +.slide.shout H2 { + position:absolute; + top:50%; + left:0; + width:100%; + text-align:center; + line-height:1; + font-size:150px; + -webkit-transform:translateY(-50%); + -moz-transform:translateY(-50%); + -ms-transform:translateY(-50%); + -o-transform:translateY(-50%); + transform:translateY(-50%); + } + .slide.shout H2 A[target=_blank] { + margin:0; + } + .slide.shout H2 A[target=_blank]:after { + content:''; + } + +/* Middle */ +.middle { + position:absolute; + top:50%; + left:50%; + -webkit-transform:translate(-50%, -50%); + -moz-transform:translate(-50%, -50%); + -ms-transform:translate(-50%, -50%); + -o-transform:translate(-50%, -50%); + transform:translate(-50%, -50%); + } + +/* List +---------------------------------------- */ +.list { + float:left; + padding:80px 0 80px 100px; + background:#585A5E url(../images/linen.png); + } + +/* Caption */ +.list .caption { + color:#3C3D40; + text-shadow:0 1px 1px #8D8E90; + } + .list .caption H1 { + font:bold 50px/1 'PT Sans Narrow', sans-serif; + } + +/* Slide */ +.list .slide { + position:relative; + float:left; + margin:0 50px 0 0; + padding:80px 0 0; + } + .list .slide:after { + position:absolute; + bottom:-45px; + left:57px; + color:#3C3D40; + text-shadow:0 1px 1px #8D8E90; + line-height:1; + font-weight:bold; + font-size:25px; + } + .list .slide:target:after { + text-shadow:0 -1px 1px #1F3F60; + color:#4B86C2; + } + .list .slide > DIV { + position:relative; + overflow:hidden; + width:512px; + height:320px; + box-shadow:0 0 50px #3C3D40; + border-radius:1px; + background:rgba(0, 0, 0, 0.3); + } + .list .slide > DIV:hover { + box-shadow: + 0 0 0 10px rgba(60, 61, 64, 0.6), + 0 0 50px #3C3D40; + } + .list .slide:target > DIV { + box-shadow: + 0 0 0 1px #305F8D, + 0 0 0 10px #3C7CBD, + 0 0 50px #3C3D40; + } + .list .slide SECTION { + -webkit-transform-origin:0 0; + -webkit-transform:scale(0.5); + -moz-transform-origin:0 0; + -moz-transform:scale(0.5); + -ms-transform-origin:0 0; + -ms-transform:scale(0.5); + -o-transform-origin:0 0; + -o-transform:scale(0.5); + transform-origin:0 0; + transform:scale(0.5); + } + .list .slide SECTION:after { + position:absolute; + top:0; + right:0; + bottom:0; + left:0; + content:''; + } + +/* Full +---------------------------------------- */ +.full { + position:absolute; + top:50%; + left:50%; + overflow:hidden; + margin:-320px 0 0 -512px; + width:1024px; + height:640px; + background:#000; + } + .full .caption { + display:none; + } + .full .slide { + position:absolute; + visibility:hidden; + } + .full .slide:target { + visibility:visible; + } + .full .slide:after { + position:absolute; + bottom:85px; + left:120px; + color:#BBB; + line-height:1; + } + .full .slide SECTION { + -webkit-transform:scale(1); + -moz-transform:scale(1); + -ms-transform:scale(1); + -o-transform:scale(1); + transform:scale(1); + } + .full .slide.bg { + z-index:1; + } + .full .slide.bg:after, + .full .slide.shout:after { + content:''; + } + +/* Inner Navigation */ +.full .inner > * { + opacity:0; + -webkit-transition:opacity 0.5s linear; + -moz-transition:opacity 0.5s linear; + -ms-transition:opacity 0.5s linear; + -o-transition:opacity 0.5s linear; + transition:opacity 0.5s linear; + } +.full .inner > .active { + opacity:1; + } + +/* Progress */ +.full .progress { + position:absolute; + right:118px; + bottom:49px; + left:118px; + border-radius:7px; + border:2px solid rgba(255, 255, 255, 0.2); + } + .full .progress DIV { + width:0; + height:10px; + border-radius:5px; + background:rgba(177, 177, 177, 0.4); + -webkit-transition:width 0.2s linear; + -moz-transition:width 0.2s linear; + -ms-transition:width 0.2s linear; + -o-transition:width 0.2s linear; + transition:width 0.2s linear; + } +.full .progress-off { + z-index:1; + }