# HG changeset patch # User taiki # Date 1386657093 -32400 # Node ID fea44bb81877d01b4c035ab9fd263eef6e8ba9dc # Parent 7f4128b2369a090f07d608461ad114b93e5fa95d many change diff -r 7f4128b2369a -r fea44bb81877 InformationEnglish/ieII.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/InformationEnglish/ieII.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,157 @@ + + + + + + + Presentation + + + + + + + + +
+ + + +
+

Making OS by CbC

+

Taiki Taira / 1,August,2012

+
+ +
+

I'm...

+

+ Taiki TAIRA
+ Senior, Information Engineering, school of engineering, University of Ryukyus
+ Concurrency Reliance Laboratory
+

+
+ +
+ +

Today...

+ +
+ +
+

Making Operating System

+
+ +
+

What's Operating System ?

+ +
+ +
+

Background

+

Making OS is good experience. Because programing use computer. + It is important that know computer architecture.
+ I will make OS that programer don't have to manage internal computer in detail. + And today, many core CPU is increasing rapidly.

+
+ +
+

1st,This OS is written by special language.

+
+ +
+

It's

+

Continuation based C

+

Showten 'Continuation based C' to 'CbC'.

+
+ +
+

CbC

+ +
+ +
+

2nd,this OS will have special point.

+
+ +
+

Using 'DataSegment' and 'CodeSegment'.

+
+ +
+

DataSegment and CodeSegment

+

+

CodeSegment divide processing into minimum, and can access to limited DataSegment. +

Why do I use to make this OS ?

+
+ +
+

Good point of 'DataSegment and CodeSegment'

+ +

So, It is used to make OS.

+
+ +
+

What do I study?

+

Boot OS,and memory management.

+

What do I research and use method?

+ +
+ +
+

Study plan

+ + + + + + + + + +
MONTHPLAN
AugustBoot OS and go to 64bit mode.
SeptemberStudy and plan about memory management.
OctoberMaking part of memory management.
NovemberStudy and plan about proccess management.
DecemberMaking part of proccess management.
JanuaryFinish making OS that should make OS untill senior.
FebruaryWrite thesis.
+
+ +
+

END

+
+ +
+ + + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot.zip Binary file inteligent_robot.zip has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/all-wcprops --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/images/.svn/all-wcprops Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,29 @@ +K 25 +svn:wc:ra_dav:version-url +V 29 +/svn/!svn/ver/12/trunk/images +END +google-logo-small.png +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/12/trunk/images/google-logo-small.png +END +googleio-logo.png +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/3/trunk/images/googleio-logo.png +END +colorbar.png +K 25 +svn:wc:ra_dav:version-url +V 41 +/svn/!svn/ver/3/trunk/images/colorbar.png +END +google-logo.png +K 25 +svn:wc:ra_dav:version-url +V 44 +/svn/!svn/ver/9/trunk/images/google-logo.png +END diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/entries --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/images/.svn/entries Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,164 @@ +10 + +dir +20 +http://html5slides.googlecode.com/svn/trunk/images +http://html5slides.googlecode.com/svn + + + +2011-05-20T17:19:33.425808Z +12 +mwichary@google.com + + + + + + + + + + + + + + +5963eb91-a1a4-c111-6e9c-cdd99a89fa83 + +google-logo-small.png +file + + + + +2012-05-28T15:06:38.000000Z +135f45372a8c114bf3e2aeb599e4f936 +2011-05-20T17:19:33.425808Z +12 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +8466 + +googleio-logo.png +file + + + + +2012-05-28T15:06:38.000000Z +1f7e00dc3ff015f831ce3eb5dbd23550 +2011-05-20T16:49:11.026922Z +3 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +84742 + +colorbar.png +file + + + + +2012-05-28T15:06:38.000000Z +4a80fb8dc88969ddb33e1b69d2d0127a +2011-05-20T16:49:11.026922Z +3 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +213 + +google-logo.png +file + + + + +2012-05-28T15:06:38.000000Z +e8734f1b87d204e4d325f5fc73fab31e +2011-05-20T17:14:27.670900Z +9 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +31769 + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/prop-base/colorbar.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/images/.svn/prop-base/colorbar.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/prop-base/google-logo-small.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/images/.svn/prop-base/google-logo-small.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/prop-base/google-logo.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/images/.svn/prop-base/google-logo.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 9 +image/png +END diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/prop-base/googleio-logo.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/images/.svn/prop-base/googleio-logo.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/text-base/colorbar.png.svn-base Binary file inteligent_robot/images/.svn/text-base/colorbar.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/text-base/google-logo-small.png.svn-base Binary file inteligent_robot/images/.svn/text-base/google-logo-small.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/text-base/google-logo.png.svn-base Binary file inteligent_robot/images/.svn/text-base/google-logo.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/.svn/text-base/googleio-logo.png.svn-base Binary file inteligent_robot/images/.svn/text-base/googleio-logo.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/SoftWareStack.png Binary file inteligent_robot/images/SoftWareStack.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/UEFI_structure.pdf Binary file inteligent_robot/images/UEFI_structure.pdf has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/Untitled.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/images/Untitled.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,668 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.15.0.171074 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-08-14 07:37:35 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{485, 184}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 19 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 48} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{38, 180}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 18 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 63} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{483.5, 3}, {7, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 17 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 0} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{40, 2}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 16 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 15} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{379, 129}, {110, 36}} + Class + ShapedGraphic + ID + 15 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f1 \cf0 19 - 16 bit} + + + + Bounds + {{350, 129}, {29, 36}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 AVL} + + + + Bounds + {{263, 129}, {29, 36}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 G} + + + + Bounds + {{292, 129}, {29, 36}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 D} + + + + Bounds + {{321, 129}, {29, 36}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 0} + + + + Bounds + {{40, 129}, {223, 36}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 31 - 24 bit} + + + + Bounds + {{80, 93}, {59, 36}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DPL} + + + + Bounds + {{40, 93}, {41, 36}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 P} + + + + Bounds + {{139, 93}, {41, 36}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 S} + + + + Bounds + {{180, 93}, {83, 36}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 type} + + + + Bounds + {{262, 93}, {227, 36}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 23 - 16 bit} + + + + Bounds + {{40, 57}, {449, 36}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 15 - 0 bit} + + + + Bounds + {{40, 21}, {449, 36}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Limit : 15 - 0 bit} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-08-14 07:46:29 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{172, 650}, {996, 408}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-151, 0}, {861, 253}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/code_datasegment.png Binary file inteligent_robot/images/code_datasegment.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/colorbar.png Binary file inteligent_robot/images/colorbar.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/concurrent.jpg Binary file inteligent_robot/images/concurrent.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/concurrent.png Binary file inteligent_robot/images/concurrent.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/google-logo-small.png Binary file inteligent_robot/images/google-logo-small.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/google-logo.png Binary file inteligent_robot/images/google-logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/googleio-logo.png Binary file inteligent_robot/images/googleio-logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/one_of_GDT_descriptor.png Binary file inteligent_robot/images/one_of_GDT_descriptor.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/images/os_plan.png Binary file inteligent_robot/images/os_plan.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/README.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/README.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,105 @@ + + +

HTML5 Slide Template

+ +

Configuring the slides

+

Much of the deck is customized by changing the settings in slide_config.js. +Some of the customizations include the title, Analytics tracking ID, speaker +information (name, social urls, blog), web fonts to load, themes, and other +general behavior.

+

Customizing the #io12 hash

+

The bottom of the slides include #io12 by default. If you'd like to change +this, please update the variable $social-tags: '#io12'; in +/theme/scss/default.scss.

+

See the next section on "Editing CSS" before you go editing things.

+

Editing CSS

+

Compass is a CSS preprocessor used to compile +SCSS/SASS into CSS. We chose SCSS for the new slide deck for maintainability, +easier browser compatibility, and because...it's the future!

+

That said, if not comfortable working with SCSS or don't want to learn something +new, not a problem. The generated .css files can already be found in +(see /theme/css). You can just edit those and bypass SCSS altogether. +However, our recommendation is to use Compass. It's super easy to install and use.

+

Installing Compass and making changes

+

First, install compass:

+
sudo gem update --system
+sudo gem install compass
+
+

Next, you'll want to watch for changes to the exiting .scss files in /theme/scss +and any new one you add:

+
$ cd io-2012-slides
+$ compass watch
+
+

This command automatically recompiles the .scss file when you make a change. +Its corresponding .css file is output to /theme/css. Slick.

+

By default, config.rb in the main project folder outputs minified +.css. It's a best practice after all! However, if you want unminified files, +run watch with the style output flag:

+
compass watch -s expanded
+
+

Note: You should not need to edit _base.scss.

+

Running the slides

+

The slides can be run locally from file:// making development easy :)

+

Running from a web server

+

If at some point you should need a web server, use serve.sh. It will +launch a simple one and point your default browser to http://localhost:8000/template.html:

+
$ cd io-2012-slides
+$ ./serve.sh
+
+

You can also specify a custom port:

+
$ ./serve.sh 8080
+
+

Presenter mode

+

The slides contain a presenter mode feature (beta) to view + control the slides +from a popup window.

+

To enable presenter mode, add presentme=true to the URL: http://localhost:8000/template.html?presentme=true

+

To disable presenter mode, hit http://localhost:8000/template.html?presentme=false

+

Presenter mode is sticky, so refreshing the page will persist your settings.

+
+

That's all she wrote!

diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/README.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,130 @@ + + +

HTML5 Slide Template

+ +## Configuring the slides + +Much of the deck is customized by changing the settings in [`slide_config.js`](slide_config.js). +Some of the customizations include the title, Analytics tracking ID, speaker +information (name, social urls, blog), web fonts to load, themes, and other +general behavior. + +### Customizing the `#io12` hash + +The bottom of the slides include `#io12` by default. If you'd like to change +this, please update the variable `$social-tags: '#io12';` in +[`/theme/scss/default.scss`](theme/scss/default.scss). + +See the next section on "Editing CSS" before you go editing things. + +## Editing CSS + +[Compass](http://compass-style.org/install/) is a CSS preprocessor used to compile +SCSS/SASS into CSS. We chose SCSS for the new slide deck for maintainability, +easier browser compatibility, and because...it's the future! + +That said, if not comfortable working with SCSS or don't want to learn something +new, not a problem. The generated .css files can already be found in +(see [`/theme/css`](theme/css)). You can just edit those and bypass SCSS altogether. +However, our recommendation is to use Compass. It's super easy to install and use. + +### Installing Compass and making changes + +First, install compass: + + sudo gem update --system + sudo gem install compass + +Next, you'll want to watch for changes to the exiting .scss files in [`/theme/scss`](theme/scss) +and any new one you add: + + $ cd io-2012-slides + $ compass watch + +This command automatically recompiles the .scss file when you make a change. +Its corresponding .css file is output to [`/theme/css`](theme/css). Slick. + +By default, [`config.rb`](config.rb) in the main project folder outputs minified +.css. It's a best practice after all! However, if you want unminified files, +run watch with the style output flag: + + compass watch -s expanded + +*Note:* You should not need to edit [`_base.scss`](theme/scss/_base.scss). + +## Running the slides + +The slides can be run locally from `file://` making development easy :) + +### Running from a web server + +If at some point you should need a web server, use [`serve.sh`](serve.sh). It will +launch a simple one and point your default browser to [`http://localhost:8000/template.html`](http://localhost:8000/template.html): + + $ cd io-2012-slides + $ ./serve.sh + +You can also specify a custom port: + + $ ./serve.sh 8080 + +### Presenter mode + +The slides contain a presenter mode feature (beta) to view + control the slides +from a popup window. + +To enable presenter mode, add `presentme=true` to the URL: [http://localhost:8000/template.html?presentme=true](http://localhost:8000/template.html?presentme=true) + +To disable presenter mode, hit [http://localhost:8000/template.html?presentme=false](http://localhost:8000/template.html?presentme=false) + +Presenter mode is sticky, so refreshing the page will persist your settings. + +--- + +That's all she wrote! diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/app.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/app.yaml Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,23 @@ +application: my-io-talk +version: 1 +runtime: python27 +api_version: 1 +threadsafe: yes + +handlers: +- url: / + static_files: template.html + upload: template\.html + +- url: /slide_config\.js + static_files: slide_config.js + upload: slide_config\.js + +- url: /js + static_dir: js + +- url: /theme + static_dir: theme + +- url: /images + static_dir: images diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/config.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/config.rb Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,24 @@ +# Require any additional compass plugins here. + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "theme/css" +sass_dir = "theme/scss" +images_dir = "images" +javascripts_dir = "js" + +# You can select your preferred output style here (can be overridden via the command line): +output_style = :compressed #:expanded or :nested or :compact or :compressed + +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/barchart.png Binary file inteligent_robot/io2012slides/images/barchart.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/chart.png Binary file inteligent_robot/io2012slides/images/chart.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/chrome-logo-tiny.png Binary file inteligent_robot/io2012slides/images/chrome-logo-tiny.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/google_developers_icon_128.png Binary file inteligent_robot/io2012slides/images/google_developers_icon_128.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/google_developers_logo.png Binary file inteligent_robot/io2012slides/images/google_developers_logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/google_developers_logo_tiny.png Binary file inteligent_robot/io2012slides/images/google_developers_logo_tiny.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/google_developers_logo_white.png Binary file inteligent_robot/io2012slides/images/google_developers_logo_white.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/io2012_logo.png Binary file inteligent_robot/io2012slides/images/io2012_logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/images/sky.jpg Binary file inteligent_robot/io2012slides/images/sky.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/hammer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/hammer.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,586 @@ +/* + * Hammer.JS + * version 0.4 + * author: Eight Media + * https://github.com/EightMedia/hammer.js + */ +function Hammer(element, options, undefined) +{ + var self = this; + + var defaults = { + // prevent the default event or not... might be buggy when false + prevent_default : false, + css_hacks : true, + + drag : true, + drag_vertical : true, + drag_horizontal : true, + // minimum distance before the drag event starts + drag_min_distance : 20, // pixels + + // pinch zoom and rotation + transform : true, + scale_treshold : 0.1, + rotation_treshold : 15, // degrees + + tap : true, + tap_double : true, + tap_max_interval : 300, + tap_double_distance: 20, + + hold : true, + hold_timeout : 500 + }; + options = mergeObject(defaults, options); + + // some css hacks + (function() { + if(!options.css_hacks) { + return false; + } + + var vendors = ['webkit','moz','ms','o','']; + var css_props = { + "userSelect": "none", + "touchCallout": "none", + "userDrag": "none", + "tapHighlightColor": "rgba(0,0,0,0)" + }; + + var prop = ''; + for(var i = 0; i < vendors.length; i++) { + for(var p in css_props) { + prop = p; + if(vendors[i]) { + prop = vendors[i] + prop.substring(0, 1).toUpperCase() + prop.substring(1); + } + element.style[ prop ] = css_props[p]; + } + } + })(); + + // holds the distance that has been moved + var _distance = 0; + + // holds the exact angle that has been moved + var _angle = 0; + + // holds the diraction that has been moved + var _direction = 0; + + // holds position movement for sliding + var _pos = { }; + + // how many fingers are on the screen + var _fingers = 0; + + var _first = false; + + var _gesture = null; + var _prev_gesture = null; + + var _touch_start_time = null; + var _prev_tap_pos = {x: 0, y: 0}; + var _prev_tap_end_time = null; + + var _hold_timer = null; + + var _offset = {}; + + // keep track of the mouse status + var _mousedown = false; + + var _event_start; + var _event_move; + var _event_end; + + + /** + * angle to direction define + * @param float angle + * @return string direction + */ + this.getDirectionFromAngle = function( angle ) + { + var directions = { + down: angle >= 45 && angle < 135, //90 + left: angle >= 135 || angle <= -135, //180 + up: angle < -45 && angle > -135, //270 + right: angle >= -45 && angle <= 45 //0 + }; + + var direction, key; + for(key in directions){ + if(directions[key]){ + direction = key; + break; + } + } + return direction; + }; + + + /** + * count the number of fingers in the event + * when no fingers are detected, one finger is returned (mouse pointer) + * @param event + * @return int fingers + */ + function countFingers( event ) + { + // there is a bug on android (until v4?) that touches is always 1, + // so no multitouch is supported, e.g. no, zoom and rotation... + return event.touches ? event.touches.length : 1; + } + + + /** + * get the x and y positions from the event object + * @param event + * @return array [{ x: int, y: int }] + */ + function getXYfromEvent( event ) + { + event = event || window.event; + + // no touches, use the event pageX and pageY + if(!event.touches) { + var doc = document, + body = doc.body; + + return [{ + x: event.pageX || event.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && doc.clientLeft || 0 ), + y: event.pageY || event.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && doc.clientTop || 0 ) + }]; + } + // multitouch, return array with positions + else { + var pos = [], src; + for(var t=0, len=event.touches.length; t options.drag_min_distance) || _gesture == 'drag') { + // calculate the angle + _angle = getAngle(_pos.start[0], _pos.move[0]); + _direction = self.getDirectionFromAngle(_angle); + + // check the movement and stop if we go in the wrong direction + var is_vertical = (_direction == 'up' || _direction == 'down'); + if(((is_vertical && !options.drag_vertical) || (!is_vertical && !options.drag_horizontal)) + && (_distance > options.drag_min_distance)) { + return; + } + + _gesture = 'drag'; + + var position = { x: _pos.move[0].x - _offset.left, + y: _pos.move[0].y - _offset.top }; + + var event_obj = { + originalEvent : event, + position : position, + direction : _direction, + distance : _distance, + distanceX : _distance_x, + distanceY : _distance_y, + angle : _angle + }; + + // on the first time trigger the start event + if(_first) { + triggerEvent("dragstart", event_obj); + + _first = false; + } + + // normal slide event + triggerEvent("drag", event_obj); + + cancelEvent(event); + } + }, + + + // transform gesture + // fired on touchmove + transform : function(event) + { + if(options.transform) { + var scale = event.scale || 1; + var rotation = event.rotation || 0; + + if(countFingers(event) != 2) { + return false; + } + + if(_gesture != 'drag' && + (_gesture == 'transform' || Math.abs(1-scale) > options.scale_treshold + || Math.abs(rotation) > options.rotation_treshold)) { + _gesture = 'transform'; + + _pos.center = { x: ((_pos.move[0].x + _pos.move[1].x) / 2) - _offset.left, + y: ((_pos.move[0].y + _pos.move[1].y) / 2) - _offset.top }; + + var event_obj = { + originalEvent : event, + position : _pos.center, + scale : scale, + rotation : rotation + }; + + // on the first time trigger the start event + if(_first) { + triggerEvent("transformstart", event_obj); + _first = false; + } + + triggerEvent("transform", event_obj); + + cancelEvent(event); + + return true; + } + } + + return false; + }, + + + // tap and double tap gesture + // fired on touchend + tap : function(event) + { + // compare the kind of gesture by time + var now = new Date().getTime(); + var touch_time = now - _touch_start_time; + + // dont fire when hold is fired + if(options.hold && !(options.hold && options.hold_timeout > touch_time)) { + return; + } + + // when previous event was tap and the tap was max_interval ms ago + var is_double_tap = (function(){ + if (_prev_tap_pos && options.tap_double && _prev_gesture == 'tap' && (_touch_start_time - _prev_tap_end_time) < options.tap_max_interval) { + var x_distance = Math.abs(_prev_tap_pos[0].x - _pos.start[0].x); + var y_distance = Math.abs(_prev_tap_pos[0].y - _pos.start[0].y); + return (_prev_tap_pos && _pos.start && Math.max(x_distance, y_distance) < options.tap_double_distance); + + } + return false; + })(); + + if(is_double_tap) { + _gesture = 'double_tap'; + _prev_tap_end_time = null; + + triggerEvent("doubletap", { + originalEvent : event, + position : _pos.start + }); + cancelEvent(event); + } + + // single tap is single touch + else { + _gesture = 'tap'; + _prev_tap_end_time = now; + _prev_tap_pos = _pos.start; + + if(options.tap) { + triggerEvent("tap", { + originalEvent : event, + position : _pos.start + }); + cancelEvent(event); + } + } + + } + + }; + + + function handleEvents(event) + { + switch(event.type) + { + case 'mousedown': + case 'touchstart': + _pos.start = getXYfromEvent(event); + _touch_start_time = new Date().getTime(); + _fingers = countFingers(event); + _first = true; + _event_start = event; + + // borrowed from jquery offset https://github.com/jquery/jquery/blob/master/src/offset.js + var box = element.getBoundingClientRect(); + var clientTop = element.clientTop || document.body.clientTop || 0; + var clientLeft = element.clientLeft || document.body.clientLeft || 0; + var scrollTop = window.pageYOffset || element.scrollTop || document.body.scrollTop; + var scrollLeft = window.pageXOffset || element.scrollLeft || document.body.scrollLeft; + + _offset = { + top: box.top + scrollTop - clientTop, + left: box.left + scrollLeft - clientLeft + }; + + _mousedown = true; + + // hold gesture + gestures.hold(event); + + if(options.prevent_default) { + cancelEvent(event); + } + break; + + case 'mousemove': + case 'touchmove': + if(!_mousedown) { + return false; + } + _event_move = event; + _pos.move = getXYfromEvent(event); + + if(!gestures.transform(event)) { + gestures.drag(event); + } + break; + + case 'mouseup': + case 'mouseout': + case 'touchcancel': + case 'touchend': + if(!_mousedown || (_gesture != 'transform' && event.touches && event.touches.length > 0)) { + return false; + } + + _mousedown = false; + _event_end = event; + + // drag gesture + // dragstart is triggered, so dragend is possible + if(_gesture == 'drag') { + triggerEvent("dragend", { + originalEvent : event, + direction : _direction, + distance : _distance, + angle : _angle + }); + } + + // transform + // transformstart is triggered, so transformed is possible + else if(_gesture == 'transform') { + triggerEvent("transformend", { + originalEvent : event, + position : _pos.center, + scale : event.scale, + rotation : event.rotation + }); + } + else { + gestures.tap(_event_start); + } + + _prev_gesture = _gesture; + + // reset vars + reset(); + break; + } + } + + + // bind events for touch devices + // except for windows phone 7.5, it doesnt support touch events..! + if('ontouchstart' in window) { + element.addEventListener("touchstart", handleEvents, false); + element.addEventListener("touchmove", handleEvents, false); + element.addEventListener("touchend", handleEvents, false); + element.addEventListener("touchcancel", handleEvents, false); + } + // for non-touch + else { + + if(element.addEventListener){ // prevent old IE errors + element.addEventListener("mouseout", function(event) { + if(!isInsideHammer(element, event.relatedTarget)) { + handleEvents(event); + } + }, false); + element.addEventListener("mouseup", handleEvents, false); + element.addEventListener("mousedown", handleEvents, false); + element.addEventListener("mousemove", handleEvents, false); + + // events for older IE + }else if(document.attachEvent){ + element.attachEvent("onmouseout", function(event) { + if(!isInsideHammer(element, event.relatedTarget)) { + handleEvents(event); + } + }, false); + element.attachEvent("onmouseup", handleEvents); + element.attachEvent("onmousedown", handleEvents); + element.attachEvent("onmousemove", handleEvents); + } + } + + + /** + * find if element is (inside) given parent element + * @param object element + * @param object parent + * @return bool inside + */ + function isInsideHammer(parent, child) { + // get related target for IE + if(!child && window.event && window.event.toElement){ + child = window.event.toElement; + } + + if(parent === child){ + return true; + } + + // loop over parentNodes of child until we find hammer element + if(child){ + var node = child.parentNode; + while(node !== null){ + if(node === parent){ + return true; + }; + node = node.parentNode; + } + } + return false; + } + + + /** + * merge 2 objects into a new object + * @param object obj1 + * @param object obj2 + * @return object merged object + */ + function mergeObject(obj1, obj2) { + var output = {}; + + if(!obj2) { + return obj1; + } + + for (var prop in obj1) { + if (prop in obj2) { + output[prop] = obj2[prop]; + } else { + output[prop] = obj1[prop]; + } + } + return output; + } + + function isFunction( obj ){ + return Object.prototype.toString.call( obj ) == "[object Function]"; + } +} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/modernizr.custom.45394.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/modernizr.custom.45394.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,4 @@ +/* Modernizr 2.5.3 (Custom Build) | MIT & BSD + * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexbox_legacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-mq-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function C(a){i.cssText=a}function D(a,b){return C(m.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a)if(i[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),H(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d",a,""].join(""),k.id=g,(l?k:m).innerHTML+=h,m.appendChild(k),l||(m.style.background="",f.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},y=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return x("@media "+b+" { #"+g+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e});var J=function(c,d){var f=c.join(""),g=d.length;x(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",m.join("touch-enabled),("),g,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",m.join("transform-3d),("),g,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',k,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);r.flexbox=function(){return I("flexOrder")},r["flexbox-legacy"]=function(){return I("boxDirection")},r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){try{var d=b.createElement("canvas"),e;e=!(!a.WebGLRenderingContext||!d.getContext("experimental-webgl")&&!d.getContext("webgl")),d=c}catch(f){e=!1}return e},r.touch=function(){return e.touch},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){return!!a.openDatabase},r.indexedDB=function(){return!!I("indexedDB",a)},r.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return!!a.history&&!!history.pushState},r.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},r.websockets=function(){for(var b=-1,c=o.length;++b0&&g.splice(0,a);setTimeout(function(){b.parentNode.removeChild(b)},15)}}function m(a){var b,c;a.setAttribute("data-orderloaded","loaded");for(a=0;c=h[a];a++)if((b=i[c])&&b.getAttribute("data-orderloaded")==="loaded")delete i[c],require.addScriptToDom(b);else break;a>0&&h.splice(0, +a)}var f=typeof document!=="undefined"&&typeof window!=="undefined"&&document.createElement("script"),n=f&&(f.async||window.opera&&Object.prototype.toString.call(window.opera)==="[object Opera]"||"MozAppearance"in document.documentElement.style),o=f&&f.readyState==="uninitialized",l=/^(complete|loaded)$/,g=[],j={},i={},h=[],f=null;define({version:"1.0.5",load:function(a,b,c,e){var d;b.nameToUrl?(d=b.nameToUrl(a,null),require.s.skipAsync[d]=!0,n||e.isBuild?b([a],c):o?(e=require.s.contexts._,!e.urlFetched[d]&& +!e.loaded[a]&&(e.urlFetched[d]=!0,require.resourcesReady(!1),e.scriptCount+=1,d=require.attach(d,e,a,null,null,m),i[a]=d,h.push(a)),b([a],c)):b.specified(a)?b([a],c):(g.push({name:a,req:b,onLoad:c}),require.attach(d,null,a,k,"script/cache"))):b([a],c)}})})(); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/polyfills/classList.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/polyfills/classList.min.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +/* @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/ +"use strict";if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(a){var f="classList",d="prototype",e=(a.HTMLElement||a.Element)[d],g=Object;strTrim=String[d].trim||function(){return this.replace(/^\s+|\s+$/g,"")},arrIndexOf=Array[d].indexOf||function(k){for(var j=0,h=this.length;j")&&c[0]);return a>4?a:!1}();return a},m.isInternetExplorer=function(){var a=m.isInternetExplorer.cached=typeof m.isInternetExplorer.cached!="undefined"?m.isInternetExplorer.cached:Boolean(m.getInternetExplorerMajorVersion());return a},m.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8)},m.enabled=!m.emulated.pushState,m.bugs={setHash:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<7)},m.isEmptyObject=function(a){for(var b in a)return!1;return!0},m.cloneObject=function(a){var b,c;return a?(b=k.stringify(a),c=k.parse(b)):c={},c},m.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;return a+="/",a},m.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";return a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/"),c},m.getBaseUrl=function(){var a=m.getBaseHref()||m.getBasePageUrl()||m.getRootUrl();return a},m.getPageUrl=function(){var a=m.getState(!1,!1),b=(a||{}).url||d.location.href,c;return c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"}),c},m.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},m.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);return b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=m.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=m.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=m.getPageUrl().replace(/[\?#].*/,"")+a:b?c=m.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=m.getBasePageUrl()+a.replace(/^(\.\/)+/,"")),c.replace(/\#$/,"")},m.getShortUrl=function(a){var b=a,c=m.getBaseUrl(),d=m.getRootUrl();return m.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),m.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),b},m.store={},m.idToState=m.idToState||{},m.stateToId=m.stateToId||{},m.urlToId=m.urlToId||{},m.storedStates=m.storedStates||[],m.savedStates=m.savedStates||[],m.normalizeStore=function(){m.store.idToState=m.store.idToState||{},m.store.urlToId=m.store.urlToId||{},m.store.stateToId=m.store.stateToId||{}},m.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=m.getLastSavedState();return!c&&b&&(c=m.createStateObject()),a&&(c=m.cloneObject(c),c.url=c.cleanUrl||c.url),c},m.getIdByState=function(a){var b=m.extractId(a.url),c;if(!b){c=m.getStateString(a);if(typeof m.stateToId[c]!="undefined")b=m.stateToId[c];else if(typeof m.store.stateToId[c]!="undefined")b=m.store.stateToId[c];else{for(;;){b=(new Date).getTime()+String(Math.random()).replace(/\D/g,"");if(typeof m.idToState[b]=="undefined"&&typeof m.store.idToState[b]=="undefined")break}m.stateToId[c]=b,m.idToState[b]=a}}return b},m.normalizeState=function(a){var b,c;if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};b={},b.normalized=!0,b.title=a.title||"",b.url=m.getFullUrl(m.unescapeString(a.url||d.location.href)),b.hash=m.getShortUrl(b.url),b.data=m.cloneObject(a.data),b.id=m.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl,c=!m.isEmptyObject(b.data);if(b.title||c)b.hash=m.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;return b.hashedUrl=m.getFullUrl(b.hash),(m.emulated.pushState||m.bugs.safariPoll)&&m.hasUrlDuplicate(b)&&(b.url=b.hashedUrl),b},m.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};return d=m.normalizeState(d),d},m.getStateById=function(a){a=String(a);var c=m.idToState[a]||m.store.idToState[a]||b;return c},m.getStateString=function(a){var b,c,d;return b=m.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c),d},m.getStateId=function(a){var b,c;return b=m.normalizeState(a),c=b.id,c},m.getHashByState=function(a){var b,c;return b=m.normalizeState(a),c=b.hash,c},m.extractId=function(a){var b,c,d;return c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"",b||!1},m.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},m.extractState=function(a,b){var c=null,d,e;return b=b||!1,d=m.extractId(a),d&&(c=m.getStateById(d)),c||(e=m.getFullUrl(a),d=m.getIdByUrl(e)||!1,d&&(c=m.getStateById(d)),!c&&b&&!m.isTraditionalAnchor(a)&&(c=m.createStateObject(null,null,e))),c},m.getIdByUrl=function(a){var c=m.urlToId[a]||m.store.urlToId[a]||b;return c},m.getLastSavedState=function(){return m.savedStates[m.savedStates.length-1]||b},m.getLastStoredState=function(){return m.storedStates[m.storedStates.length-1]||b},m.hasUrlDuplicate=function(a){var b=!1,c;return c=m.extractState(a.url),b=c&&c.id!==a.id,b},m.storeState=function(a){return m.urlToId[a.url]=a.id,m.storedStates.push(m.cloneObject(a)),a},m.isLastSavedState=function(a){var b=!1,c,d,e;return m.savedStates.length&&(c=a.id,d=m.getLastSavedState(),e=d.id,b=c===e),b},m.saveState=function(a){return m.isLastSavedState(a)?!1:(m.savedStates.push(m.cloneObject(a)),!0)},m.getStateByIndex=function(a){var b=null;return typeof a=="undefined"?b=m.savedStates[m.savedStates.length-1]:a<0?b=m.savedStates[m.savedStates.length+a]:b=m.savedStates[a],b},m.getHash=function(){var a=m.unescapeHash(d.location.hash);return a},m.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},m.unescapeHash=function(a){var b=m.normalizeHash(a);return b=m.unescapeString(b),b},m.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},m.setHash=function(a,b){var c,e,f;return b!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.setHash,args:arguments,queue:b}),!1):(c=m.escapeHash(a),m.busy(!0),e=m.extractState(a,!0),e&&!m.emulated.pushState?m.pushState(e.data,e.title,e.url,!1):d.location.hash!==c&&(m.bugs.setHash?(f=m.getPageUrl(),m.pushState(null,null,f+"#"+c,!1)):d.location.hash=c),m)},m.escapeHash=function(b){var c=m.normalizeHash(b);return c=a.escape(c),m.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),c},m.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return b=m.unescapeHash(b),b},m.setTitle=function(a){var b=a.title,c;b||(c=m.getStateByIndex(0),c&&c.url===a.url&&(b=c.title||m.options.initialTitle));try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}return d.title=b,m},m.queues=[],m.busy=function(a){typeof a!="undefined"?m.busy.flag=a:typeof m.busy.flag=="undefined"&&(m.busy.flag=!1);if(!m.busy.flag){h(m.busy.timeout);var b=function(){var a,c,d;if(m.busy.flag)return;for(a=m.queues.length-1;a>=0;--a){c=m.queues[a];if(c.length===0)continue;d=c.shift(),m.fireQueueItem(d),m.busy.timeout=g(b,m.options.busyDelay)}};m.busy.timeout=g(b,m.options.busyDelay)}return m.busy.flag},m.busy.flag=!1,m.fireQueueItem=function(a){return a.callback.apply(a.scope||m,a.args||[])},m.pushQueue=function(a){return m.queues[a.queue||0]=m.queues[a.queue||0]||[],m.queues[a.queue||0].push(a),m},m.queue=function(a,b){return typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),m.busy()?m.pushQueue(a):m.fireQueueItem(a),m},m.clearQueue=function(){return m.busy.flag=!1,m.queues=[],m},m.stateChanged=!1,m.doubleChecker=!1,m.doubleCheckComplete=function(){return m.stateChanged=!0,m.doubleCheckClear(),m},m.doubleCheckClear=function(){return m.doubleChecker&&(h(m.doubleChecker),m.doubleChecker=!1),m},m.doubleCheck=function(a){return m.stateChanged=!1,m.doubleCheckClear(),m.bugs.ieDoubleCheck&&(m.doubleChecker=g(function(){return m.doubleCheckClear(),m.stateChanged||a(),!0},m.options.doubleCheckInterval)),m},m.safariStatePoll=function(){var b=m.extractState(d.location.href),c;if(!m.isLastSavedState(b))c=b;else return;return c||(c=m.createStateObject()),m.Adapter.trigger(a,"popstate"),m},m.back=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.back,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.back(!1)}),n.go(-1),!0)},m.forward=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.forward,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.forward(!1)}),n.go(1),!0)},m.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)m.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)m.back(b)}return m};if(m.emulated.pushState){var o=function(){};m.pushState=m.pushState||o,m.replaceState=m.replaceState||o}else m.onPopState=function(b,c){var e=!1,f=!1,g,h;return m.doubleCheckComplete(),g=m.getHash(),g?(h=m.extractState(g||d.location.href,!0),h?m.replaceState(h.data,h.title,h.url,!1):(m.Adapter.trigger(a,"anchorchange"),m.busy(!1)),m.expectedStateId=!1,!1):(e=m.Adapter.extractEventData("state",b,c)||!1,e?f=m.getStateById(e):m.expectedStateId?f=m.getStateById(m.expectedStateId):f=m.extractState(d.location.href),f||(f=m.createStateObject(null,null,d.location.href)),m.expectedStateId=!1,m.isLastSavedState(f)?(m.busy(!1),!1):(m.storeState(f),m.saveState(f),m.setTitle(f),m.Adapter.trigger(a,"statechange"),m.busy(!1),!0))},m.Adapter.bind(a,"popstate",m.onPopState),m.pushState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.pushState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.pushState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0},m.replaceState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.replaceState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.replaceState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0};if(f){try{m.store=k.parse(f.getItem("History.store"))||{}}catch(p){m.store={}}m.normalizeStore()}else m.store={},m.normalizeStore();m.Adapter.bind(a,"beforeunload",m.clearAllIntervals),m.Adapter.bind(a,"unload",m.clearAllIntervals),m.saveState(m.storeState(m.extractState(d.location.href,!0))),f&&(m.onUnload=function(){var a,b;try{a=k.parse(f.getItem("History.store"))||{}}catch(c){a={}}a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in m.idToState){if(!m.idToState.hasOwnProperty(b))continue;a.idToState[b]=m.idToState[b]}for(b in m.urlToId){if(!m.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=m.urlToId[b]}for(b in m.stateToId){if(!m.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=m.stateToId[b]}m.store=a,m.normalizeStore(),f.setItem("History.store",k.stringify(a))},m.intervalList.push(i(m.onUnload,m.options.storeInterval)),m.Adapter.bind(a,"beforeunload",m.onUnload),m.Adapter.bind(a,"unload",m.onUnload));if(!m.emulated.pushState){m.bugs.safariPoll&&m.intervalList.push(i(m.safariStatePoll,m.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")m.Adapter.bind(a,"hashchange",function(){m.Adapter.trigger(a,"popstate")}),m.getHash()&&m.Adapter.onDomLoad(function(){m.Adapter.trigger(a,"hashchange")})}},m.init()})(window) \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-apollo.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-apollo.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, +null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-clj.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-clj.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,18 @@ +/* + Copyright (C) 2011 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a], +["typ",/^:[\dA-Za-z-]+/]]),["clj"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-css.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-css.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", +/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-go.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-go.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-hs.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-hs.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n \r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/, +null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-lisp.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-lisp.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a], +["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-lua.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-lua.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i], +["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-ml.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-ml.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], +["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-n.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-n.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,4 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/, +a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, +a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-proto.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-proto.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-scala.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-scala.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], +["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-sql.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-sql.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i, +null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-tex.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-tex.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-vb.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-vb.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r \xa0

"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“”'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i, +null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-vhdl.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-vhdl.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, +null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i], +["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-wiki.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-wiki.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t \xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); +PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-xq.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-xq.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[\w-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^@[\w-]+/],["tag",/^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["com",/^\(:[\S\s]*?:\)/],["pln",/^[(),/;[\]{}]$/],["str",/^(?:"(?:[^"\\{]|\\[\S\s])*(?:"|$)|'(?:[^'\\{]|\\[\S\s])*(?:'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/], +["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/], +["pln",/^[\w:-]+/],["pln",/^[\t\n\r \xa0]+/]]),["xq","xquery"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/lang-yaml.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/lang-yaml.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/prettify.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/prettify.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/prettify/prettify.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/prettify/prettify.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p0&&(g.splice(m-1,2),m-=2);m=q.pkgs[g=b[0]];b=b.join("/");m&&b===g+"/"+m.main&&(b=g)}else b.indexOf("./")=== +0&&(b=b.substring(2));return b}function l(b,f){var g=b?b.indexOf("!"):-1,m=null,a=f?f.name:null,h=b,e,d;g!==-1&&(m=b.substring(0,g),b=b.substring(g+1,b.length));m&&(m=c(m,a));b&&(m?e=(g=n[m])&&g.normalize?g.normalize(b,function(b){return c(b,a)}):c(b,a):(e=c(b,a),d=G[e],d||(d=i.nameToUrl(b,null,f),G[e]=d)));return{prefix:m,name:e,parentMap:f,url:d,originalName:h,fullName:m?m+"!"+(e||""):e}}function j(){var b=!0,f=q.priorityWait,g,a;if(f){for(a=0;g=f[a];a++)if(!s[g]){b=!1;break}b&&delete q.priorityWait}return b} +function k(b,f,g){return function(){var a=ha.call(arguments,0),c;if(g&&K(c=a[a.length-1]))c.__requireJsBuild=!0;a.push(f);return b.apply(null,a)}}function t(b,f,g){f=k(g||i.require,b,f);$(f,{nameToUrl:k(i.nameToUrl,b),toUrl:k(i.toUrl,b),defined:k(i.requireDefined,b),specified:k(i.requireSpecified,b),isBrowser:d.isBrowser});return f}function p(b){var f,g,a,c=b.callback,h=b.map,e=h.fullName,ca=b.deps;a=b.listeners;var j=q.requireExecCb||d.execCb;if(c&&K(c)){if(q.catchError.define)try{g=j(e,b.callback, +ca,n[e])}catch(k){f=k}else g=j(e,b.callback,ca,n[e]);if(e)(c=b.cjsModule)&&c.exports!==r&&c.exports!==n[e]?g=n[e]=b.cjsModule.exports:g===r&&b.usingExports?g=n[e]:(n[e]=g,H[e]&&(T[e]=!0))}else e&&(g=n[e]=c,H[e]&&(T[e]=!0));if(x[b.id])delete x[b.id],b.isDone=!0,i.waitCount-=1,i.waitCount===0&&(J=[]);delete M[e];if(d.onResourceLoad&&!b.placeholder)d.onResourceLoad(i,h,b.depArray);if(f)return g=(e?l(e).url:"")||f.fileName||f.sourceURL,a=f.moduleTree,f=P("defineerror",'Error evaluating module "'+e+'" at location "'+ +g+'":\n'+f+"\nfileName:"+g+"\nlineNumber: "+(f.lineNumber||f.line),f),f.moduleName=e,f.moduleTree=a,d.onError(f);for(f=0;c=a[f];f++)c(g);return r}function u(b,f){return function(g){b.depDone[f]||(b.depDone[f]=!0,b.deps[f]=g,b.depCount-=1,b.depCount||p(b))}}function o(b,f){var g=f.map,a=g.fullName,c=g.name,h=N[b]||(N[b]=n[b]),e;if(!f.loading)f.loading=!0,e=function(b){f.callback=function(){return b};p(f);s[f.id]=!0;A()},e.fromText=function(b,f){var g=Q;s[b]=!1;i.scriptCount+=1;i.fake[b]=!0;g&&(Q=!1); +d.exec(f);g&&(Q=!0);i.completeLoad(b)},a in n?e(n[a]):h.load(c,t(g.parentMap,!0,function(b,a){var c=[],e,m;for(e=0;m=b[e];e++)m=l(m,g.parentMap),b[e]=m.fullName,m.prefix||c.push(b[e]);f.moduleDeps=(f.moduleDeps||[]).concat(c);return i.require(b,a)}),e,q)}function y(b){x[b.id]||(x[b.id]=b,J.push(b),i.waitCount+=1)}function D(b){this.listeners.push(b)}function v(b,f){var g=b.fullName,a=b.prefix,c=a?N[a]||(N[a]=n[a]):null,h,e;g&&(h=M[g]);if(!h&&(e=!0,h={id:(a&&!c?O++ +"__p@:":"")+(g||"__r@"+O++),map:b, +depCount:0,depDone:[],depCallbacks:[],deps:[],listeners:[],add:D},B[h.id]=!0,g&&(!a||N[a])))M[g]=h;a&&!c?(g=l(a),a in n&&!n[a]&&(delete n[a],delete R[g.url]),a=v(g,!0),a.add(function(){var f=l(b.originalName,b.parentMap),f=v(f,!0);h.placeholder=!0;f.add(function(b){h.callback=function(){return b};p(h)})})):e&&f&&(s[h.id]=!1,i.paused.push(h),y(h));return h}function C(b,f,a,c){var b=l(b,c),d=b.name,h=b.fullName,e=v(b),j=e.id,k=e.deps,o;if(h){if(h in n||s[j]===!0||h==="jquery"&&q.jQuery&&q.jQuery!== +a().fn.jquery)return;B[j]=!0;s[j]=!0;h==="jquery"&&a&&W(a())}e.depArray=f;e.callback=a;for(a=0;a0)return r;if(q.priorityWait)if(j())A();else return r;for(h in s)if(!(h in L)&&(c=!0,!s[h]))if(b)a+=h+" ";else if(l=!0,h.indexOf("!")===-1){k=[];break}else(e=M[h]&&M[h].moduleDeps)&&k.push.apply(k,e);if(!c&&!i.waitCount)return r;if(b&&a)return b=P("timeout","Load timeout for modules: "+a),b.requireType="timeout",b.requireModules=a,b.contextName=i.contextName,d.onError(b); +if(l&&k.length)for(a=0;h=x[k[a]];a++)if(h=F(h,{})){z(h,{});break}if(!b&&(l||i.scriptCount)){if((I||da)&&!X)X=setTimeout(function(){X=0;E()},50);return r}if(i.waitCount){for(a=0;h=J[a];a++)z(h,{});i.paused.length&&A();Y<5&&(Y+=1,E())}Y=0;d.checkReadyState();return r}var i,A,q={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},catchError:{}},S=[],B={require:!0,exports:!0,module:!0},G={},n={},s={},x={},J=[],R={},O=0,M={},N={},H={},T={},Z=0;W=function(b){if(!i.jQuery&&(b=b||(typeof jQuery!=="undefined"?jQuery: +null))&&!(q.jQuery&&b.fn.jquery!==q.jQuery)&&("holdReady"in b||"readyWait"in b))if(i.jQuery=b,w(["jquery",[],function(){return jQuery}]),i.scriptCount)V(b,!0),i.jQueryIncremented=!0};A=function(){var b,a,c,l,k,h;i.takeGlobalQueue();Z+=1;if(i.scriptCount<=0)i.scriptCount=0;for(;S.length;)if(b=S.shift(),b[0]===null)return d.onError(P("mismatch","Mismatched anonymous define() module: "+b[b.length-1]));else w(b);if(!q.priorityWait||j())for(;i.paused.length;){k=i.paused;i.pausedCount+=k.length;i.paused= +[];for(l=0;b=k[l];l++)a=b.map,c=a.url,h=a.fullName,a.prefix?o(a.prefix,b):!R[c]&&!s[h]&&((q.requireLoad||d.load)(i,h,c),c.indexOf("empty:")!==0&&(R[c]=!0));i.startTime=(new Date).getTime();i.pausedCount-=k.length}Z===1&&E();Z-=1;return r};i={contextName:a,config:q,defQueue:S,waiting:x,waitCount:0,specified:B,loaded:s,urlMap:G,urlFetched:R,scriptCount:0,defined:n,paused:[],pausedCount:0,plugins:N,needFullExec:H,fake:{},fullExec:T,managerCallbacks:M,makeModuleMap:l,normalize:c,configure:function(b){var a, +c,d;b.baseUrl&&b.baseUrl.charAt(b.baseUrl.length-1)!=="/"&&(b.baseUrl+="/");a=q.paths;d=q.pkgs;$(q,b,!0);if(b.paths){for(c in b.paths)c in L||(a[c]=b.paths[c]);q.paths=a}if((a=b.packagePaths)||b.packages){if(a)for(c in a)c in L||aa(d,a[c],c);b.packages&&aa(d,b.packages);q.pkgs=d}if(b.priority)c=i.requireWait,i.requireWait=!1,A(),i.require(b.priority),A(),i.requireWait=c,q.priorityWait=b.priority;if(b.deps||b.callback)i.require(b.deps||[],b.callback)},requireDefined:function(b,a){return l(b,a).fullName in +n},requireSpecified:function(b,a){return l(b,a).fullName in B},require:function(b,c,g){if(typeof b==="string"){if(K(c))return d.onError(P("requireargs","Invalid require call"));if(d.get)return d.get(i,b,c);c=l(b,c);b=c.fullName;return!(b in n)?d.onError(P("notloaded","Module name '"+c.fullName+"' has not been loaded yet for context: "+a)):n[b]}(b&&b.length||c)&&C(null,b,c,g);if(!i.requireWait)for(;!i.scriptCount&&i.paused.length;)A();return i.require},takeGlobalQueue:function(){U.length&&(ja.apply(i.defQueue, +[i.defQueue.length-1,0].concat(U)),U=[])},completeLoad:function(b){var a;for(i.takeGlobalQueue();S.length;)if(a=S.shift(),a[0]===null){a[0]=b;break}else if(a[0]===b)break;else w(a),a=null;a?w(a):w([b,[],b==="jquery"&&typeof jQuery!=="undefined"?function(){return jQuery}:null]);d.isAsync&&(i.scriptCount-=1);A();d.isAsync||(i.scriptCount-=1)},toUrl:function(b,a){var c=b.lastIndexOf("."),d=null;c!==-1&&(d=b.substring(c,b.length),b=b.substring(0,c));return i.nameToUrl(b,d,a)},nameToUrl:function(b,a,g){var l, +k,h,e,j=i.config,b=c(b,g&&g.fullName);if(d.jsExtRegExp.test(b))a=b+(a?a:"");else{l=j.paths;k=j.pkgs;g=b.split("/");for(e=g.length;e>0;e--)if(h=g.slice(0,e).join("/"),l[h]){g.splice(0,e,l[h]);break}else if(h=k[h]){b=b===h.name?h.location+"/"+h.main:h.location;g.splice(0,e,b);break}a=g.join("/")+(a||".js");a=(a.charAt(0)==="/"||a.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+a}return j.urlArgs?a+((a.indexOf("?")===-1?"?":"&")+j.urlArgs):a}};i.jQueryCheck=W;i.resume=A;return i}function ka(){var a,c,d;if(C&&C.readyState=== +"interactive")return C;a=document.getElementsByTagName("script");for(c=a.length-1;c>-1&&(d=a[c]);c--)if(d.readyState==="interactive")return C=d;return null}var la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/require\(\s*["']([^'"\s]+)["']\s*\)/g,fa=/^\.\//,ba=/\.js$/,O=Object.prototype.toString,u=Array.prototype,ha=u.slice,ja=u.splice,I=!!(typeof window!=="undefined"&&navigator&&document),da=!I&&typeof importScripts!=="undefined",na=I&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/, +ea=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",L={},D={},U=[],C=null,Y=0,Q=!1,ia={require:!0,module:!0,exports:!0},d,u={},J,y,v,E,o,w,F,B,z,W,X;if(typeof define==="undefined"){if(typeof requirejs!=="undefined")if(K(requirejs))return;else u=requirejs,requirejs=r;typeof require!=="undefined"&&!K(require)&&(u=require,require=r);d=requirejs=function(a,c,d){var j="_",k;!G(a)&&typeof a!=="string"&&(k=a,G(c)?(a=c,c=d):a=[]);if(k&&k.context)j=k.context;d=D[j]||(D[j]=ga(j));k&&d.configure(k); +return d.require(a,c)};d.config=function(a){return d(a)};require||(require=d);d.toUrl=function(a){return D._.toUrl(a)};d.version="1.0.8";d.jsExtRegExp=/^\/|:|\?|\.js$/;y=d.s={contexts:D,skipAsync:{}};if(d.isAsync=d.isBrowser=I)if(v=y.head=document.getElementsByTagName("head")[0],E=document.getElementsByTagName("base")[0])v=y.head=E.parentNode;d.onError=function(a){throw a;};d.load=function(a,c,l){d.resourcesReady(!1);a.scriptCount+=1;d.attach(l,a,c);if(a.jQuery&&!a.jQueryIncremented)V(a.jQuery,!0), +a.jQueryIncremented=!0};define=function(a,c,d){var j,k;typeof a!=="string"&&(d=c,c=a,a=null);G(c)||(d=c,c=[]);!c.length&&K(d)&&d.length&&(d.toString().replace(la,"").replace(ma,function(a,d){c.push(d)}),c=(d.length===1?["require"]:["require","exports","module"]).concat(c));if(Q&&(j=J||ka()))a||(a=j.getAttribute("data-requiremodule")),k=D[j.getAttribute("data-requirecontext")];(k?k.defQueue:U).push([a,c,d]);return r};define.amd={multiversion:!0,plugins:!0,jQuery:!0};d.exec=function(a){return eval(a)}; +d.execCb=function(a,c,d,j){return c.apply(j,d)};d.addScriptToDom=function(a){J=a;E?v.insertBefore(a,E):v.appendChild(a);J=null};d.onScriptLoad=function(a){var c=a.currentTarget||a.srcElement,l;if(a.type==="load"||c&&na.test(c.readyState))C=null,a=c.getAttribute("data-requirecontext"),l=c.getAttribute("data-requiremodule"),D[a].completeLoad(l),c.detachEvent&&!ea?c.detachEvent("onreadystatechange",d.onScriptLoad):c.removeEventListener("load",d.onScriptLoad,!1)};d.attach=function(a,c,l,j,k,o){var p; +if(I)return j=j||d.onScriptLoad,p=c&&c.config&&c.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),p.type=k||c&&c.config.scriptType||"text/javascript",p.charset="utf-8",p.async=!y.skipAsync[a],c&&p.setAttribute("data-requirecontext",c.contextName),p.setAttribute("data-requiremodule",l),p.attachEvent&&!(p.attachEvent.toString&&p.attachEvent.toString().indexOf("[native code]")<0)&&!ea?(Q=!0,o?p.onreadystatechange=function(){if(p.readyState=== +"loaded")p.onreadystatechange=null,p.attachEvent("onreadystatechange",j),o(p)}:p.attachEvent("onreadystatechange",j)):p.addEventListener("load",j,!1),p.src=a,o||d.addScriptToDom(p),p;else da&&(importScripts(a),c.completeLoad(l));return null};if(I){o=document.getElementsByTagName("script");for(B=o.length-1;B>-1&&(w=o[B]);B--){if(!v)v=w.parentNode;if(F=w.getAttribute("data-main")){if(!u.baseUrl)o=F.split("/"),w=o.pop(),o=o.length?o.join("/")+"/":"./",u.baseUrl=o,F=w.replace(ba,"");u.deps=u.deps?u.deps.concat(F): +[F];break}}}d.checkReadyState=function(){var a=y.contexts,c;for(c in a)if(!(c in L)&&a[c].waitCount)return;d.resourcesReady(!0)};d.resourcesReady=function(a){var c,l;d.resourcesDone=a;if(d.resourcesDone)for(l in a=y.contexts,a)if(!(l in L)&&(c=a[l],c.jQueryIncremented))V(c.jQuery,!1),c.jQueryIncremented=!1};d.pageLoaded=function(){if(document.readyState!=="complete")document.readyState="complete"};if(I&&document.addEventListener&&!document.readyState)document.readyState="loading",window.addEventListener("load", +d.pageLoaded,!1);d(u);if(d.isAsync&&typeof setTimeout!=="undefined")z=y.contexts[u.context||"_"],z.requireWait=!0,setTimeout(function(){z.requireWait=!1;z.scriptCount||z.resume();d.checkReadyState()},0)}})(); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/slide-controller.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/slide-controller.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,109 @@ +(function(window) { + +var ORIGIN_ = location.protocol + '//' + location.host; + +function SlideController() { + this.popup = null; + this.isPopup = window.opener; + + if (this.setupDone()) { + window.addEventListener('message', this.onMessage_.bind(this), false); + + // Close popups if we reload the main window. + window.addEventListener('beforeunload', function(e) { + if (this.popup) { + this.popup.close(); + } + }.bind(this), false); + } +} + +SlideController.PRESENTER_MODE_PARAM = 'presentme'; + +SlideController.prototype.setupDone = function() { + var params = location.search.substring(1).split('&').map(function(el) { + return el.split('='); + }); + + var presentMe = null; + for (var i = 0, param; param = params[i]; ++i) { + if (param[0].toLowerCase() == SlideController.PRESENTER_MODE_PARAM) { + presentMe = param[1] == 'true'; + break; + } + } + + if (presentMe !== null) { + localStorage.ENABLE_PRESENTOR_MODE = presentMe; + // TODO: use window.history.pushState to update URL instead of the redirect. + if (window.history.replaceState) { + window.history.replaceState({}, '', location.pathname); + } else { + location.replace(location.pathname); + return false; + } + } + + var enablePresenterMode = localStorage.getItem('ENABLE_PRESENTOR_MODE'); + if (enablePresenterMode && JSON.parse(enablePresenterMode)) { + // Only open popup from main deck. Don't want recursive popup opening! + if (!this.isPopup) { + var opts = 'menubar=no,location=yes,resizable=yes,scrollbars=no,status=no'; + this.popup = window.open(location.href, 'mywindow', opts); + + // Loading in the popup? Trigger the hotkey for turning presenter mode on. + this.popup.addEventListener('load', function(e) { + var evt = this.popup.document.createEvent('Event'); + evt.initEvent('keydown', true, true); + evt.keyCode = 'P'.charCodeAt(0); + this.popup.document.dispatchEvent(evt); + // this.popup.document.body.classList.add('with-notes'); + // document.body.classList.add('popup'); + }.bind(this), false); + } + } + + return true; +} + +SlideController.prototype.onMessage_ = function(e) { + var data = e.data; + + // Restrict messages to being from this origin. Allow local developmet + // from file:// though. + // TODO: It would be dope if FF implemented location.origin! + if (e.origin != ORIGIN_ && ORIGIN_.indexOf('file://') != 0) { + alert('Someone tried to postMessage from an unknown origin'); + return; + } + + // if (e.source.location.hostname != 'localhost') { + // alert('Someone tried to postMessage from an unknown origin'); + // return; + // } + + if ('keyCode' in data) { + var evt = document.createEvent('Event'); + evt.initEvent('keydown', true, true); + evt.keyCode = data.keyCode; + document.dispatchEvent(evt); + } +}; + +SlideController.prototype.sendMsg = function(msg) { + // // Send message to popup window. + // if (this.popup) { + // this.popup.postMessage(msg, ORIGIN_); + // } + + // Send message to main window. + if (this.isPopup) { + // TODO: It would be dope if FF implemented location.origin. + window.opener.postMessage(msg, '*'); + } +}; + +window.SlideController = SlideController; + +})(window); + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/slide-deck.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/slide-deck.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,768 @@ +/** + * @authors Luke Mahe + * @authors Eric Bidelman + * @fileoverview TODO + */ +document.cancelFullScreen = document.webkitCancelFullScreen || + document.mozCancelFullScreen; + +/** + * @constructor + */ +function SlideDeck(el) { + this.curSlide_ = 0; + this.prevSlide_ = 0; + this.config_ = null; + this.container = el || document.querySelector('slides'); + this.slides = []; + this.controller = null; + + this.getCurrentSlideFromHash_(); + + // Call this explicitly. Modernizr.load won't be done until after DOM load. + this.onDomLoaded_.bind(this)(); +} + +/** + * @const + * @private + */ +SlideDeck.prototype.SLIDE_CLASSES_ = [ + 'far-past', 'past', 'current', 'next', 'far-next']; + +/** + * @const + * @private + */ +SlideDeck.prototype.CSS_DIR_ = 'theme/css/'; + +/** + * @private + */ +SlideDeck.prototype.getCurrentSlideFromHash_ = function() { + var slideNo = parseInt(document.location.hash.substr(1)); + + if (slideNo) { + this.curSlide_ = slideNo - 1; + } else { + this.curSlide_ = 0; + } +}; + +/** + * @param {number} slideNo + */ +SlideDeck.prototype.loadSlide = function(slideNo) { + if (slideNo) { + this.curSlide_ = slideNo - 1; + this.updateSlides_(); + } +}; + +/** + * @private + */ +SlideDeck.prototype.onDomLoaded_ = function(e) { + document.body.classList.add('loaded'); // Add loaded class for templates to use. + + this.slides = this.container.querySelectorAll('slide:not([hidden]):not(.backdrop)'); + + // If we're on a smartphone, apply special sauce. + if (Modernizr.mq('only screen and (max-device-width: 480px)')) { + // var style = document.createElement('link'); + // style.rel = 'stylesheet'; + // style.type = 'text/css'; + // style.href = this.CSS_DIR_ + 'phone.css'; + // document.querySelector('head').appendChild(style); + + // No need for widescreen layout on a phone. + this.container.classList.remove('layout-widescreen'); + } + + this.loadConfig_(SLIDE_CONFIG); + this.addEventListeners_(); + this.updateSlides_(); + + // Add slide numbers and total slide count metadata to each slide. + var that = this; + for (var i = 0, slide; slide = this.slides[i]; ++i) { + slide.dataset.slideNum = i + 1; + slide.dataset.totalSlides = this.slides.length; + + slide.addEventListener('click', function(e) { + if (document.body.classList.contains('overview')) { + that.loadSlide(this.dataset.slideNum); + e.preventDefault(); + window.setTimeout(function() { + that.toggleOverview(); + }, 500); + } + }, false); + } + + // Note: this needs to come after addEventListeners_(), which adds a + // 'keydown' listener that this controller relies on. + // Also, no need to set this up if we're on mobile. + if (!Modernizr.touch) { + this.controller = new SlideController(this); + if (this.controller.isPopup) { + document.body.classList.add('popup'); + } + } +}; + +/** + * @private + */ +SlideDeck.prototype.addEventListeners_ = function() { + document.addEventListener('keydown', this.onBodyKeyDown_.bind(this), false); + window.addEventListener('popstate', this.onPopState_.bind(this), false); + + // var transEndEventNames = { + // 'WebkitTransition': 'webkitTransitionEnd', + // 'MozTransition': 'transitionend', + // 'OTransition': 'oTransitionEnd', + // 'msTransition': 'MSTransitionEnd', + // 'transition': 'transitionend' + // }; + // + // // Find the correct transitionEnd vendor prefix. + // window.transEndEventName = transEndEventNames[ + // Modernizr.prefixed('transition')]; + // + // // When slides are done transitioning, kickoff loading iframes. + // // Note: we're only looking at a single transition (on the slide). This + // // doesn't include autobuilds the slides may have. Also, if the slide + // // transitions on multiple properties (e.g. not just 'all'), this doesn't + // // handle that case. + // this.container.addEventListener(transEndEventName, function(e) { + // this.enableSlideFrames_(this.curSlide_); + // }.bind(this), false); + + // document.addEventListener('slideenter', function(e) { + // var slide = e.target; + // window.setTimeout(function() { + // this.enableSlideFrames_(e.slideNumber); + // this.enableSlideFrames_(e.slideNumber + 1); + // }.bind(this), 300); + // }.bind(this), false); +}; + +/** + * @private + * @param {Event} e The pop event. + */ +SlideDeck.prototype.onPopState_ = function(e) { + if (e.state != null) { + this.curSlide_ = e.state; + this.updateSlides_(true); + } +}; + +/** + * @param {Event} e + */ +SlideDeck.prototype.onBodyKeyDown_ = function(e) { + if (/^(input|textarea)$/i.test(e.target.nodeName) || + e.target.isContentEditable) { + return; + } + + // Forward keydowns to the main slides if we're the popup. + if (this.controller && this.controller.isPopup) { + this.controller.sendMsg({keyCode: e.keyCode}); + } + + switch (e.keyCode) { + case 13: // Enter + if (document.body.classList.contains('overview')) { + this.toggleOverview(); + } + break; + + case 39: // right arrow + case 32: // space + case 34: // PgDn + this.nextSlide(); + e.preventDefault(); + break; + + case 37: // left arrow + case 8: // Backspace + case 33: // PgUp + this.prevSlide(); + e.preventDefault(); + break; + + case 40: // down arrow + this.nextSlide(); + e.preventDefault(); + break; + + case 38: // up arrow + this.prevSlide(); + e.preventDefault(); + break; + + case 72: // H: Toggle code highlighting + document.body.classList.toggle('highlight-code'); + break; + + case 79: // O: Toggle overview + this.toggleOverview(); + break; + + case 80: // P + if (this.controller && this.controller.isPopup) { + document.body.classList.toggle('with-notes'); + } else if (this.controller && !this.controller.popup) { + document.body.classList.toggle('with-notes'); + } + break; + + case 82: // R + // TODO: implement refresh on main slides when popup is refreshed. + break; + + case 27: // ESC: Hide notes and highlighting + document.body.classList.remove('with-notes'); + document.body.classList.remove('highlight-code'); + + if (document.body.classList.contains('overview')) { + this.toggleOverview(); + } + break; + + case 70: // F: Toggle fullscreen + // Only respect 'f' on body. Don't want to capture keys from an . + // Also, ignore browser's fullscreen shortcut (cmd+shift+f) so we don't + // get trapped in fullscreen! + if (e.target == document.body && !(e.shiftKey && e.metaKey)) { + if (document.mozFullScreen !== undefined && !document.mozFullScreen) { + document.body.mozRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); + } else if (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen) { + document.body.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + document.cancelFullScreen(); + } + } + break; + + case 87: // W: Toggle widescreen + // Only respect 'w' on body. Don't want to capture keys from an . + if (e.target == document.body && !(e.shiftKey && e.metaKey)) { + this.container.classList.toggle('layout-widescreen'); + } + break; + } +}; + +/** + * + */ +SlideDeck.prototype.focusOverview_ = function() { + var overview = document.body.classList.contains('overview'); + + for (var i = 0, slide; slide = this.slides[i]; i++) { + slide.style[Modernizr.prefixed('transform')] = overview ? + 'translateZ(-2500px) translate(' + (( i - this.curSlide_ ) * 105) + + '%, 0%)' : ''; + } +}; + +/** + */ +SlideDeck.prototype.toggleOverview = function() { + document.body.classList.toggle('overview'); + + this.focusOverview_(); +}; + +/** + * @private + */ +SlideDeck.prototype.loadConfig_ = function(config) { + if (!config) { + return; + } + + this.config_ = config; + + var settings = this.config_.settings; + + this.loadTheme_(settings.theme || []); + + if (settings.favIcon) { + this.addFavIcon_(settings.favIcon); + } + + // Prettyprint. Default to on. + if (!!!('usePrettify' in settings) || settings.usePrettify) { + prettyPrint(); + } + + if (settings.analytics) { + this.loadAnalytics_(); + } + + if (settings.fonts) { + this.addFonts_(settings.fonts); + } + + // Builds. Default to on. + if (!!!('useBuilds' in settings) || settings.useBuilds) { + this.makeBuildLists_(); + } + + if (settings.title) { + document.title = settings.title.replace(//, ' ') + ' - Google IO 2012'; + document.querySelector('[data-config-title]').innerHTML = settings.title; + } + + if (settings.subtitle) { + document.querySelector('[data-config-subtitle]').innerHTML = settings.subtitle; + } + + if (this.config_.presenters) { + var presenters = this.config_.presenters; + var dataConfigContact = document.querySelector('[data-config-contact]'); + + var html = []; + if (presenters.length == 1) { + var p = presenters[0]; + + html = [p.name, p.company].join('
'); + + var gplus = p.gplus ? 'g+' + p.gplus.replace(/https?:\/\//, '') + '' : ''; + + var twitter = p.twitter ? 'twitter' + + '' + + p.twitter + '' : ''; + + var www = p.www ? 'www' + p.www.replace(/https?:\/\//, '') + '' : ''; + + var github = p.github ? 'github' + p.github.replace(/https?:\/\//, '') + '' : ''; + + var html2 = [gplus, twitter, www, github].join('
'); + + if (dataConfigContact) { + dataConfigContact.innerHTML = html2; + } + } else { + for (var i = 0, p; p = presenters[i]; ++i) { + html.push(p.name + ' - ' + p.company); + } + html = html.join('
'); + if (dataConfigContact) { + dataConfigContact.innerHTML = html; + } + } + + var dataConfigPresenter = document.querySelector('[data-config-presenter]'); + if (dataConfigPresenter) { + document.querySelector('[data-config-presenter]').innerHTML = html; + } + } + + /* Left/Right tap areas. Default to including. */ + if (!!!('enableSlideAreas' in settings) || settings.enableSlideAreas) { + var el = document.createElement('div'); + el.classList.add('slide-area'); + el.id = 'prev-slide-area'; + el.addEventListener('click', this.prevSlide.bind(this), false); + this.container.appendChild(el); + + var el = document.createElement('div'); + el.classList.add('slide-area'); + el.id = 'next-slide-area'; + el.addEventListener('click', this.nextSlide.bind(this), false); + this.container.appendChild(el); + } + + if (Modernizr.touch && (!!!('enableTouch' in settings) || + settings.enableTouch)) { + var self = this; + + // Note: this prevents mobile zoom in/out but prevents iOS from doing + // it's crazy scroll over effect and disaligning the slides. + window.addEventListener('touchstart', function(e) { + e.preventDefault(); + }, false); + + var hammer = new Hammer(this.container); + hammer.ondragend = function(e) { + if (e.direction == 'right' || e.direction == 'down') { + self.prevSlide(); + } else if (e.direction == 'left' || e.direction == 'up') { + self.nextSlide(); + } + }; + } +}; + +/** + * @private + * @param {Array.} fonts + */ +SlideDeck.prototype.addFonts_ = function(fonts) { + var el = document.createElement('link'); + el.rel = 'stylesheet'; + el.href = ('https:' == document.location.protocol ? 'https' : 'http') + + '://fonts.googleapis.com/css?family=' + fonts.join('|') + '&v2'; + document.querySelector('head').appendChild(el); +}; + +/** + * @private + */ +SlideDeck.prototype.buildNextItem_ = function() { + var slide = this.slides[this.curSlide_]; + var toBuild = slide.querySelector('.to-build'); + var built = slide.querySelector('.build-current'); + + if (built) { + built.classList.remove('build-current'); + if (built.classList.contains('fade')) { + built.classList.add('build-fade'); + } + } + + if (!toBuild) { + var items = slide.querySelectorAll('.build-fade'); + for (var j = 0, item; item = items[j]; j++) { + item.classList.remove('build-fade'); + } + return false; + } + + toBuild.classList.remove('to-build'); + toBuild.classList.add('build-current'); + + return true; +}; + +/** + * @param {boolean=} opt_dontPush + */ +SlideDeck.prototype.prevSlide = function(opt_dontPush) { + if (this.curSlide_ > 0) { + var bodyClassList = document.body.classList; + bodyClassList.remove('highlight-code'); + + // Toggle off speaker notes if they're showing when we move backwards on the + // main slides. If we're the speaker notes popup, leave them up. + if (this.controller && !this.controller.isPopup) { + bodyClassList.remove('with-notes'); + } else if (!this.controller) { + bodyClassList.remove('with-notes'); + } + + this.prevSlide_ = this.curSlide_--; + + this.updateSlides_(opt_dontPush); + } +}; + +/** + * @param {boolean=} opt_dontPush + */ +SlideDeck.prototype.nextSlide = function(opt_dontPush) { + if (!document.body.classList.contains('overview') && this.buildNextItem_()) { + return; + } + + if (this.curSlide_ < this.slides.length - 1) { + var bodyClassList = document.body.classList; + bodyClassList.remove('highlight-code'); + + // Toggle off speaker notes if they're showing when we advanced on the main + // slides. If we're the speaker notes popup, leave them up. + if (this.controller && !this.controller.isPopup) { + bodyClassList.remove('with-notes'); + } else if (!this.controller) { + bodyClassList.remove('with-notes'); + } + + this.prevSlide_ = this.curSlide_++; + + this.updateSlides_(opt_dontPush); + } +}; + +/* Slide events */ + +/** + * Triggered when a slide enter/leave event should be dispatched. + * + * @param {string} type The type of event to trigger + * (e.g. 'slideenter', 'slideleave'). + * @param {number} slideNo The index of the slide that is being left. + */ +SlideDeck.prototype.triggerSlideEvent = function(type, slideNo) { + var el = this.getSlideEl_(slideNo); + if (!el) { + return; + } + + // Call onslideenter/onslideleave if the attribute is defined on this slide. + var func = el.getAttribute(type); + if (func) { + new Function(func).call(el); // TODO: Don't use new Function() :( + } + + // Dispatch event to listeners setup using addEventListener. + var evt = document.createEvent('Event'); + evt.initEvent(type, true, true); + evt.slideNumber = slideNo + 1; // Make it readable + evt.slide = el; + + el.dispatchEvent(evt); +}; + +/** + * @private + */ +SlideDeck.prototype.updateSlides_ = function(opt_dontPush) { + var dontPush = opt_dontPush || false; + + var curSlide = this.curSlide_; + for (var i = 0; i < this.slides.length; ++i) { + switch (i) { + case curSlide - 2: + this.updateSlideClass_(i, 'far-past'); + break; + case curSlide - 1: + this.updateSlideClass_(i, 'past'); + break; + case curSlide: + this.updateSlideClass_(i, 'current'); + break; + case curSlide + 1: + this.updateSlideClass_(i, 'next'); + break; + case curSlide + 2: + this.updateSlideClass_(i, 'far-next'); + break; + default: + this.updateSlideClass_(i); + break; + } + }; + + this.triggerSlideEvent('slideleave', this.prevSlide_); + this.triggerSlideEvent('slideenter', curSlide); + +// window.setTimeout(this.disableSlideFrames_.bind(this, curSlide - 2), 301); +// +// this.enableSlideFrames_(curSlide - 1); // Previous slide. +// this.enableSlideFrames_(curSlide + 1); // Current slide. +// this.enableSlideFrames_(curSlide + 2); // Next slide. + + // Enable current slide's iframes (needed for page loat at current slide). + this.enableSlideFrames_(curSlide + 1); + + // No way to tell when all slide transitions + auto builds are done. + // Give ourselves a good buffer to preload the next slide's iframes. + window.setTimeout(this.enableSlideFrames_.bind(this, curSlide + 2), 1000); + + this.updateHash_(dontPush); + + if (document.body.classList.contains('overview')) { + this.focusOverview_(); + return; + } + +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.enableSlideFrames_ = function(slideNo) { + var el = this.slides[slideNo - 1]; + if (!el) { + return; + } + + var frames = el.querySelectorAll('iframe'); + for (var i = 0, frame; frame = frames[i]; i++) { + this.enableFrame_(frame); + } +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.enableFrame_ = function(frame) { + var src = frame.dataset.src; + if (src && frame.src != src) { + frame.src = src; + } +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.disableSlideFrames_ = function(slideNo) { + var el = this.slides[slideNo - 1]; + if (!el) { + return; + } + + var frames = el.querySelectorAll('iframe'); + for (var i = 0, frame; frame = frames[i]; i++) { + this.disableFrame_(frame); + } +}; + +/** + * @private + * @param {Node} frame + */ +SlideDeck.prototype.disableFrame_ = function(frame) { + frame.src = 'about:blank'; +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.getSlideEl_ = function(no) { + if ((no < 0) || (no >= this.slides.length)) { + return null; + } else { + return this.slides[no]; + } +}; + +/** + * @private + * @param {number} slideNo + * @param {string} className + */ +SlideDeck.prototype.updateSlideClass_ = function(slideNo, className) { + var el = this.getSlideEl_(slideNo); + + if (!el) { + return; + } + + if (className) { + el.classList.add(className); + } + + for (var i = 0, slideClass; slideClass = this.SLIDE_CLASSES_[i]; ++i) { + if (className != slideClass) { + el.classList.remove(slideClass); + } + } +}; + +/** + * @private + */ +SlideDeck.prototype.makeBuildLists_ = function () { + for (var i = this.curSlide_, slide; slide = this.slides[i]; ++i) { + var items = slide.querySelectorAll('.build > *'); + for (var j = 0, item; item = items[j]; ++j) { + if (item.classList) { + item.classList.add('to-build'); + if (item.parentNode.classList.contains('fade')) { + item.classList.add('fade'); + } + } + } + } +}; + +/** + * @private + * @param {boolean} dontPush + */ +SlideDeck.prototype.updateHash_ = function(dontPush) { + if (!dontPush) { + var slideNo = this.curSlide_ + 1; + var hash = '#' + slideNo; + if (window.history.pushState) { + window.history.pushState(this.curSlide_, 'Slide ' + slideNo, hash); + } else { + window.location.replace(hash); + } + + // Record GA hit on this slide. + window['_gaq'] && window['_gaq'].push(['_trackPageview', + document.location.href]); + } +}; + + +/** + * @private + * @param {string} favIcon + */ +SlideDeck.prototype.addFavIcon_ = function(favIcon) { + var el = document.createElement('link'); + el.rel = 'icon'; + el.type = 'image/png'; + el.href = favIcon; + document.querySelector('head').appendChild(el); +}; + +/** + * @private + * @param {string} theme + */ +SlideDeck.prototype.loadTheme_ = function(theme) { + var styles = []; + if (theme.constructor.name === 'String') { + styles.push(theme); + } else { + styles = theme; + } + + for (var i = 0, style; themeUrl = styles[i]; i++) { + var style = document.createElement('link'); + style.rel = 'stylesheet'; + style.type = 'text/css'; + if (themeUrl.indexOf('http') == -1) { + style.href = this.CSS_DIR_ + themeUrl + '.css'; + } else { + style.href = themeUrl; + } + document.querySelector('head').appendChild(style); + } +}; + +/** + * @private + */ +SlideDeck.prototype.loadAnalytics_ = function() { + var _gaq = window['_gaq'] || []; + _gaq.push(['_setAccount', this.config_.settings.analytics]); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); +}; + + +// Polyfill missing APIs (if we need to), then create the slide deck. +// iOS < 5 needs classList, dataset, and window.matchMedia. Modernizr contains +// the last one. +(function() { + Modernizr.load({ + test: !!document.body.classList && !!document.body.dataset, + nope: ['js/polyfills/classList.min.js', 'js/polyfills/dataset.min.js'], + complete: function() { + window.slidedeck = new SlideDeck(); + } + }); +})(); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/js/slides.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/js/slides.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +require(['order!../slide_config', 'order!modernizr.custom.45394', + 'order!prettify/prettify', 'order!hammer', 'order!slide-controller', + 'order!slide-deck'], function(someModule) { + +}); diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/scripts/md/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/scripts/md/README.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +### Want to use markdown to write your slides? + +`python render.py` can do that for you. + +Dependencies: jinja2, markdown. diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/scripts/md/base.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/scripts/md/base.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,104 @@ + + + + + Google IO 2012 + + + + + + + + + + + + + + + + + + + + + +
+

+

+

+
+
+ +{% for slide in slides %} + + {% if 'segue' in slide.class %} + +
+

{{- slide.title -}}

+

{{- slide.subtitle -}}

+
+ {% else %} +
+

{{- slide.title -}}

+

{{- slide.subtitle -}}

+
+
+ {{- slide.content -}} +
+ {% endif %} +
+{% endfor %} + + + +
+

<Thank You!>

+

Important contact information goes here.

+
+

+ +

+
+ + + + + +
+ + + + + + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/scripts/md/render.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/scripts/md/render.py Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +import codecs +import re +import jinja2 +import markdown + +def process_slides(): + with codecs.open('../../presentation-output.html', 'w', encoding='utf8') as outfile: + md = codecs.open('slides.md', encoding='utf8').read() + md_slides = md.split('\n---\n') + print 'Compiled %s slides.' % len(md_slides) + + slides = [] + # Process each slide separately. + for md_slide in md_slides: + slide = {} + sections = md_slide.split('\n\n') + # Extract metadata at the beginning of the slide (look for key: value) + # pairs. + metadata_section = sections[0] + metadata = parse_metadata(metadata_section) + slide.update(metadata) + remainder_index = metadata and 1 or 0 + # Get the content from the rest of the slide. + content_section = '\n\n'.join(sections[remainder_index:]) + html = markdown.markdown(content_section) + slide['content'] = postprocess_html(html, metadata) + + slides.append(slide) + + template = jinja2.Template(open('base.html').read()) + + outfile.write(template.render(locals())) + +def parse_metadata(section): + """Given the first part of a slide, returns metadata associated with it.""" + metadata = {} + metadata_lines = section.split('\n') + for line in metadata_lines: + colon_index = line.find(':') + if colon_index != -1: + key = line[:colon_index].strip() + val = line[colon_index + 1:].strip() + metadata[key] = val + + return metadata + +def postprocess_html(html, metadata): + """Returns processed HTML to fit into the slide template format.""" + if metadata.get('build_lists') and metadata['build_lists'] == 'true': + html = html.replace('
    ', '
      ') + html = html.replace('
        ', '
          ') + return html + +if __name__ == '__main__': + process_slides() diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/scripts/md/slides.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/scripts/md/slides.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,78 @@ +title: Slide Title +subtitle: Subtitle +class: image + +![Mobile vs desktop users](image.png) + +--- + +title: Segue Slide +subtitle: Subtitle +class: segue dark nobackground + +--- + +title: Agenda +class: big +build_lists: true + +Things we'll cover (list should build): + +- Bullet1 +- Bullet2 +- Bullet3 + +--- + +title: Today +class: nobackground fill + +![Many kinds of devices.](image.png) + +
          source: place source info here
          + +--- + +title: Big Title Slide +class: title-slide + +--- + +title: Code Example + +Media Queries are sweet: + +
          +@media screen and (max-width: 640px) {
          +  #sidebar { display: none; }
          +}
          +
          + +--- + +title: Once more, with JavaScript + +
          +function isSmall() {
          +  return window.matchMedia("(min-device-width: ???)").matches;
          +}
          +
          +function hasTouch() {
          +  return Modernizr.touch;
          +}
          +
          +function detectFormFactor() {
          +  var device = DESKTOP;
          +  if (hasTouch()) {
          +    device = isSmall() ? PHONE : TABLET;
          +  }
          +  return device;
          +}
          +
          + +--- + +title: Centered content +content_class: flexbox vcenter + +This content should be centered! diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/serve.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/serve.sh Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Starts a basic web server on the port specified. +# +# ./serve.sh 3000 -> http://localhost:3000 +# +# Copyright 2012 Eric Bidelman + +port=$1 +if [ $# -ne 1 ] +then + port=8000 +fi + +if [ $(uname -s) == "Darwin" ] +then + open=open +else + open=xdg-open +fi + +$open http://localhost:$port/template.html && python -m SimpleHTTPServer $port; diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/slide_config.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/slide_config.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,36 @@ +var SLIDE_CONFIG = { + // Slide settings + settings: { + title: 'Multi-Robot Systems: Modeling, Specification, and Model Checking', + //subtitle: 'Subtitle Goes Here', + useBuilds: true, // Default: true. False will turn off slide animation builds. + usePrettify: true, // Default: true + enableSlideAreas: true, // Default: true. False turns off the click areas on either slide of the slides. + enableTouch: true, // Default: true. If touch support should enabled. Note: the device must support touch. + //analytics: 'UA-XXXXXXXX-1', // TODO: Using this breaks GA for some reason (probably requirejs). Update your tracking code in template.html instead. + favIcon: 'images/google_developers_logo_tiny.png', + fonts: [ + 'Open Sans:regular,semibold,italic,italicsemibold', + 'Source Code Pro' + ], + //theme: ['mytheme'], // Add your own custom themes or styles in /theme/css. Leave off the .css extension. + }, + + // Author information + presenters: [{ + name: 'Taiki Taira', +// company: 'Job Title, Google', + gplus: '', + twitter: '', + www: '', + github: '' + }/*, { + name: 'Second Name', + company: 'Job Title, Google', + gplus: 'http://plus.google.com/1234567890', + twitter: '@yourhandle', + www: 'http://www.you.com', + github: 'http://github.com/you' + }*/] +}; + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/template.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/template.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,416 @@ + + + + + Google IO 2012 + + + + + + + + + + + + + + + + + +
          + +
          +
          + + + + +
          +

          +

          +

          +
          +
          + + +
          +

          Slide with Bullets TOMATO

          +
          +
          +
            +
          • Titles are formatted as Open Sans with bold applied and font size is set at 45
          • +
          • Title capitalization is title case +
              +
            • Subtitle capitalization is title case
            • +
            +
          • +
          • Subtitle capitalization is title case
          • +
          • Titles and subtitles should never have a period at the end
          • +
          +
          +
          + + +
          +

          Slide with Bullets that Build

          +

          Subtitle Placeholder

          +
          +
          +

          A list where items build:

          +
            +
          • Pressing 'h' highlights code snippets
          • +
          • Pressing 'p' toggles speaker notes (if they're on the current slide)
          • +
          • Pressing 'f' toggles fullscreen viewing
          • +
          • Pressing 'w' toggles widescreen
          • +
          • Pressing 'o' toggles overview mode
          • +
          • Pressing 'ESC' toggles off these goodies
          • +
          +

          Another list, but items fade as they build:

          +
            +
          • Hover over me!
          • +
          • Hover over me!
          • +
          • Hover over me!
          • +
          +
          +
          + + +
          +

          Slide with (Smaller Font)

          +
          +
          +
            +
          • All links open in new tabs.
          • +
          • To change that this, add target="_self" to the link.
          • +
          +
          +
          + + + + +
          +

          Code Slide (with Subtitle Placeholder)

          +

          Subtitle Placeholder

          +
          +
          +

          Press 'h' to highlight important sections of code (wrapped in <b>).

          +
          +<script type='text/javascript'>
          +  // Say hello world until the user starts questioning
          +  // the meaningfulness of their existence.
          +  function helloWorld(world) {
          +    for (var i = 42; --i >= 0;) {
          +      alert('Hello ' + String(world));
          +    }
          +  }
          +</script>
          +
          +
          +
          + + +
          +

          Code Slide (Smaller Font)

          +
          +
          +
          +// Say hello world until the user starts questioning
          +// the meaningfulness of their existence.
          +function helloWorld(world) {
          +  for (var i = 42; --i >= 0;) {
          +    alert('Hello ' + String(world));
          +  }
          +}
          +
          +
          +<style>
          +  p { color: pink }
          +  b { color: blue }
          +</style>
          +
          +
          +<!DOCTYPE html>
          +<html>
          +<head>
          +  <title>My Awesome Page</title>
          +</head>
          +<body>
          +  <p>Hello world</p>
          +<body>
          +</html>
          +
          +
          +
          + + + +
          +

          Slide with Speaker Notes

          +
          +
          +

          Press 'p' to toggle speaker notes.

          +
          +
          + + + +
          +

          Presenter Mode

          +
          +
          +

          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

          +

          Hit ?presentme=false to disable presenter mode.

          +
          +
          + + +
          +

          Slide with Image

          +
          +
          + Description +
          source: place source info here
          +
          +
          + + +
          +

          Slide with Image (Centered horz/vert)

          +
          +
          + Description +
          source: place source info here
          +
          +
          + + +
          +

          Table Option A

          +

          Subtitle Placeholder

          +
          +
          + + + + + + + + + + + + + + + + + + + +
          Column 1Column 2Column 3Column 4
          Row 1placeholderplaceholderplaceholderplaceholder
          Row 2placeholderplaceholderplaceholderplaceholder
          Row 3placeholderplaceholderplaceholderplaceholder
          Row 4placeholderplaceholderplaceholderplaceholder
          Row 5placeholderplaceholderplaceholderplaceholder
          +
          +
          + + +
          +

          Table Option A (Smaller Text)

          +

          Subtitle Placeholder

          +
          +
          + + + + + + + + + + + + + + + + + + + +
          Column 1Column 2Column 3Column 4
          Row 1placeholderplaceholderplaceholderplaceholder
          Row 2placeholderplaceholderplaceholderplaceholder
          Row 3placeholderplaceholderplaceholderplaceholder
          Row 4placeholderplaceholderplaceholderplaceholder
          Row 5placeholderplaceholderplaceholderplaceholder
          +
          +
          + + +
          +

          Table Option B

          +

          Subtitle Placeholder

          +
          +
          + + + + + + + + + + + + + + + + +
          Header 1placeholderplaceholderplaceholder
          Header 2placeholderplaceholderplaceholder
          Header 3placeholderplaceholderplaceholder
          Header 4placeholderplaceholderplaceholder
          Header 5placeholderplaceholderplaceholder
          +
          +
          + + +
          +

          Slide Styles

          +
          +
          +
          +
            +
          • class="red"
          • +
          • class="red2"
          • +
          • class="red3"
          • +
          • class="blue"
          • +
          • class="blue2"
          • +
          • class="blue3"
          • +
          • class="green"
          • +
          • class="green2"
          • +
          +
            +
          • class="green3"
          • +
          • class="yellow"
          • +
          • class="yellow2"
          • +
          • class="yellow3"
          • +
          • class="gray"
          • +
          • class="gray2"
          • +
          • class="gray3"
          • +
          • class="gray4"
          • +
          +
          +
          + I am centered text with a and button. +
          +
          +
          + + + +
          +

          Segue Slide

          +

          Subtitle Placeholder

          +
          +
          + + +
          +

          Full Image (with Optional Header)

          +
          +
          www.flickr.com/photos/25797459@N06/5438799763/
          +
          + + + +
          + + This is an example of quote text. + +
          + Name
          + Company +
          +
          +
          + + +
          +

          Slide with Iframe

          +
          +
          + +
          +
          + + +
          + +
          +
          + + + +
          +

          <Thank You!>

          +

          Important contact information goes here.

          +
          +

          + +

          +
          + + +
          + +
          +
          + + + +
          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/theme/css/default.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/theme/css/default.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1498 @@ +/* line 17, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +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; +} + +/* line 20, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +body { + line-height: 1; +} + +/* line 22, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 24, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 26, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 28, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 101, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 30, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 114, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { + display: block; +} + +/** + * Base SlideDeck Styles + */ +/* line 48, ../scss/_base.scss */ +html { + height: 100%; + overflow: hidden; +} + +/* line 53, ../scss/_base.scss */ +body { + margin: 0; + padding: 0; + opacity: 0; + height: 100%; + min-height: 740px; + width: 100%; + overflow: hidden; + color: #fff; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} +/* line 69, ../scss/_base.scss */ +body.loaded { + opacity: 1 !important; +} + +/* line 74, ../scss/_base.scss */ +input, button { + vertical-align: middle; +} + +/* line 78, ../scss/_base.scss */ +slides > slide[hidden] { + display: none !important; +} + +/* line 82, ../scss/_base.scss */ +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-perspective: 1000; + perspective: 1000; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} + +/* line 94, ../scss/_base.scss */ +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Slide styles */ +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ +/** + * Theme Styles + */ +/* line 58, ../scss/default.scss */ +::selection { + color: white; + background-color: #ffd14d; + text-shadow: none; +} + +/* line 64, ../scss/default.scss */ +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} + +/* line 69, ../scss/default.scss */ +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + border-width: 1px 1px 1px 6px; +} + +/* line 78, ../scss/default.scss */ +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} + +/* line 81, ../scss/default.scss */ +::-webkit-scrollbar-button { + height: 0; + width: 0; +} + +/* line 85, ../scss/default.scss */ +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} + +/* line 90, ../scss/default.scss */ +::-webkit-scrollbar-corner { + background: transparent; +} + +/* line 94, ../scss/default.scss */ +body { + background: black; +} + +/* line 98, ../scss/default.scss */ +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: #797979; + width: 900px; + height: 700px; + margin-left: -450px; + margin-top: -350px; + padding: 40px 60px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} +/* line 119, ../scss/default.scss */ +slides > slide.far-past { + display: none; +} +/* line 126, ../scss/default.scss */ +slides > slide.past { + display: block; + opacity: 0; +} +/* line 133, ../scss/default.scss */ +slides > slide.current { + display: block; + opacity: 1; +} +/* line 139, ../scss/default.scss */ +slides > slide.current .auto-fadein { + opacity: 1; +} +/* line 143, ../scss/default.scss */ +slides > slide.current .gdbar { + -webkit-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -o-background-size: 100% 100%; + background-size: 100% 100%; +} +/* line 148, ../scss/default.scss */ +slides > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 156, ../scss/default.scss */ +slides > slide.far-next { + display: none; +} +/* line 163, ../scss/default.scss */ +slides > slide.dark { + background: #515151 !important; +} +/* line 171, ../scss/default.scss */ +slides > slide:not(.nobackground):before { + font-size: 12pt; + content: "#yourhashtag"; + position: absolute; + bottom: 20px; + left: 60px; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + -webkit-background-size: 30px 30px; + -moz-background-size: 30px 30px; + -o-background-size: 30px 30px; + background-size: 30px 30px; + padding-left: 40px; + height: 30px; + line-height: 1.9; +} +/* line 183, ../scss/default.scss */ +slides > slide:not(.nobackground):after { + font-size: 12pt; + content: attr(data-slide-num) "/" attr(data-total-slides); + position: absolute; + bottom: 20px; + right: 60px; + line-height: 1.9; +} +/* line 194, ../scss/default.scss */ +slides > slide.title-slide:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + -webkit-background-size: contain; + -moz-background-size: contain; + -o-background-size: contain; + background-size: contain; + position: absolute; + bottom: 40px; + right: 40px; + width: 100%; + height: 60px; +} +/* line 206, ../scss/default.scss */ +slides > slide.backdrop { + z-index: -10; + display: block !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 211, ../scss/default.scss */ +slides > slide.backdrop:after, slides > slide.backdrop:before { + display: none; +} +/* line 216, ../scss/default.scss */ +slides > slide > hgroup + article { + margin-top: 45px; +} +/* line 220, ../scss/default.scss */ +slides > slide > hgroup + article.flexbox.vcenter, slides > slide > hgroup + article.flexbox.vleft, slides > slide > hgroup + article.flexbox.vright { + height: 80%; +} +/* line 225, ../scss/default.scss */ +slides > slide > hgroup + article p { + margin-bottom: 1em; +} +/* line 230, ../scss/default.scss */ +slides > slide > article:only-child { + height: 100%; +} +/* line 233, ../scss/default.scss */ +slides > slide > article:only-child > iframe { + height: 98%; +} + +/* line 239, ../scss/default.scss */ +slides.layout-faux-widescreen > slide { + padding: 40px 160px; +} + +/* line 248, ../scss/default.scss */ +slides.layout-widescreen > slide, +slides.layout-faux-widescreen > slide { + margin-left: -550px; + width: 1100px; +} +/* line 253, ../scss/default.scss */ +slides.layout-widescreen > slide.far-past, +slides.layout-faux-widescreen > slide.far-past { + display: block; + display: none; + -webkit-transform: translate(-2260px); + -moz-transform: translate(-2260px); + -ms-transform: translate(-2260px); + -o-transform: translate(-2260px); + transform: translate(-2260px); + -webkit-transform: translate3d(-2260px, 0, 0); + -moz-transform: translate3d(-2260px, 0, 0); + -ms-transform: translate3d(-2260px, 0, 0); + -o-transform: translate3d(-2260px, 0, 0); + transform: translate3d(-2260px, 0, 0); +} +/* line 260, ../scss/default.scss */ +slides.layout-widescreen > slide.past, +slides.layout-faux-widescreen > slide.past { + display: block; + opacity: 0; +} +/* line 267, ../scss/default.scss */ +slides.layout-widescreen > slide.current, +slides.layout-faux-widescreen > slide.current { + display: block; + opacity: 1; +} +/* line 274, ../scss/default.scss */ +slides.layout-widescreen > slide.next, +slides.layout-faux-widescreen > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 282, ../scss/default.scss */ +slides.layout-widescreen > slide.far-next, +slides.layout-faux-widescreen > slide.far-next { + display: block; + display: none; + -webkit-transform: translate(2260px); + -moz-transform: translate(2260px); + -ms-transform: translate(2260px); + -o-transform: translate(2260px); + transform: translate(2260px); + -webkit-transform: translate3d(2260px, 0, 0); + -moz-transform: translate3d(2260px, 0, 0); + -ms-transform: translate3d(2260px, 0, 0); + -o-transform: translate3d(2260px, 0, 0); + transform: translate3d(2260px, 0, 0); +} +/* line 289, ../scss/default.scss */ +slides.layout-widescreen #prev-slide-area, +slides.layout-faux-widescreen #prev-slide-area { + margin-left: -650px; +} +/* line 293, ../scss/default.scss */ +slides.layout-widescreen #next-slide-area, +slides.layout-faux-widescreen #next-slide-area { + margin-left: 550px; +} + +/* line 298, ../scss/default.scss */ +b { + font-weight: 600; +} + +/* line 302, ../scss/default.scss */ +a { + color: #2a7cdf; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); +} +/* line 307, ../scss/default.scss */ +a:hover { + color: black !important; +} + +/* line 312, ../scss/default.scss */ +h1, h2, h3 { + font-weight: 600; +} + +/* line 316, ../scss/default.scss */ +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: #515151; +} + +/* line 323, ../scss/default.scss */ +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: #797979; +} + +/* line 331, ../scss/default.scss */ +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; +} +/* line 336, ../scss/default.scss */ +ul li { + margin-bottom: 0.5em; +} +/* line 339, ../scss/default.scss */ +ul li ul { + margin-left: 2em; + margin-bottom: 0; +} +/* line 343, ../scss/default.scss */ +ul li ul li:before { + content: '-'; + font-weight: 600; +} +/* line 350, ../scss/default.scss */ +ul > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; +} +/* line 357, ../scss/default.scss */ +ul ul { + margin-top: .5em; +} + +/* line 364, ../scss/default.scss */ +.highlight-code slide.current pre > * { + opacity: 0.25; + -webkit-transition: opacity 0.5s ease-in; + -moz-transition: opacity 0.5s ease-in; + -ms-transition: opacity 0.5s ease-in; + -o-transition: opacity 0.5s ease-in; + transition: opacity 0.5s ease-in; +} +/* line 368, ../scss/default.scss */ +.highlight-code slide.current b { + opacity: 1; +} + +/* line 373, ../scss/default.scss */ +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px 60px; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: #e6e6e6; + left: -60px; + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + /*overflow: hidden;*/ +} +/* line 387, ../scss/default.scss */ +pre[data-lang]:after { + content: attr(data-lang); + background-color: #a9a9a9; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; +} + +/* line 400, ../scss/default.scss */ +pre[data-lang="go"] { + color: #333; +} + +/* line 404, ../scss/default.scss */ +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +/* line 410, ../scss/default.scss */ +iframe { + width: 100%; + height: 530px; + background: white; + border: 1px solid #e6e6e6; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 418, ../scss/default.scss */ +dt { + font-weight: bold; +} + +/* line 422, ../scss/default.scss */ +button { + display: inline-block; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #f9f9f9), color-stop(70%, #e3e3e3)); + background: -webkit-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -moz-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -o-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -ms-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + border: 1px solid #a9a9a9; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + padding: 5px 8px; + outline: none; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + cursor: pointer; + text-shadow: 1px 1px white; + font-size: 10pt; +} + +/* line 436, ../scss/default.scss */ +button:not(:disabled):hover { + border-color: #515151; +} + +/* line 440, ../scss/default.scss */ +button:not(:disabled):active { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #e3e3e3), color-stop(70%, #f9f9f9)); + background: -webkit-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -moz-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -o-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -ms-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: linear-gradient(#e3e3e3 40%, #f9f9f9 70%); +} + +/* line 444, ../scss/default.scss */ +:disabled { + color: #a9a9a9; +} + +/* line 448, ../scss/default.scss */ +.blue { + color: #4387fd; +} + +/* line 451, ../scss/default.scss */ +.blue2 { + color: #3c8ef3; +} + +/* line 454, ../scss/default.scss */ +.blue3 { + color: #2a7cdf; +} + +/* line 457, ../scss/default.scss */ +.yellow { + color: #ffd14d; +} + +/* line 460, ../scss/default.scss */ +.yellow2 { + color: #f9cc46; +} + +/* line 463, ../scss/default.scss */ +.yellow3 { + color: #f6c000; +} + +/* line 466, ../scss/default.scss */ +.green { + color: #0da861; +} + +/* line 469, ../scss/default.scss */ +.green2 { + color: #00a86d; +} + +/* line 472, ../scss/default.scss */ +.green3 { + color: #009f5d; +} + +/* line 475, ../scss/default.scss */ +.red { + color: #f44a3f; +} + +/* line 478, ../scss/default.scss */ +.red2 { + color: #e0543e; +} + +/* line 481, ../scss/default.scss */ +.red3 { + color: #d94d3a; +} + +/* line 484, ../scss/default.scss */ +.gray { + color: #e6e6e6; +} + +/* line 487, ../scss/default.scss */ +.gray2 { + color: #a9a9a9; +} + +/* line 490, ../scss/default.scss */ +.gray3 { + color: #797979; +} + +/* line 493, ../scss/default.scss */ +.gray4 { + color: #515151; +} + +/* line 497, ../scss/default.scss */ +.white { + color: white !important; +} + +/* line 500, ../scss/default.scss */ +.black { + color: black !important; +} + +/* line 504, ../scss/default.scss */ +.columns-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + -o-column-count: 2; + column-count: 2; +} + +/* line 508, ../scss/default.scss */ +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid #797979; +} +/* line 515, ../scss/default.scss */ +table tr > td:first-child, table th { + font-weight: 600; + color: #515151; +} +/* line 520, ../scss/default.scss */ +table tr:nth-child(odd) { + background-color: #e6e6e6; +} +/* line 524, ../scss/default.scss */ +table th { + color: white; + font-size: 18px; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #4387fd), color-stop(80%, #2a7cdf)) no-repeat; + background: -webkit-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -moz-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -o-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -ms-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; +} +/* line 530, ../scss/default.scss */ +table td, table th { + font-size: 18px; + padding: 1em 0.5em; +} +/* line 535, ../scss/default.scss */ +table td.highlight { + color: #515151; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #ffd14d), color-stop(80%, #f6c000)) no-repeat; + background: -webkit-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -moz-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -o-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -ms-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; +} +/* line 540, ../scss/default.scss */ +table.rows { + border-bottom: none; + border-right: 1px solid #797979; +} + +/* line 546, ../scss/default.scss */ +q { + font-size: 45px; + line-height: 72px; +} +/* line 550, ../scss/default.scss */ +q:before { + content: '“'; + position: absolute; + margin-left: -0.5em; +} +/* line 555, ../scss/default.scss */ +q:after { + content: '”'; + position: absolute; + margin-left: 0.1em; +} + +/* line 562, ../scss/default.scss */ +slide.fill { + background-repeat: no-repeat; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +/* Size variants */ +/* line 571, ../scss/default.scss */ +article.smaller p, article.smaller ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; +} +/* line 577, ../scss/default.scss */ +article.smaller table td, article.smaller table th { + font-size: 14px; +} +/* line 581, ../scss/default.scss */ +article.smaller pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; +} +/* line 586, ../scss/default.scss */ +article.smaller q { + font-size: 40px; + line-height: 48px; +} +/* line 590, ../scss/default.scss */ +article.smaller q:before, article.smaller q:after { + font-size: 60px; +} + +/* Builds */ +/* line 599, ../scss/default.scss */ +.build > * { + -webkit-transition: opacity 0.5s ease-in-out 0.2s; + -moz-transition: opacity 0.5s ease-in-out 0.2s; + -ms-transition: opacity 0.5s ease-in-out 0.2s; + -o-transition: opacity 0.5s ease-in-out 0.2s; + transition: opacity 0.5s ease-in-out 0.2s; +} +/* line 603, ../scss/default.scss */ +.build .to-build { + opacity: 0; +} +/* line 607, ../scss/default.scss */ +.build .build-fade { + opacity: 0.3; +} +/* line 610, ../scss/default.scss */ +.build .build-fade:hover { + opacity: 1.0; +} + +/* line 617, ../scss/default.scss */ +.popup .next .build .to-build { + opacity: 1; +} +/* line 621, ../scss/default.scss */ +.popup .next .build .build-fade { + opacity: 1; +} + +/* Pretty print */ +/* line 629, ../scss/default.scss */ +.prettyprint .str, +.prettyprint .atv { + /* a markup attribute value */ + color: #009f5d; +} + +/* line 633, ../scss/default.scss */ +.prettyprint .kwd, +.prettyprint .tag { + /* a markup tag name */ + color: #0066cc; +} + +/* line 636, ../scss/default.scss */ +.prettyprint .com { + /* a comment */ + color: #797979; + font-style: italic; +} + +/* line 640, ../scss/default.scss */ +.prettyprint .lit { + /* a literal value */ + color: #7f0000; +} + +/* line 645, ../scss/default.scss */ +.prettyprint .pun, +.prettyprint .opn, +.prettyprint .clo { + color: #515151; +} + +/* line 651, ../scss/default.scss */ +.prettyprint .typ, +.prettyprint .atn, +.prettyprint .dec, +.prettyprint .var { + /* a declaration; a variable name */ + color: #d94d3a; +} + +/* line 654, ../scss/default.scss */ +.prettyprint .pln { + color: #515151; +} + +/* line 658, ../scss/default.scss */ +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transform: translateY(350px); + -moz-transform: translateY(350px); + -ms-transform: translateY(350px); + -o-transform: translateY(350px); + transform: translateY(350px); + -webkit-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; +} +/* line 676, ../scss/default.scss */ +.note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + width: 60%; + padding: 2em; +} + +/* line 693, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide.next, +.with-notes.popup slides.layout-faux-widescreen slide.next { + -webkit-transform: translate3d(690px, 80px, 0) scale(0.35); + -moz-transform: translate3d(690px, 80px, 0) scale(0.35); + -ms-transform: translate3d(690px, 80px, 0) scale(0.35); + -o-transform: translate3d(690px, 80px, 0) scale(0.35); + transform: translate3d(690px, 80px, 0) scale(0.35); +} +/* line 696, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide .note, +.with-notes.popup slides.layout-faux-widescreen slide .note { + -webkit-transform: translate3d(300px, 800px, 0) scale(1.5); + -moz-transform: translate3d(300px, 800px, 0) scale(1.5); + -ms-transform: translate3d(300px, 800px, 0) scale(1.5); + -o-transform: translate3d(300px, 800px, 0) scale(1.5); + transform: translate3d(300px, 800px, 0) scale(1.5); +} +/* line 702, ../scss/default.scss */ +.with-notes.popup slide { + overflow: visible; + background: white; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + pointer-events: none; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + -o-transform-origin: 0 0; + transform-origin: 0 0; +} +/* line 709, ../scss/default.scss */ +.with-notes.popup slide:not(.backdrop) { + -webkit-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -moz-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -ms-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -o-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; +} +/* line 714, ../scss/default.scss */ +.with-notes.popup slide.backdrop { + background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 600, color-stop(0%, #b1dfff), color-stop(100%, #4387fd)); + background-image: -webkit-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -moz-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -o-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -ms-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); +} +/* line 720, ../scss/default.scss */ +.with-notes.popup slide.next { + -webkit-transform: translate3d(570px, 80px, 0) scale(0.35); + -moz-transform: translate3d(570px, 80px, 0) scale(0.35); + -ms-transform: translate3d(570px, 80px, 0) scale(0.35); + -o-transform: translate3d(570px, 80px, 0) scale(0.35); + transform: translate3d(570px, 80px, 0) scale(0.35); + opacity: 1 !important; +} +/* line 724, ../scss/default.scss */ +.with-notes.popup slide.next .note { + display: none !important; +} +/* line 730, ../scss/default.scss */ +.with-notes.popup .note { + width: 109%; + height: 260px; + background: #e6e6e6; + padding: 0; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + -webkit-transform: translate3d(250px, 800px, 0) scale(1.5); + -moz-transform: translate3d(250px, 800px, 0) scale(1.5); + -ms-transform: translate3d(250px, 800px, 0) scale(1.5); + -o-transform: translate3d(250px, 800px, 0) scale(1.5); + transform: translate3d(250px, 800px, 0) scale(1.5); + -webkit-transition: opacity 400ms ease-in-out; + -moz-transition: opacity 400ms ease-in-out; + -ms-transition: opacity 400ms ease-in-out; + -o-transition: opacity 400ms ease-in-out; + transition: opacity 400ms ease-in-out; +} +/* line 741, ../scss/default.scss */ +.with-notes.popup .note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + height: 100%; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + overflow: auto; + padding: 1em; +} +/* line 754, ../scss/default.scss */ +.with-notes .note { + opacity: 1; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); + pointer-events: auto; +} + +/* line 761, ../scss/default.scss */ +.source { + font-size: 14px; + color: #a9a9a9; + position: absolute; + bottom: 70px; + left: 60px; +} + +/* line 769, ../scss/default.scss */ +.centered { + text-align: center; +} + +/* line 773, ../scss/default.scss */ +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255, 255, 255, 0) 85%, #ffffff 150%); +} + +/* line 781, ../scss/default.scss */ +.flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +/* line 785, ../scss/default.scss */ +.flexbox.vcenter { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 791, ../scss/default.scss */ +.flexbox.vleft { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: left; + -moz-box-align: left; + -ms-box-align: left; + box-align: left; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 797, ../scss/default.scss */ +.flexbox.vright { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: end; + -moz-box-align: end; + -ms-box-align: end; + box-align: end; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 803, ../scss/default.scss */ +.auto-fadein { + -webkit-transition: opacity 0.6s ease-in 1s; + -moz-transition: opacity 0.6s ease-in 1s; + -ms-transition: opacity 0.6s ease-in 1s; + -o-transition: opacity 0.6s ease-in 1s; + transition: opacity 0.6s ease-in 1s; + opacity: 0; +} + +/* Clickable/tappable areas */ +/* line 809, ../scss/default.scss */ +.slide-area { + z-index: 1000; + position: absolute; + left: 0; + top: 0; + width: 100px; + height: 700px; + left: 50%; + top: 50%; + cursor: pointer; + margin-top: -350px; +} + +/* line 826, ../scss/default.scss */ +#prev-slide-area { + margin-left: -550px; +} + +/* line 831, ../scss/default.scss */ +#next-slide-area { + margin-left: 450px; +} + +/* ===== SLIDE CONTENT ===== */ +/* line 839, ../scss/default.scss */ +.logoslide img { + width: 383px; + height: 92px; +} + +/* line 845, ../scss/default.scss */ +.segue { + padding: 60px 120px; +} +/* line 848, ../scss/default.scss */ +.segue h2 { + color: #e6e6e6; + font-size: 60px; +} +/* line 852, ../scss/default.scss */ +.segue h3 { + color: #e6e6e6; + line-height: 2.8; +} +/* line 856, ../scss/default.scss */ +.segue hgroup { + position: absolute; + bottom: 225px; +} + +/* line 862, ../scss/default.scss */ +.thank-you-slide { + background: #4387fd !important; + color: white; +} +/* line 866, ../scss/default.scss */ +.thank-you-slide h2 { + font-size: 60px; + color: inherit; +} +/* line 871, ../scss/default.scss */ +.thank-you-slide article > p { + margin-top: 2em; + font-size: 20pt; +} +/* line 876, ../scss/default.scss */ +.thank-you-slide > p { + position: absolute; + bottom: 80px; + font-size: 24pt; + line-height: 1.3; +} + +/* line 884, ../scss/default.scss */ +aside.gdbar { + height: 97px; + width: 215px; + position: absolute; + left: -1px; + top: 125px; + -webkit-border-radius: 0 10px 10px 0; + -moz-border-radius: 0 10px 10px 0; + -ms-border-radius: 0 10px 10px 0; + -o-border-radius: 0 10px 10px 0; + border-radius: 0 10px 10px 0; + background: -webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e6e6e6), color-stop(100%, #e6e6e6)) no-repeat; + background: -webkit-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -moz-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -o-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -ms-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + -webkit-background-size: 0% 100%; + -moz-background-size: 0% 100%; + -o-background-size: 0% 100%; + background-size: 0% 100%; + -webkit-transition: all 0.5s ease-out 0.5s; + -moz-transition: all 0.5s ease-out 0.5s; + -ms-transition: all 0.5s ease-out 0.5s; + -o-transition: all 0.5s ease-out 0.5s; + transition: all 0.5s ease-out 0.5s; + /* Better to transition only on background-size, but not sure how to do that with the mixin. */ +} +/* line 895, ../scss/default.scss */ +aside.gdbar.right { + right: 0; + left: -moz-initial; + left: initial; + top: 254px; + /* 96 is height of gray icon bar */ + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 902, ../scss/default.scss */ +aside.gdbar.right img { + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 907, ../scss/default.scss */ +aside.gdbar.bottom { + top: -moz-initial; + top: initial; + bottom: 60px; +} +/* line 913, ../scss/default.scss */ +aside.gdbar img { + width: 85px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; +} + +/* line 924, ../scss/default.scss */ +.title-slide hgroup { + bottom: 100px; +} +/* line 927, ../scss/default.scss */ +.title-slide hgroup h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: #515151; +} +/* line 934, ../scss/default.scss */ +.title-slide hgroup h2 { + font-size: 34px; + color: #a9a9a9; + font-weight: inherit; +} +/* line 940, ../scss/default.scss */ +.title-slide hgroup p { + font-size: 20px; + color: #797979; + line-height: 1.3; + margin-top: 2em; +} + +/* line 949, ../scss/default.scss */ +.quote { + color: #e6e6e6; +} +/* line 952, ../scss/default.scss */ +.quote .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; +} + +/* line 961, ../scss/default.scss */ +[data-config-contact] a { + color: white; + border-bottom: none; +} +/* line 965, ../scss/default.scss */ +[data-config-contact] span { + width: 115px; + display: inline-block; +} + +/* line 974, ../scss/default.scss */ +.overview.popup .note { + display: none !important; +} +/* line 980, ../scss/default.scss */ +.overview slides slide { + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 981, ../scss/default.scss */ +.overview slides slide.backdrop { + display: none !important; +} +/* line 996, ../scss/default.scss */ +.overview slides slide.far-past, .overview slides slide.past, .overview slides slide.next, .overview slides slide.far-next, .overview slides slide.far-past { + opacity: 0.5; + display: block; +} +/* line 1001, ../scss/default.scss */ +.overview slides slide.current { + opacity: 1; +} +/* line 1007, ../scss/default.scss */ +.overview .slide-area { + display: none; +} + +@media print { + /* line 1014, ../scss/default.scss */ + slides slide { + display: block !important; + position: relative; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + -o-transform: none !important; + transform: none !important; + width: 100%; + height: 100%; + page-break-after: always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + } + /* line 1034, ../scss/default.scss */ + slides slide.far-past, slides slide.past, slides slide.next, slides slide.far-next, slides slide.far-past, slides slide.current { + opacity: 1 !important; + display: block !important; + } + /* line 1040, ../scss/default.scss */ + slides slide .build > * { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + } + /* line 1045, ../scss/default.scss */ + slides slide .build .to-build, + slides slide .build .build-fade { + opacity: 1; + } + /* line 1050, ../scss/default.scss */ + slides slide .auto-fadein { + opacity: 1 !important; + } + /* line 1054, ../scss/default.scss */ + slides slide.backdrop { + display: none !important; + } + /* line 1058, ../scss/default.scss */ + slides slide table.rows { + border-right: 0; + } + /* line 1063, ../scss/default.scss */ + slides slide[hidden] { + display: none !important; + } + + /* line 1068, ../scss/default.scss */ + .slide-area { + display: none; + } + + /* line 1072, ../scss/default.scss */ + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + /* line 1080, ../scss/default.scss */ + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/theme/css/phone.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/theme/css/phone.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,27 @@ +/*Smartphones (portrait and landscape) ----------- */ +/*@media only screen +and (min-width : 320px) +and (max-width : 480px) { + +}*/ +/* Smartphones (portrait) ----------- */ +/* Styles */ +/* line 17, ../scss/phone.scss */ +slides > slide { + /* width: $slide-width !important; + height: $slide-height !important; + margin-left: -$slide-width / 2 !important; + margin-top: -$slide-height / 2 !important; + */ + -webkit-transition: none !important; + -webkit-transition: none !important; + -moz-transition: none !important; + -ms-transition: none !important; + -o-transition: none !important; + transition: none !important; +} + +/* iPhone 4 ----------- */ +@media only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5) { + /* Styles */ +} diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/theme/scss/_base.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/theme/scss/_base.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,135 @@ +@import "compass/reset"; +@import "compass/css3/border-radius"; +@import "compass/css3/box"; +@import "compass/css3/box-shadow"; +@import "compass/css3/box-sizing"; +@import "compass/css3/images"; +@import "compass/css3/text-shadow"; +@import "compass/css3/background-size"; +@import "compass/css3/transform"; +@import "compass/css3/transition"; + +@mixin font-smoothing($val: antialiased) { + -webkit-font-smoothing: $val; + -moz-font-smoothing: $val; + -ms-font-smoothing: $val; + -o-font-smoothing: $val; +} + +@mixin flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +@mixin flex-center-center { + @include box-orient(vertical); + @include box-align(center); + @include box-pack(center); +} + +@mixin flex-left-center { + @include box-orient(vertical); + @include box-align(left); + @include box-pack(center); +} + +@mixin flex-right-center { + @include box-orient(vertical); + @include box-align(end); + @include box-pack(center); +} + +/** + * Base SlideDeck Styles + */ +html { + height: 100%; + overflow: hidden; +} + +body { + margin: 0; + padding: 0; + + opacity: 0; + + height: 100%; + min-height: 740px; + width: 100%; + + overflow: hidden; + + color: #fff; + @include font-smoothing(antialiased); + @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank. + + &.loaded { + opacity: 1 !important; + } +} + +input, button { + vertical-align: middle; +} + +slides > slide[hidden] { + display: none !important; +} + +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + @include transform(translate3d(0, 0, 0)); + @include perspective(1000); + @include transform-style(preserve-3d); + @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank. +} + +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + @include box-sizing(border-box); +} + +/* Slide styles */ + + +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/theme/scss/default.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/theme/scss/default.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1083 @@ +@import "base"; +@import "compass/css3/columns"; +@import "compass/css3/user-interface"; + +$social-tags: '#yourhashtag'; +$brand-small-icon-size: 30px; + +$gray-1: #e6e6e6; +$gray-2: #a9a9a9; +$gray-3: #797979; +$gray-4: #515151; + +$brand-blue: rgb(67, 135, 253); +$brand-blue-secondary: #3c8ef3; +$brand-blue-secondary2: #2a7cdf; + +$brand-red: rgb(244, 74, 63); +$brand-red-secondary: #e0543e; +$brand-red-secondary2: #d94d3a; + +$brand-yellow: rgb(255, 209, 77); +$brand-yellow-secondary: #f9cc46; +$brand-yellow-secondary2: #f6c000; + +$brand-green: rgb(13, 168, 97); +$brand-green-secondary: #00a86d; +$brand-green-secondary2: #009f5d; + +$slide-width: 900px; +$slide-height: 700px; +$slide-width-widescreen: 1100px; +$slide-top-bottom-padding: 40px; +$slide-left-right-padding: 60px; +$slide-border-radius: 5px; + +$slide-tap-area-width: 100px; + +$article-content-top-padding: 45px; + +@mixin highlight-color($color: $brand-yellow) { + -webkit-tap-highlight-color: $color; + -moz-tap-highlight-color: $color; + -ms-tap-highlight-color: $color; + -o-tap-highlight-color: $color; + tap-highlight-color: $color; +} + +@mixin backdrop { + @include background(linear-gradient(white, white 85%, $gray-1)); + background-color: white; +} + + + +/** + * Theme Styles + */ +::selection { + color: white; + background-color: $brand-yellow; + @include text-shadow(none); +} + +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, .1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + @include box-shadow(inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)); + border-width: 1px 1px 1px 6px; +} +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} +::-webkit-scrollbar-button { + height: 0; + width: 0; +} +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} +::-webkit-scrollbar-corner { + background: transparent; +} + +body { + background: black; +} + +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: $gray-3; + //@include background(linear-gradient(white, white 85%, $gray-1)); + //background-color: white; + width: $slide-width; + height: $slide-height; + margin-left: -$slide-width / 2; + margin-top: -$slide-height / 2; + padding: $slide-top-bottom-padding $slide-left-right-padding; + + @include border-radius($slide-border-radius); + //@include box-shadow(5px 5px 20px $gray-4); + @include transition(all 0.6s ease-in-out); + + //$translateX: 1020px; + //$rotateY: 30deg; + //$rotateX: 45deg; + + &.far-past { + //display: block; + display: none; + //@include transform(translate(-$translateX * 2)); + //@include transform(translate3d(-$translateX * 2, 0, 0)); + } + + &.past { + display: block; + //@include transform(translate(-$translateX) rotateY($rotateY) rotateX($rotateX)); + //@include transform(translate3d(-$translateX, 0, 0) rotateY($rotateY) rotateX($rotateX)); + opacity: 0; + } + + &.current { + display: block; + //@include transform(translate(0)); + //@include transform(translate3d(0, 0, 0)); + opacity: 1; + + .auto-fadein { + opacity: 1; + } + + .gdbar { + @include background-size(100% 100%); + } + } + + &.next { + display: block; + //@include transform(translate($translateX) rotateY(-$rotateY) rotateX($rotateX)); + //@include transform(translate3d($translateX, 0, 0) rotateY(-$rotateY) rotateX($rotateX)); + opacity: 0; + pointer-events: none; + } + + &.far-next { + //display: block; + display: none; + //@include transform(translate($translateX * 2)); + //@include transform(translate3d($translateX * 2, 0, 0)); + } + + &.dark { + background: $gray-4 !important; + } + + &:not(.nobackground) { + //background: white url(../../images/google_developers_icon_128.png) ($brand-small-icon-size * 2) 98% no-repeat; + //@include background-size($brand-small-icon-size $brand-small-icon-size); + + &:before { + font-size: 12pt; + content: $social-tags; + position: absolute; + bottom: $slide-top-bottom-padding / 2; + left: $slide-left-right-padding; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + @include background-size($brand-small-icon-size $brand-small-icon-size); + padding-left: $brand-small-icon-size + 10; + height: $brand-small-icon-size; + line-height: 1.9; + } + &:after { + font-size: 12pt; + content: attr(data-slide-num) '/' attr(data-total-slides); + position: absolute; + bottom: $slide-top-bottom-padding / 2; + right: $slide-left-right-padding; + line-height: 1.9; + } + } + + &.title-slide { + &:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + @include background-size(contain); + position: absolute; + bottom: $slide-top-bottom-padding; + right: $slide-top-bottom-padding; + width: 100%; + height: 60px; + } + } + + &.backdrop { + z-index: -10; + display: block !important; + @include backdrop; + + &:after, &:before { + display: none; // Prevent double set of slide nums and footer icons. + } + } + + > hgroup + article { + margin-top: $article-content-top-padding; + + &.flexbox { + &.vcenter, &.vleft, &.vright { + height: 80%; + } + } + + p { + margin-bottom: 1em; + } + } + + > article:only-child { + height: 100%; + + > iframe { + height: 98%; + } + } +} + +slides.layout-faux-widescreen > slide { + padding: $slide-top-bottom-padding 160px; +} + +slides.layout-widescreen, +slides.layout-faux-widescreen { + + $translateX: 1130px; + + > slide { + margin-left: -$slide-width-widescreen / 2; + width: $slide-width-widescreen; + } + + > slide.far-past { + display: block; + display: none; + @include transform(translate(-$translateX * 2)); + @include transform(translate3d(-$translateX * 2, 0, 0)); + } + + > slide.past { + display: block; + //@include transform(translate(-$translateX)); + //@include transform(translate3d(-$translateX, 0, 0)); + opacity: 0; + } + + > slide.current { + display: block; + //@include transform(translate(0)); + //@include transform(translate3d(0, 0, 0)); + opacity: 1; + } + + > slide.next { + display: block; + //@include transform(translate($translateX)); + //@include transform(translate3d($translateX, 0, 0)); + opacity: 0; + pointer-events: none; + } + + > slide.far-next { + display: block; + display: none; + @include transform(translate($translateX * 2)); + @include transform(translate3d($translateX * 2, 0, 0)); + } + + #prev-slide-area { + margin-left: -$slide-width-widescreen / 2 - $slide-tap-area-width; + } + + #next-slide-area { + margin-left: $slide-width-widescreen / 2; + } +} + +b { + font-weight: 600; +} + +a { + color: $brand-blue-secondary2; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); + + &:hover { + color: black !important; + } +} + +h1, h2, h3 { + font-weight: 600; +} + +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: $gray-4; +} + +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: $gray-3; +} + +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; + + li { + margin-bottom: 0.5em; + + ul { + margin-left: 2em; + margin-bottom: 0; + + li:before { + content: '-'; + font-weight: 600; + } + } + } + + > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; + } + + ul { + margin-top: .5em; + } +} + +// Code highlighting only effects the current slide. +.highlight-code slide.current { + pre > * { + opacity: 0.25; + @include transition(opacity 0.5s ease-in); + } + b { + opacity: 1; + } +} + +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px $slide-left-right-padding; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: $gray-1; + left: -$slide-left-right-padding; + position: relative; + @include box-sizing(border-box); + /*overflow: hidden;*/ + + &[data-lang]:after { + content: attr(data-lang); + background-color: $gray-2; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; + } +} + +pre[data-lang="go"] { + color: #333; +} + +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +iframe { + width: 100%; + height: $slide-height - ($slide-top-bottom-padding * 2) - ($article-content-top-padding * 2); + background: white; + border: 1px solid $gray-1; + @include box-sizing(border-box); +} + +dt { + font-weight: bold; +} + +button { + display: inline-block; + @include background(linear-gradient(#F9F9F9 40%, #E3E3E3 70%)); + border: 1px solid $gray-2; + @include border-radius(3px); + padding: 5px 8px; + outline: none; + white-space: nowrap; + @include user-select(none); + cursor: pointer; + @include text-shadow(1px 1px #fff); + font-size: 10pt; +} + +button:not(:disabled):hover { + border-color: $gray-4; +} + +button:not(:disabled):active { + @include background(linear-gradient(#E3E3E3 40%, #F9F9F9 70%)); +} + +:disabled { + color: $gray-2; +} + +.blue { + color: $brand-blue; +} +.blue2 { + color: $brand-blue-secondary; +} +.blue3 { + color: $brand-blue-secondary2; +} +.yellow { + color: $brand-yellow; +} +.yellow2 { + color: $brand-yellow-secondary; +} +.yellow3 { + color: $brand-yellow-secondary2; +} +.green { + color: $brand-green; +} +.green2 { + color: $brand-green-secondary; +} +.green3 { + color: $brand-green-secondary2; +} +.red { + color: $brand-red; +} +.red2 { + color: $brand-red-secondary; +} +.red3 { + color: $brand-red-secondary2; +} +.gray { + color: $gray-1; +} +.gray2 { + color: $gray-2; +} +.gray3 { + color: $gray-3; +} +.gray4 { + color: $gray-4; +} + +.white { + color: white !important; +} +.black { + color: black !important; +} + +.columns-2 { + @include column-count(2); +} + +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid $gray-3; + + tr > td:first-child, th { + font-weight: 600; + color: $gray-4; + } + + tr:nth-child(odd) { + background-color: $gray-1; + } + + th { + color: white; + font-size: 18px; + @include background(linear-gradient(top, $brand-blue 40%, $brand-blue-secondary2 80%) no-repeat); + } + + td, th { + font-size: 18px; + padding: 1em 0.5em; + } + + td.highlight { + color: $gray-4; + @include background(linear-gradient(top, $brand-yellow 40%, $brand-yellow-secondary2 80%) no-repeat); + } + + &.rows { + border-bottom: none; + border-right: 1px solid $gray-3; + } +} + +q { + font-size: 45px; + line-height: 72px; + + &:before { + content: '“'; + position: absolute; + margin-left: -0.5em; + } + &:after { + content: '”'; + position: absolute; + margin-left: 0.1em; + } +} + +slide.fill { + background-repeat: no-repeat; + @include border-radius($slide-border-radius); + @include background-size(cover); +} + +/* Size variants */ + +article.smaller { + p, ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; + } + table { + td, th { + font-size: 14px; + } + } + pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; + } + q { + font-size: 40px; + line-height: 48px; + + &:before, &:after { + font-size: 60px; + } + } +} + +/* Builds */ + +.build { + > * { + @include transition(opacity 0.5s ease-in-out 0.2s); + } + + .to-build { + opacity: 0; + } + + .build-fade { + opacity: 0.3; + + &:hover { + opacity: 1.0; + } + } +} + +.popup .next .build { + .to-build { + opacity: 1; + } + + .build-fade { + opacity: 1; + } +} + +/* Pretty print */ + +.prettyprint .str, /* string content */ +.prettyprint .atv { /* a markup attribute value */ + color: $brand-green-secondary2; //rgb(0, 138, 53); +} +.prettyprint .kwd, /* a keyword */ +.prettyprint .tag { /* a markup tag name */ + color: rgb(0, 102, 204); +} +.prettyprint .com { /* a comment */ + color: $gray-3; //rgb(127, 127, 127); + font-style: italic; +} +.prettyprint .lit { /* a literal value */ + color: rgb(127, 0, 0); +} +.prettyprint .pun, /* punctuation, lisp open bracket, lisp close bracket */ +.prettyprint .opn, +.prettyprint .clo { + color: $gray-4; //rgb(127, 127, 127); +} +.prettyprint .typ, /* a type name */ +.prettyprint .atn, /* a markup attribute name */ +.prettyprint .dec, +.prettyprint .var { /* a declaration; a variable name */ + color: $brand-red-secondary2; //rgb(127, 0, 127); +} +.prettyprint .pln { + color: $gray-4; +} + +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + @include flexbox; + @include flex-center-center; + @include border-radius($slide-border-radius); + + @include box-sizing(border-box); + @include transform(translateY($slide-height / 2));@include transition(all 0.4s ease-in-out); + + > section { + background: #fff; + @include border-radius($slide-border-radius); + @include box-shadow(0 0 10px $gray-3); + width: 60%; + padding: 2em; + } +} + +// Speaker notes only show the current slide. +.with-notes { + + &.popup { + + slides.layout-widescreen, + slides.layout-faux-widescreen { + slide { + &.next { + @include transform(translate3d($slide-width-widescreen / 2 + 140, 80px, 0) scale(0.35)); + } + .note { + @include transform(translate3d(300px, $slide-height + 100, 0) scale(1.5)); + } + } + } + + slide { + overflow: visible; + background: white; + @include transition(none); // No slide transition goodies when in presenter mode. + pointer-events: none; + @include transform-origin(0, 0); // For speaker note transition. + + &:not(.backdrop) { + @include transform(scale(0.6) translate3d(0.5em, 0.5em, 0)); + @include box-shadow(0 0 10px $gray-3); + } + + &.backdrop { + //@include background(linear-gradient($gray-1, white 30%, white 60%, $gray-1)); + @include background-image(radial-gradient(50% 50%, #b1dfff 0%, + $brand-blue 600px)); + } + + &.next { + @include transform(translate3d($slide-width / 2 + 120, 80px, 0) scale(0.35)); + opacity: 1 !important; + + .note { + display: none !important; // Prevents seeing notes if we go to previous slide. + } + } + } + + .note { + width: 109%; + height: $slide-height / 2 - 90; + background: $gray-1; + padding: 0; + + @include box-shadow(0 0 10px $gray-3); + + @include transform(translate3d(250px, $slide-height + 100, 0) scale(1.5)); + @include transition(opacity 400ms ease-in-out); + + > section { + background: #fff; + @include border-radius($slide-border-radius); + height: 100%; + width: 100%; + @include box-sizing(border-box); + @include box-shadow(none); + overflow: auto; + padding: 1em; + } + } + } + + .note { + opacity: 1; + @include transform(translateY(0)); + pointer-events: auto; // Allow people to do things like open links embedded in the speaker notes. + } +} + +.source { + font-size: 14px; + color: $gray-2; + position: absolute; + bottom: $slide-top-bottom-padding + 30px; + left: $slide-left-right-padding; +} + +.centered { + text-align: center; +} + +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255,255,255,0) 85%, white 150%); +} + +.flexbox { + @include flexbox; +} + +.flexbox.vcenter { + @include flex-center-center; + height: 100%; + width: 100%; +} + +.flexbox.vleft { + @include flex-left-center; + height: 100%; + width: 100%; +} + +.flexbox.vright { + @include flex-right-center; + height: 100%; + width: 100%; +} + +.auto-fadein { + @include transition(opacity 0.6s ease-in 1s); + opacity: 0; +} + +/* Clickable/tappable areas */ +.slide-area { + z-index: 1000; + + position: absolute; + left: 0; + top: 0; + width: $slide-tap-area-width; + height: $slide-height; + + left: 50%; + top: 50%; + + cursor: pointer; + margin-top: -$slide-height / 2; + + //@include highlight-color(rgba(51, 51, 51, 0.5)); +} +#prev-slide-area { + margin-left: -$slide-width-widescreen / 2; + //@include border-radius(10px 0 0 10px); + //@include box-shadow(-5px 0 10px #222 inset); +} +#next-slide-area { + margin-left: $slide-width / 2; + //@include border-radius(0 10px 10px 0); + //@include box-shadow(5px 0 10px #222 inset); +} + +/* ===== SLIDE CONTENT ===== */ +.logoslide { + img { + width: 383px; + height: 92px; + } +} + +.segue { + padding: $slide-left-right-padding $slide-left-right-padding * 2; + + h2 { + color: $gray-1; + font-size: 60px; + } + h3 { + color: $gray-1; + line-height: 2.8; + } + hgroup { + position: absolute; + bottom: 225px; + } +} + +.thank-you-slide { + background: $brand-blue !important; + color: white; + + h2 { + font-size: 60px; + color: inherit; + } + + article > p { + margin-top: 2em; + font-size: 20pt; + } + + > p { + position: absolute; + bottom: $slide-top-bottom-padding * 2; + font-size: 24pt; + line-height: 1.3; + } +} + +aside.gdbar { + height: 97px; + width: 215px; + position: absolute; + left: -1px; + top: 125px; + @include border-radius(0 10px 10px 0); + @include background(linear-gradient(left, $gray-1, $gray-1) no-repeat); + @include background-size(0% 100%); + @include transition(all 0.5s ease-out 0.5s); /* Better to transition only on background-size, but not sure how to do that with the mixin. */ + + &.right { + right: 0; + left: -moz-initial; + left: initial; + top: ($slide-height / 2) - 96; /* 96 is height of gray icon bar */ + @include transform(rotateZ(180deg)); + + img { + @include transform(rotateZ(180deg)); + } + } + + &.bottom { + top: -moz-initial; + top: initial; + bottom: $slide-left-right-padding; + } + + img { + width: 85px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; + } +} + +.title-slide { + + hgroup { + bottom: 100px; + + h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: $gray-4; + } + + h2 { + font-size: 34px; + color: $gray-2; + font-weight: inherit; + } + + p { + font-size: 20px; + color: $gray-3; + line-height: 1.3; + margin-top: 2em; + } + } +} + +.quote { + color: $gray-1; + + .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; + } +} + +[data-config-contact] { + a { + color: rgb(255, 255, 255); + border-bottom: none; + } + span { + width: 115px; + display: inline-block; + } +} + +.overview { + + &.popup { + .note { + display: none !important; + } + } + + slides { + slide { + &.backdrop { + display: none !important; + } + + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + + @include backdrop(); + + &.far-past, + &.past, + &.next, + &.far-next, + &.far-past { + opacity: 0.5; + display: block; + } + + &.current { + opacity: 1; + } + } + } + + .slide-area { + display: none; + } +} + +@media print { + slides { + slide { + display: block !important; + position: relative; + @include backdrop(); + @include transform(none !important); + width: 100%; + height: 100%; + page-break-after:always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + + &.far-past, + &.past, + &.next, + &.far-next, + &.far-past, + &.current { + opacity: 1 !important; + display: block !important; + } + + .build { + > * { + @include transition(none); + } + + .to-build, + .build-fade { + opacity: 1; + } + } + + .auto-fadein { + opacity: 1 !important; + } + + &.backdrop { + display: none !important; + } + + table.rows { + border-right: 0; + } + } + + slide[hidden] { + display: none !important; + } + } + + .slide-area { + display: none; + } + + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/io2012slides/theme/scss/phone.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/io2012slides/theme/scss/phone.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,35 @@ +@import "compass/css3/transition"; + + +/*Smartphones (portrait and landscape) ----------- */ +/*@media only screen +and (min-width : 320px) +and (max-width : 480px) { + +}*/ + +/* Smartphones (portrait) ----------- */ +//@media only screen and (max-device-width: 480px) { +/* Styles */ +//$slide-width: 350px; +//$slide-height: 500px; + +slides > slide { +/* width: $slide-width !important; + height: $slide-height !important; + margin-left: -$slide-width / 2 !important; + margin-top: -$slide-height / 2 !important; +*/ + // Don't do full slide transitions on mobile. + -webkit-transition: none !important; // Bug in compass? Not sure why the below is not working + @include transition(none !important); +} + +//} + +/* iPhone 4 ----------- */ +@media +only screen and (-webkit-min-device-pixel-ratio : 1.5), +only screen and (min-device-pixel-ratio : 1.5) { +/* Styles */ +} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/slide/css/default.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/slide/css/default.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1498 @@ +/* line 17, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +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; +} + +/* line 20, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +body { + line-height: 1; +} + +/* line 22, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 24, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 26, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 28, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 101, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 30, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 114, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { + display: block; +} + +/** + * Base SlideDeck Styles + */ +/* line 48, ../scss/_base.scss */ +html { + height: 100%; + overflow: hidden; +} + +/* line 53, ../scss/_base.scss */ +body { + margin: 0; + padding: 0; + opacity: 0; + height: 100%; + min-height: 740px; + width: 100%; + overflow: hidden; + color: #fff; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} +/* line 69, ../scss/_base.scss */ +body.loaded { + opacity: 1 !important; +} + +/* line 74, ../scss/_base.scss */ +input, button { + vertical-align: middle; +} + +/* line 78, ../scss/_base.scss */ +slides > slide[hidden] { + display: none !important; +} + +/* line 82, ../scss/_base.scss */ +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-perspective: 1000; + perspective: 1000; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} + +/* line 94, ../scss/_base.scss */ +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Slide styles */ +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ +/** + * Theme Styles + */ +/* line 58, ../scss/default.scss */ +::selection { + color: white; + background-color: #ffd14d; + text-shadow: none; +} + +/* line 64, ../scss/default.scss */ +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} + +/* line 69, ../scss/default.scss */ +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + border-width: 1px 1px 1px 6px; +} + +/* line 78, ../scss/default.scss */ +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} + +/* line 81, ../scss/default.scss */ +::-webkit-scrollbar-button { + height: 0; + width: 0; +} + +/* line 85, ../scss/default.scss */ +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} + +/* line 90, ../scss/default.scss */ +::-webkit-scrollbar-corner { + background: transparent; +} + +/* line 94, ../scss/default.scss */ +body { + background: black; +} + +/* line 98, ../scss/default.scss */ +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: #797979; + width: 900px; + height: 700px; + margin-left: -450px; + margin-top: -350px; + padding: 40px 60px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} +/* line 119, ../scss/default.scss */ +slides > slide.far-past { + display: none; +} +/* line 126, ../scss/default.scss */ +slides > slide.past { + display: block; + opacity: 0; +} +/* line 133, ../scss/default.scss */ +slides > slide.current { + display: block; + opacity: 1; +} +/* line 139, ../scss/default.scss */ +slides > slide.current .auto-fadein { + opacity: 1; +} +/* line 143, ../scss/default.scss */ +slides > slide.current .gdbar { + -webkit-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -o-background-size: 100% 100%; + background-size: 100% 100%; +} +/* line 148, ../scss/default.scss */ +slides > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 156, ../scss/default.scss */ +slides > slide.far-next { + display: none; +} +/* line 163, ../scss/default.scss */ +slides > slide.dark { + background: #515151 !important; +} +/* line 171, ../scss/default.scss */ +slides > slide:not(.nobackground):before { + font-size: 12pt; + content: "#yourhashtag"; + position: absolute; + bottom: 20px; + left: 60px; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + -webkit-background-size: 30px 30px; + -moz-background-size: 30px 30px; + -o-background-size: 30px 30px; + background-size: 30px 30px; + padding-left: 40px; + height: 30px; + line-height: 1.9; +} +/* line 183, ../scss/default.scss */ +slides > slide:not(.nobackground):after { + font-size: 12pt; + content: attr(data-slide-num) "/" attr(data-total-slides); + position: absolute; + bottom: 20px; + right: 60px; + line-height: 1.9; +} +/* line 194, ../scss/default.scss */ +slides > slide.title-slide:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + -webkit-background-size: contain; + -moz-background-size: contain; + -o-background-size: contain; + background-size: contain; + position: absolute; + bottom: 40px; + right: 40px; + width: 100%; + height: 60px; +} +/* line 206, ../scss/default.scss */ +slides > slide.backdrop { + z-index: -10; + display: block !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 211, ../scss/default.scss */ +slides > slide.backdrop:after, slides > slide.backdrop:before { + display: none; +} +/* line 216, ../scss/default.scss */ +slides > slide > hgroup + article { + margin-top: 45px; +} +/* line 220, ../scss/default.scss */ +slides > slide > hgroup + article.flexbox.vcenter, slides > slide > hgroup + article.flexbox.vleft, slides > slide > hgroup + article.flexbox.vright { + height: 80%; +} +/* line 225, ../scss/default.scss */ +slides > slide > hgroup + article p { + margin-bottom: 1em; +} +/* line 230, ../scss/default.scss */ +slides > slide > article:only-child { + height: 100%; +} +/* line 233, ../scss/default.scss */ +slides > slide > article:only-child > iframe { + height: 98%; +} + +/* line 239, ../scss/default.scss */ +slides.layout-faux-widescreen > slide { + padding: 40px 160px; +} + +/* line 248, ../scss/default.scss */ +slides.layout-widescreen > slide, +slides.layout-faux-widescreen > slide { + margin-left: -550px; + width: 1100px; +} +/* line 253, ../scss/default.scss */ +slides.layout-widescreen > slide.far-past, +slides.layout-faux-widescreen > slide.far-past { + display: block; + display: none; + -webkit-transform: translate(-2260px); + -moz-transform: translate(-2260px); + -ms-transform: translate(-2260px); + -o-transform: translate(-2260px); + transform: translate(-2260px); + -webkit-transform: translate3d(-2260px, 0, 0); + -moz-transform: translate3d(-2260px, 0, 0); + -ms-transform: translate3d(-2260px, 0, 0); + -o-transform: translate3d(-2260px, 0, 0); + transform: translate3d(-2260px, 0, 0); +} +/* line 260, ../scss/default.scss */ +slides.layout-widescreen > slide.past, +slides.layout-faux-widescreen > slide.past { + display: block; + opacity: 0; +} +/* line 267, ../scss/default.scss */ +slides.layout-widescreen > slide.current, +slides.layout-faux-widescreen > slide.current { + display: block; + opacity: 1; +} +/* line 274, ../scss/default.scss */ +slides.layout-widescreen > slide.next, +slides.layout-faux-widescreen > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 282, ../scss/default.scss */ +slides.layout-widescreen > slide.far-next, +slides.layout-faux-widescreen > slide.far-next { + display: block; + display: none; + -webkit-transform: translate(2260px); + -moz-transform: translate(2260px); + -ms-transform: translate(2260px); + -o-transform: translate(2260px); + transform: translate(2260px); + -webkit-transform: translate3d(2260px, 0, 0); + -moz-transform: translate3d(2260px, 0, 0); + -ms-transform: translate3d(2260px, 0, 0); + -o-transform: translate3d(2260px, 0, 0); + transform: translate3d(2260px, 0, 0); +} +/* line 289, ../scss/default.scss */ +slides.layout-widescreen #prev-slide-area, +slides.layout-faux-widescreen #prev-slide-area { + margin-left: -650px; +} +/* line 293, ../scss/default.scss */ +slides.layout-widescreen #next-slide-area, +slides.layout-faux-widescreen #next-slide-area { + margin-left: 550px; +} + +/* line 298, ../scss/default.scss */ +b { + font-weight: 600; +} + +/* line 302, ../scss/default.scss */ +a { + color: #2a7cdf; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); +} +/* line 307, ../scss/default.scss */ +a:hover { + color: black !important; +} + +/* line 312, ../scss/default.scss */ +h1, h2, h3 { + font-weight: 600; +} + +/* line 316, ../scss/default.scss */ +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: #515151; +} + +/* line 323, ../scss/default.scss */ +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: #797979; +} + +/* line 331, ../scss/default.scss */ +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; +} +/* line 336, ../scss/default.scss */ +ul li { + margin-bottom: 0.5em; +} +/* line 339, ../scss/default.scss */ +ul li ul { + margin-left: 2em; + margin-bottom: 0; +} +/* line 343, ../scss/default.scss */ +ul li ul li:before { + content: '-'; + font-weight: 600; +} +/* line 350, ../scss/default.scss */ +ul > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; +} +/* line 357, ../scss/default.scss */ +ul ul { + margin-top: .5em; +} + +/* line 364, ../scss/default.scss */ +.highlight-code slide.current pre > * { + opacity: 0.25; + -webkit-transition: opacity 0.5s ease-in; + -moz-transition: opacity 0.5s ease-in; + -ms-transition: opacity 0.5s ease-in; + -o-transition: opacity 0.5s ease-in; + transition: opacity 0.5s ease-in; +} +/* line 368, ../scss/default.scss */ +.highlight-code slide.current b { + opacity: 1; +} + +/* line 373, ../scss/default.scss */ +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px 60px; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: #e6e6e6; + left: -60px; + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + /*overflow: hidden;*/ +} +/* line 387, ../scss/default.scss */ +pre[data-lang]:after { + content: attr(data-lang); + background-color: #a9a9a9; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; +} + +/* line 400, ../scss/default.scss */ +pre[data-lang="go"] { + color: #333; +} + +/* line 404, ../scss/default.scss */ +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +/* line 410, ../scss/default.scss */ +iframe { + width: 100%; + height: 530px; + background: white; + border: 1px solid #e6e6e6; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 418, ../scss/default.scss */ +dt { + font-weight: bold; +} + +/* line 422, ../scss/default.scss */ +button { + display: inline-block; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #f9f9f9), color-stop(70%, #e3e3e3)); + background: -webkit-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -moz-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -o-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -ms-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + border: 1px solid #a9a9a9; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + padding: 5px 8px; + outline: none; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + cursor: pointer; + text-shadow: 1px 1px white; + font-size: 10pt; +} + +/* line 436, ../scss/default.scss */ +button:not(:disabled):hover { + border-color: #515151; +} + +/* line 440, ../scss/default.scss */ +button:not(:disabled):active { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #e3e3e3), color-stop(70%, #f9f9f9)); + background: -webkit-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -moz-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -o-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -ms-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: linear-gradient(#e3e3e3 40%, #f9f9f9 70%); +} + +/* line 444, ../scss/default.scss */ +:disabled { + color: #a9a9a9; +} + +/* line 448, ../scss/default.scss */ +.blue { + color: #4387fd; +} + +/* line 451, ../scss/default.scss */ +.blue2 { + color: #3c8ef3; +} + +/* line 454, ../scss/default.scss */ +.blue3 { + color: #2a7cdf; +} + +/* line 457, ../scss/default.scss */ +.yellow { + color: #ffd14d; +} + +/* line 460, ../scss/default.scss */ +.yellow2 { + color: #f9cc46; +} + +/* line 463, ../scss/default.scss */ +.yellow3 { + color: #f6c000; +} + +/* line 466, ../scss/default.scss */ +.green { + color: #0da861; +} + +/* line 469, ../scss/default.scss */ +.green2 { + color: #00a86d; +} + +/* line 472, ../scss/default.scss */ +.green3 { + color: #009f5d; +} + +/* line 475, ../scss/default.scss */ +.red { + color: #f44a3f; +} + +/* line 478, ../scss/default.scss */ +.red2 { + color: #e0543e; +} + +/* line 481, ../scss/default.scss */ +.red3 { + color: #d94d3a; +} + +/* line 484, ../scss/default.scss */ +.gray { + color: #e6e6e6; +} + +/* line 487, ../scss/default.scss */ +.gray2 { + color: #a9a9a9; +} + +/* line 490, ../scss/default.scss */ +.gray3 { + color: #797979; +} + +/* line 493, ../scss/default.scss */ +.gray4 { + color: #515151; +} + +/* line 497, ../scss/default.scss */ +.white { + color: white !important; +} + +/* line 500, ../scss/default.scss */ +.black { + color: black !important; +} + +/* line 504, ../scss/default.scss */ +.columns-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + -o-column-count: 2; + column-count: 2; +} + +/* line 508, ../scss/default.scss */ +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid #797979; +} +/* line 515, ../scss/default.scss */ +table tr > td:first-child, table th { + font-weight: 600; + color: #515151; +} +/* line 520, ../scss/default.scss */ +table tr:nth-child(odd) { + background-color: #e6e6e6; +} +/* line 524, ../scss/default.scss */ +table th { + color: white; + font-size: 18px; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #4387fd), color-stop(80%, #2a7cdf)) no-repeat; + background: -webkit-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -moz-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -o-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -ms-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; +} +/* line 530, ../scss/default.scss */ +table td, table th { + font-size: 18px; + padding: 1em 0.5em; +} +/* line 535, ../scss/default.scss */ +table td.highlight { + color: #515151; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #ffd14d), color-stop(80%, #f6c000)) no-repeat; + background: -webkit-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -moz-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -o-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -ms-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; +} +/* line 540, ../scss/default.scss */ +table.rows { + border-bottom: none; + border-right: 1px solid #797979; +} + +/* line 546, ../scss/default.scss */ +q { + font-size: 45px; + line-height: 72px; +} +/* line 550, ../scss/default.scss */ +q:before { + content: '“'; + position: absolute; + margin-left: -0.5em; +} +/* line 555, ../scss/default.scss */ +q:after { + content: '”'; + position: absolute; + margin-left: 0.1em; +} + +/* line 562, ../scss/default.scss */ +slide.fill { + background-repeat: no-repeat; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +/* Size variants */ +/* line 571, ../scss/default.scss */ +article.smaller p, article.smaller ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; +} +/* line 577, ../scss/default.scss */ +article.smaller table td, article.smaller table th { + font-size: 14px; +} +/* line 581, ../scss/default.scss */ +article.smaller pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; +} +/* line 586, ../scss/default.scss */ +article.smaller q { + font-size: 40px; + line-height: 48px; +} +/* line 590, ../scss/default.scss */ +article.smaller q:before, article.smaller q:after { + font-size: 60px; +} + +/* Builds */ +/* line 599, ../scss/default.scss */ +.build > * { + -webkit-transition: opacity 0.5s ease-in-out 0.2s; + -moz-transition: opacity 0.5s ease-in-out 0.2s; + -ms-transition: opacity 0.5s ease-in-out 0.2s; + -o-transition: opacity 0.5s ease-in-out 0.2s; + transition: opacity 0.5s ease-in-out 0.2s; +} +/* line 603, ../scss/default.scss */ +.build .to-build { + opacity: 0; +} +/* line 607, ../scss/default.scss */ +.build .build-fade { + opacity: 0.3; +} +/* line 610, ../scss/default.scss */ +.build .build-fade:hover { + opacity: 1.0; +} + +/* line 617, ../scss/default.scss */ +.popup .next .build .to-build { + opacity: 1; +} +/* line 621, ../scss/default.scss */ +.popup .next .build .build-fade { + opacity: 1; +} + +/* Pretty print */ +/* line 629, ../scss/default.scss */ +.prettyprint .str, +.prettyprint .atv { + /* a markup attribute value */ + color: #009f5d; +} + +/* line 633, ../scss/default.scss */ +.prettyprint .kwd, +.prettyprint .tag { + /* a markup tag name */ + color: #0066cc; +} + +/* line 636, ../scss/default.scss */ +.prettyprint .com { + /* a comment */ + color: #797979; + font-style: italic; +} + +/* line 640, ../scss/default.scss */ +.prettyprint .lit { + /* a literal value */ + color: #7f0000; +} + +/* line 645, ../scss/default.scss */ +.prettyprint .pun, +.prettyprint .opn, +.prettyprint .clo { + color: #515151; +} + +/* line 651, ../scss/default.scss */ +.prettyprint .typ, +.prettyprint .atn, +.prettyprint .dec, +.prettyprint .var { + /* a declaration; a variable name */ + color: #d94d3a; +} + +/* line 654, ../scss/default.scss */ +.prettyprint .pln { + color: #515151; +} + +/* line 658, ../scss/default.scss */ +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transform: translateY(350px); + -moz-transform: translateY(350px); + -ms-transform: translateY(350px); + -o-transform: translateY(350px); + transform: translateY(350px); + -webkit-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; +} +/* line 676, ../scss/default.scss */ +.note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + width: 60%; + padding: 2em; +} + +/* line 693, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide.next, +.with-notes.popup slides.layout-faux-widescreen slide.next { + -webkit-transform: translate3d(690px, 80px, 0) scale(0.35); + -moz-transform: translate3d(690px, 80px, 0) scale(0.35); + -ms-transform: translate3d(690px, 80px, 0) scale(0.35); + -o-transform: translate3d(690px, 80px, 0) scale(0.35); + transform: translate3d(690px, 80px, 0) scale(0.35); +} +/* line 696, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide .note, +.with-notes.popup slides.layout-faux-widescreen slide .note { + -webkit-transform: translate3d(300px, 800px, 0) scale(1.5); + -moz-transform: translate3d(300px, 800px, 0) scale(1.5); + -ms-transform: translate3d(300px, 800px, 0) scale(1.5); + -o-transform: translate3d(300px, 800px, 0) scale(1.5); + transform: translate3d(300px, 800px, 0) scale(1.5); +} +/* line 702, ../scss/default.scss */ +.with-notes.popup slide { + overflow: visible; + background: white; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + pointer-events: none; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + -o-transform-origin: 0 0; + transform-origin: 0 0; +} +/* line 709, ../scss/default.scss */ +.with-notes.popup slide:not(.backdrop) { + -webkit-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -moz-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -ms-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -o-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; +} +/* line 714, ../scss/default.scss */ +.with-notes.popup slide.backdrop { + background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 600, color-stop(0%, #b1dfff), color-stop(100%, #4387fd)); + background-image: -webkit-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -moz-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -o-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -ms-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); +} +/* line 720, ../scss/default.scss */ +.with-notes.popup slide.next { + -webkit-transform: translate3d(570px, 80px, 0) scale(0.35); + -moz-transform: translate3d(570px, 80px, 0) scale(0.35); + -ms-transform: translate3d(570px, 80px, 0) scale(0.35); + -o-transform: translate3d(570px, 80px, 0) scale(0.35); + transform: translate3d(570px, 80px, 0) scale(0.35); + opacity: 1 !important; +} +/* line 724, ../scss/default.scss */ +.with-notes.popup slide.next .note { + display: none !important; +} +/* line 730, ../scss/default.scss */ +.with-notes.popup .note { + width: 109%; + height: 260px; + background: #e6e6e6; + padding: 0; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + -webkit-transform: translate3d(250px, 800px, 0) scale(1.5); + -moz-transform: translate3d(250px, 800px, 0) scale(1.5); + -ms-transform: translate3d(250px, 800px, 0) scale(1.5); + -o-transform: translate3d(250px, 800px, 0) scale(1.5); + transform: translate3d(250px, 800px, 0) scale(1.5); + -webkit-transition: opacity 400ms ease-in-out; + -moz-transition: opacity 400ms ease-in-out; + -ms-transition: opacity 400ms ease-in-out; + -o-transition: opacity 400ms ease-in-out; + transition: opacity 400ms ease-in-out; +} +/* line 741, ../scss/default.scss */ +.with-notes.popup .note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + height: 100%; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + overflow: auto; + padding: 1em; +} +/* line 754, ../scss/default.scss */ +.with-notes .note { + opacity: 1; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); + pointer-events: auto; +} + +/* line 761, ../scss/default.scss */ +.source { + font-size: 14px; + color: #a9a9a9; + position: absolute; + bottom: 70px; + left: 60px; +} + +/* line 769, ../scss/default.scss */ +.centered { + text-align: center; +} + +/* line 773, ../scss/default.scss */ +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255, 255, 255, 0) 85%, #ffffff 150%); +} + +/* line 781, ../scss/default.scss */ +.flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +/* line 785, ../scss/default.scss */ +.flexbox.vcenter { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 791, ../scss/default.scss */ +.flexbox.vleft { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: left; + -moz-box-align: left; + -ms-box-align: left; + box-align: left; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 797, ../scss/default.scss */ +.flexbox.vright { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: end; + -moz-box-align: end; + -ms-box-align: end; + box-align: end; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 803, ../scss/default.scss */ +.auto-fadein { + -webkit-transition: opacity 0.6s ease-in 1s; + -moz-transition: opacity 0.6s ease-in 1s; + -ms-transition: opacity 0.6s ease-in 1s; + -o-transition: opacity 0.6s ease-in 1s; + transition: opacity 0.6s ease-in 1s; + opacity: 0; +} + +/* Clickable/tappable areas */ +/* line 809, ../scss/default.scss */ +.slide-area { + z-index: 1000; + position: absolute; + left: 0; + top: 0; + width: 100px; + height: 700px; + left: 50%; + top: 50%; + cursor: pointer; + margin-top: -350px; +} + +/* line 826, ../scss/default.scss */ +#prev-slide-area { + margin-left: -550px; +} + +/* line 831, ../scss/default.scss */ +#next-slide-area { + margin-left: 450px; +} + +/* ===== SLIDE CONTENT ===== */ +/* line 839, ../scss/default.scss */ +.logoslide img { + width: 383px; + height: 92px; +} + +/* line 845, ../scss/default.scss */ +.segue { + padding: 60px 120px; +} +/* line 848, ../scss/default.scss */ +.segue h2 { + color: #e6e6e6; + font-size: 60px; +} +/* line 852, ../scss/default.scss */ +.segue h3 { + color: #e6e6e6; + line-height: 2.8; +} +/* line 856, ../scss/default.scss */ +.segue hgroup { + position: absolute; + bottom: 225px; +} + +/* line 862, ../scss/default.scss */ +.thank-you-slide { + background: #4387fd !important; + color: white; +} +/* line 866, ../scss/default.scss */ +.thank-you-slide h2 { + font-size: 60px; + color: inherit; +} +/* line 871, ../scss/default.scss */ +.thank-you-slide article > p { + margin-top: 2em; + font-size: 20pt; +} +/* line 876, ../scss/default.scss */ +.thank-you-slide > p { + position: absolute; + bottom: 80px; + font-size: 24pt; + line-height: 1.3; +} + +/* line 884, ../scss/default.scss */ +aside.gdbar { + height: 97px; + width: 415px; + position: absolute; + left: -1px; + top: 125px; + -webkit-border-radius: 0 10px 10px 0; + -moz-border-radius: 0 10px 10px 0; + -ms-border-radius: 0 10px 10px 0; + -o-border-radius: 0 10px 10px 0; + border-radius: 0 10px 10px 0; + background: -webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e6e6e6), color-stop(100%, #e6e6e6)) no-repeat; + background: -webkit-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -moz-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -o-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -ms-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + -webkit-background-size: 0% 100%; + -moz-background-size: 0% 100%; + -o-background-size: 0% 100%; + background-size: 0% 100%; + -webkit-transition: all 0.5s ease-out 0.5s; + -moz-transition: all 0.5s ease-out 0.5s; + -ms-transition: all 0.5s ease-out 0.5s; + -o-transition: all 0.5s ease-out 0.5s; + transition: all 0.5s ease-out 0.5s; + /* Better to transition only on background-size, but not sure how to do that with the mixin. */ +} +/* line 895, ../scss/default.scss */ +aside.gdbar.right { + right: 0; + left: -moz-initial; + left: initial; + top: 254px; + /* 96 is height of gray icon bar */ + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 902, ../scss/default.scss */ +aside.gdbar.right img { + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 907, ../scss/default.scss */ +aside.gdbar.bottom { + top: -moz-initial; + top: initial; + bottom: 60px; +} +/* line 913, ../scss/default.scss */ +aside.gdbar img { + width: 300px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; +} + +/* line 924, ../scss/default.scss */ +.title-slide hgroup { + bottom: 100px; +} +/* line 927, ../scss/default.scss */ +.title-slide hgroup h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: #515151; +} +/* line 934, ../scss/default.scss */ +.title-slide hgroup h2 { + font-size: 34px; + color: #a9a9a9; + font-weight: inherit; +} +/* line 940, ../scss/default.scss */ +.title-slide hgroup p { + font-size: 20px; + color: #797979; + line-height: 1.3; + margin-top: 2em; +} + +/* line 949, ../scss/default.scss */ +.quote { + color: #e6e6e6; +} +/* line 952, ../scss/default.scss */ +.quote .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; +} + +/* line 961, ../scss/default.scss */ +[data-config-contact] a { + color: white; + border-bottom: none; +} +/* line 965, ../scss/default.scss */ +[data-config-contact] span { + width: 115px; + display: inline-block; +} + +/* line 974, ../scss/default.scss */ +.overview.popup .note { + display: none !important; +} +/* line 980, ../scss/default.scss */ +.overview slides slide { + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 981, ../scss/default.scss */ +.overview slides slide.backdrop { + display: none !important; +} +/* line 996, ../scss/default.scss */ +.overview slides slide.far-past, .overview slides slide.past, .overview slides slide.next, .overview slides slide.far-next, .overview slides slide.far-past { + opacity: 0.5; + display: block; +} +/* line 1001, ../scss/default.scss */ +.overview slides slide.current { + opacity: 1; +} +/* line 1007, ../scss/default.scss */ +.overview .slide-area { + display: none; +} + +@media print { + /* line 1014, ../scss/default.scss */ + slides slide { + display: block !important; + position: relative; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + -o-transform: none !important; + transform: none !important; + width: 100%; + height: 100%; + page-break-after: always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + } + /* line 1034, ../scss/default.scss */ + slides slide.far-past, slides slide.past, slides slide.next, slides slide.far-next, slides slide.far-past, slides slide.current { + opacity: 1 !important; + display: block !important; + } + /* line 1040, ../scss/default.scss */ + slides slide .build > * { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + } + /* line 1045, ../scss/default.scss */ + slides slide .build .to-build, + slides slide .build .build-fade { + opacity: 1; + } + /* line 1050, ../scss/default.scss */ + slides slide .auto-fadein { + opacity: 1 !important; + } + /* line 1054, ../scss/default.scss */ + slides slide.backdrop { + display: none !important; + } + /* line 1058, ../scss/default.scss */ + slides slide table.rows { + border-right: 0; + } + /* line 1063, ../scss/default.scss */ + slides slide[hidden] { + display: none !important; + } + + /* line 1068, ../scss/default.scss */ + .slide-area { + display: none; + } + + /* line 1072, ../scss/default.scss */ + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + /* line 1080, ../scss/default.scss */ + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/slide/robot_soccor.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inteligent_robot/slide/robot_soccor.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,653 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + +
          +

          +

          +

          +
          +
          + + + + +
          +

          State Machine Composition

          +
          +
          +

          Hybrid automata by parallel composition

          +
            +
          • can be used for specifying larger systems (multi-agent systems)
          • +
          • hybrid automaton is given for each part of the system
          • +
          • the different parts may occur via shared variables and synchronization labels
          • +
          • obtained from the different parts using a product construction of the participating automata
          • +
          • the different automata are interleaved
          • +
          • As a result of the parallel composition a new automaton called composed automaton is created
          • +
          +
          +
          + + +
          +

          State Machine Composition

          +
          +
          +

          composed automata

          +
            +
          • which captures the behavior of the entire system
          • +
          • the composed automata are given to a model checker that checks the reachability of a certain state
          • +
          +
          +
          + + +
          +

          State Machine Composition

          +
          +
          +

          composed automata

          +
            +
          • advantage to do this during the verification process, instead of constructing the parallel composition before involving in the verification phase
          • +
          • the composition of hybrid automata H1 and H2 can be defined in terms of synchronized or interleaved regions of the regions produced from run of both H1 and H2.
          • +
          +
          +
          + + +
          +

          State Machine Composition

          +
          +
          +

          the composition of hybrid automata

          +
            +
          • the composition procedure, compound regions are constructed
          • +
          • consists of a conjunction of
            + a region Γ1 = ⟨q1, V1, T⟩ from H1
            + another region Γ2 = ⟨q2, V2, T⟩ from H2.
          • +
          • each compound region takes the form Λ = ⟨(q1, V1), (q2, V2), T⟩
            (shortly written as Λ = ⟨Γ1, Γ2, T⟩),
          • +
          • which represents the reached region at both control locations q1 and q2 the during a time interval T.
          • +
          +
          +
          + + +
          +

          State Machine Composition

          +
          +
          +

          the composition of hybrid automata

          +
            +
          • composed automata can be defined as the sequence ∑H1◦H2 = Λ0,Λ1,... of compound regions
          • +
          +

          if one of the following holds, Λ1 = ⟨Γ1, γ1, T1⟩ and Λ2 = ⟨Γ2, γ2, T2⟩ (written as Λ1Λ2)

          +
            +
          • a∈ Event H1 ∩ Event H2 is a joint event,Γ1Γ2,and γ1γ2.In this case,we say that + the region Γ1 is synchronized with the region γ1.
          • +
          • a ∈ Event H1 \ Event H2 (respectively a ∈ Event H2 \ Event H1 ), Γ1Γ2 and γ1 → γ2, such that both γ1 and γ2 have the same control location
          • +
          +
          +
          + + + + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          Use constraint logic program

          +
            +
          • the syntax and semantics of hybrid automata, described previously, as a constraint logic program (CLP)
          • +
          • hybrid automata can be described as a constraint system, where the constraints represent the possible +
            flows +
            invariants +
            transitions
          • +
          • constraints can be used to characterize certain parts of the state space
          • +
          • similarities in operational semantics between CLP and hybrid automata
          • +
          +

          Ieally, state transition systems → logic program

          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          Implementation

          +
            +
          • using ECLiPse Prolog
          • +
          • follows the definitions of both the formal syntax and semantics of hybrid automata
          • +
          • primarily begin with modeling the locations and their constraints
          • +
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          Implementation

          +
          +%%% automaton(+Location,?Vars,+Vars0,+T0,?Time)
          +%%% models invariant and flow inside location
          +automaton(Location,Vars,Vars0,T0,Time):-
          +        Flow(Vars),
          +                Inv(Vars),Time $>=T0.
          +      
          +
            +
          • Vars = Var0 + c · (Time − T0) in case of a linear hybrid automaton
          • +
          • Var0+c·(Time−T0) ≤ Vars ≤ Var0+c·(Time−T0) in case of a rectangular hybrid automaton
          • +
          • Vars = Var0 − c2/c1 + c2/c1 · exp(c1 · (Time − T0)) in case of a non-linear hybrid automaton
          • +
          +
          +
          + + + + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          civlians

          +
            +
          • Vars and Time holds the reached valuations of the variables together with the reached time respectively
          • +
          • example showing the concrete implementation of the location injured in the automaton Civilians
          • +
          +
          +civilians(injured,[W],[W0],T0,Time):-
          +     W $= W0-(Time-T0),
          +     W $>=0, Time $>=T0.
          +      
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          hybrid automaton has two kinds of transitions:

          +
            +
          • 1.continuous transitions: capturing the continuous evolution of variables
          • +
          • 2.discrete transitions: capturing the changes of location
          • +
          • evolves with either discrete or continuous transitions according to the constraints appearing during the run
          • +
          +
          +%%% evolve(+Automaton,+State,-Nextstate,+T0,+Time,?Event)
          +evolve(Automaton,(L1,Var1),(L2,Var2),T0,Time,Event) :-
          +     continuous(Automaton,(L1,Var1),(L1,Var2),T0,Time,Event);
          +          discrete(Automaton,(L1,Var1),(L2,Var2),T0,Time,Event).
          +        
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          When a discrete/continuous transition occurs

          +
            +
          • gives rise to updating the initial variables from Var1 into Var2, where Var1 and Var2 are the initial variables of locations L1 and L2 respectively
          • +
          • a delay transition is taken using the predicate continuous.

          • +
          • However, this can be handled efficiently as an interval constraint that bounds the set of infinite reachable state as a finite interval

          • +
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          Event_Automaton[1]

          +
            +
          • each automaton is augmented with a set events called Event_Automaton
          • +
          • Example:this set of events of the automaton FirebrigadeMain is denoted as {reported, emergency}
          • + +
          • For this reason, each transition is augmented with the variable "Event"
          • +
          • The variable "Event" is used to define the parallel composition from the automata individuals sharing the same event
          • +
          • The variable "Event" ranges over symbolic domains and guarantees
          • + +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          Event_Automaton[2]

          +
            +
          • It should be mentioned that the declaration of automata events must be provided in the modeling example.
          • +
          +

          For instance, the declaration of the possible events domain

          +
          +:- local domain(events(emergency,reported,hlep,burn)).
          +      
          +

          The domains of events are declared symbolically to capture the set of all possible events applicable to the underlying modeled system.

          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          Event_Automaton[3]

          +
            +
          +
          +Event &:: events, Event &= domain_value.
          +      
          +
            +
          • The variable "Event" is declared with domain values defined by "events"
          • +
          • The variable "Event" is initialized with a specific value from its domain
          • +
          • The & symbol is a constraint relation for symbolic domains (library sd in ECLiPSe Prolog).
          • +
          +
          +
          + + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          discrete

          +
          +%%% discrete(+Automaton,+State1,-State2,+IntTime,-Time,-Event)
          +discrete(Automaton,(Loc1,Var1),(Loc2,Var2),T0,Time,Event):-
          +         automaton,(Loc1,Var1,Var,T0,Time),
          +         jump(Var), reset(Var2),
          +         Event &::events,Event &=domain_value.
          +      
          +
            +
          • "domain_value" must be a member in Event_Automaton
          • +
          • when the "discrete" predicate is fired, the automaton generates an event by constraining the variable "Event" to the suitable value from its domain
          • +
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          discrete

          +
            +
          • The concrete implementation of the "discrete" predicate between locations "no fire" and "burning" in automaton "fire"
          • +
          +
          +discrete(fire,(no_fire,[B0,N0]),(burning,[BB0,NN0]),T0,Time,Event):-
          +         fire(no_fire,[B0,N0],[BB0,NN0],T0,Time),
          +         BB0 $=3, NN0 $=120,
          +         Event &::events, Event &=burn.
          +      
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          driver

          +
            +
          • Once the locations and transition rules have been modeled, a state machine needs to be implemented in order to execute the model
          • +
          • "driver" is a state machine
          • +
          • state machine is responsible to generate and control the behaviors of the concurrent hybrid automata
          • +
          • driver takes the starting state for each participating automaton
          • +
          • driver takes the starting time T0 as begin of the execution, followed by the list of reached regions
          • +
          • reached regions is needed for the purpose of the verification
          • +
          • during the course of the execution of the driver, there is a symbolic domain variable Event shared among automata
          • +
          • automata is used by the appropriate solver to ensure that only one event is generated at a time
          • +
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          driver[2]

          +
            +
          • when an automaton generates an event, due to a discrete transition of one of the predicates "evolve" of the concurrent automata
          • +
          • the symbolic domain solver will exclude all the domain of values of the other automata that are not coincident with the generated event
          • +
          +
          +
          + + + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          driver[3]

          +
            +
          • Since each automaton generates an event by a discrete step at the end of its continuous evolution
          • +
          • then the precedence of events that appear during the run is important to both composition and the verification process
          • +
          • obvious way to deal with this precedence is to use constraints on the time of the generated events
          • +
          +

          constraint the execution of each automaton with a shared variable "Time"

          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          driver

          +
            + +
          • variable "Time" eventually holds the minimum time needed to generated an event
          • +
          • The previous computation partitions the state space into regions
          • +
          • where the transition from one region to another depends on the minimum time needed to generate an event
          • +
          +

          this shows how the automata composition can be implicitly constructed efficiently on the fly

          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          driver of behavior

          +
            +
          • the driver computes the set of reached regions until fixed regions are obtained
          • +
          • if the reached region is not contained in the list of the previously reached regions
            + This is computed by checking, in each iteration of driver
          • +
          • For this purpose, the last argument of the driver holds for the list of these regions.
          • +
          +
          +
          + + +
          +

          Constraint-Based Modeling

          +
          +
          +

          driver and verification

          +
            +
          • Reachable regions should contain only those variables
          • +
          • Variables are important for the verification of a given property
          • +
          • the last argument list of the predicate driver can be expanded or shrunk as needed to contain the significant variables
          • +
          • As soon as the driver has been built, the complete model should be invoked for the purpose of execution and hence verification
          • +
          +

          the predicate runmodel is implemented to invoke the driver with the initial states of the hybrid automata.

          +
          +runmodel(Reached) :-
          +    driver((idle,[wlMax,0,0]),(injured,[10]),(no_fire,0),0,Reached,[]).
          +      
          +
          +
          + + + +
          +

          Hybrid Statecharts[1/3]

          +
          +
          +

          FSMs (Finite State Machines)

          +
            +
          • describe complex systems using FSMs
          • +
          • Statecharts have been introduced to overcome the limitations of traditional FSM
          • +
          • The most important extension is hierarchy, or what is called hierarchical FSM
          • +
          • Such a hierarchy has descriptive advantages over ordinary FSM in a sense that hierar- chy of states offers a convenient structuring mechanism that allows us to specify systems with different levels of view
          • +
          • statecharts have become part of the Unified modeling language (UML)
          • +
          +
          +
          + + +
          +

          Hybrid Statecharts[2/3]

          +
          +
          +

          Statechart

          +
            +
          • description of complex reactive systems
          • +
          • to extend statecharts with continuous actions inside states
          • +
          • This extension allows complex/multi-agent systems to be modeled with different levels of abstraction and provides a formal way to analyze the dynamical behavior of the modeled systems
          • +
          • There are two possibilities of combination +
              +
            • namely combining statecharts with differential equations
            • +
            • extending hybrid automata with hierarchy
            • +
            +
          • +
          • both terms hierarchical hybrid automata (HHA) and hybrid statecharts can be used interchangeably
          • +
          +
          +
          + + +
          +

          Hybrid Statecharts[3/3]

          +
          +
          +

          The specification of fire brigade agent

          +
            +
          • the main control structure (Firebrigade- Main)
          • +
          • rescue sub-system (FirebrigadeRSS) +
              +
            • records the detected civilians
            • +
            +
          • the fire brigade, the model should include a fire station, whose responsibility to inform and assign a fire brigade to a fire as soon as a fire alarm received
          • +
          • the top level which in turn comprises at the lower level +
              +
            • Fire
            • +
            • Civilians
            • +
            • Firestation
            • Firebrigade
            • +
            +
          • lower level, which is FirebrigadeMain, and FirebrigadeRSS
          • +
          +
          +
          + + +
          +

          Formal Hierarchy[1/3]

          +
          +
          +
            +
          • Hierarchical hybrid automata, locations are generalized into a set Q of locations +
              Set Q of locations partitioned into three disjoint sets +
            • Q_simple: simple
            • +
            • Q_comp: composite
            • +
            • Q_conc: concrrent
            • +
            +
          • +
          • There is one designated start state
          • +
          • start state is the topmost location in the hierarchy
          • +
          • In essence, the locations of plain hybrid automata correspond to simple location in the hybrid FSM
          • +
          +
          +
          + + +
          +

          Formal Hierarchy[2/3]

          +
          +
          +

          The specification of fire brigade agent

          + +
          +
          + + +
          +

          Hybrid Statecharts[3/3]

          +
          +
          +

          The specification of fire brigade agent

          + +
          +
          + + + + +
          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/slide/robot_soccor/FirebrigedeAgent.png Binary file inteligent_robot/slide/robot_soccor/FirebrigedeAgent.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/slide/robot_soccor/ResucureScenario.png Binary file inteligent_robot/slide/robot_soccor/ResucureScenario.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/slide/robot_soccor/Untitled.png Binary file inteligent_robot/slide/robot_soccor/Untitled.png has changed diff -r 7f4128b2369a -r fea44bb81877 inteligent_robot/slide/robot_soccor/a_arrow.png Binary file inteligent_robot/slide/robot_soccor/a_arrow.png has changed diff -r 7f4128b2369a -r fea44bb81877 m1_class/0514.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m1_class/0514.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,142 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
          +

          +

          +

          +
          +
          + + +
          +

          研究目的

          +
          +
          +
            +
          • ブートが高速で、コンパクトなカーネルを実装する。
          • +
          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
          • +
          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
          • +
          • モデル検証に対応し、エラー予測を可能にする
          • +
          • カーネルパニックをなくす
          • +
          • Mach-O を EFI でロードし、64bit でロードできるようにする
          • +
          +
          +
          + + +
          +

          今週の作業

          +
          +
          +
            +
          • Qemu を使えるかどうかの調査
          • +
          +
          +
          + + +
          +

          Qemu [Q]

          +
          +
          +
            +
          • OS X での Qemu は Q として書かれる
          • +
          • Qemu で EFI を使うツール OVMF のインストール
          • +
          +
          +
          + + +
          +

          ELILO で Mach-O

          +
          +
          +
            +
          • ELILO は x86-64 ように bzImaze と plain loader を持っている
          • +
          • Mach-O 用ローダを追加
          • +
          • 一度使用するローダを登録して、使用するか決める
          • +
          • 登録したローダを使う
          • +
          • Makefile を書き換えて Mach-O ローダを使えるように
          • +
          +
          +
          + + +
          +

          これからすること

          +
          +
          +
            +
          • Linux 3.8.9 を読む
          • +
          • メモリ初期化
          • +
          +
          +
          + + + + +
          + +
          +
          + + + +
          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 m1_class/slide_config.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m1_class/slide_config.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,36 @@ +var SLIDE_CONFIG = { + // Slide settings + settings: { + title: 'Codesegment と Datasegment を使った OS の実装', + //subtitle: 'Subtitle Goes Here', + useBuilds: true, // Default: true. False will turn off slide animation builds. + usePrettify: true, // Default: true + enableSlideAreas: true, // Default: true. False turns off the click areas on either slide of the slides. + enableTouch: true, // Default: true. If touch support should enabled. Note: the device must support touch. + //analytics: 'UA-XXXXXXXX-1', // TODO: Using this breaks GA for some reason (probably requirejs). Update your tracking code in template.html instead. + favIcon: 'images/google_developers_logo_tiny.png', + fonts: [ + 'Open Sans:regular,semibold,italic,italicsemibold', + 'Source Code Pro' + ], + //theme: ['mytheme'], // Add your own custom themes or styles in /theme/css. Leave off the .css extension. + }, + + // Author information + presenters: [{ + name: 'Taiki Taira', +// company: 'Job Title, Google', + gplus: '', + twitter: '', + www: '', + github: '' + }/*, { + name: 'Second Name', + company: 'Job Title, Google', + gplus: 'http://plus.google.com/1234567890', + twitter: '@yourhandle', + www: 'http://www.you.com', + github: 'http://github.com/you' + }*/] +}; + diff -r 7f4128b2369a -r fea44bb81877 m1_class/software_system.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m1_class/software_system.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,103 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
          +

          +

          +

          +
          +
          + + +
          +

          PostgreSQL

          +
          +
          +
            +
          • ./configure --enable-debug
          • +
          • src/Makefile.global に -O0 -g 追加
          • +
          • make
          • +
          +
          +
          + + +
          +

          PostgreSQL

          +
          +
          +

          起動順序

          +
            +
          • ./initdb -D $PGDATA
          • +
          • ./pg_ctl -D $PGDATA -l logfile start
          • +
          • ./create database
          • +
          • ./psql database
          • +
          +
          +
          + + + +
          + +
          +
          + + + +
          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/all-wcprops --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/images/.svn/all-wcprops Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,29 @@ +K 25 +svn:wc:ra_dav:version-url +V 29 +/svn/!svn/ver/12/trunk/images +END +google-logo-small.png +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/12/trunk/images/google-logo-small.png +END +googleio-logo.png +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/3/trunk/images/googleio-logo.png +END +colorbar.png +K 25 +svn:wc:ra_dav:version-url +V 41 +/svn/!svn/ver/3/trunk/images/colorbar.png +END +google-logo.png +K 25 +svn:wc:ra_dav:version-url +V 44 +/svn/!svn/ver/9/trunk/images/google-logo.png +END diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/entries --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/images/.svn/entries Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,164 @@ +10 + +dir +20 +http://html5slides.googlecode.com/svn/trunk/images +http://html5slides.googlecode.com/svn + + + +2011-05-20T17:19:33.425808Z +12 +mwichary@google.com + + + + + + + + + + + + + + +5963eb91-a1a4-c111-6e9c-cdd99a89fa83 + +google-logo-small.png +file + + + + +2012-05-28T15:06:38.000000Z +135f45372a8c114bf3e2aeb599e4f936 +2011-05-20T17:19:33.425808Z +12 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +8466 + +googleio-logo.png +file + + + + +2012-05-28T15:06:38.000000Z +1f7e00dc3ff015f831ce3eb5dbd23550 +2011-05-20T16:49:11.026922Z +3 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +84742 + +colorbar.png +file + + + + +2012-05-28T15:06:38.000000Z +4a80fb8dc88969ddb33e1b69d2d0127a +2011-05-20T16:49:11.026922Z +3 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +213 + +google-logo.png +file + + + + +2012-05-28T15:06:38.000000Z +e8734f1b87d204e4d325f5fc73fab31e +2011-05-20T17:14:27.670900Z +9 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +31769 + diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/prop-base/colorbar.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/images/.svn/prop-base/colorbar.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/prop-base/google-logo-small.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/images/.svn/prop-base/google-logo-small.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/prop-base/google-logo.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/images/.svn/prop-base/google-logo.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 9 +image/png +END diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/prop-base/googleio-logo.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/images/.svn/prop-base/googleio-logo.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/text-base/colorbar.png.svn-base Binary file notstudy/images/.svn/text-base/colorbar.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/text-base/google-logo-small.png.svn-base Binary file notstudy/images/.svn/text-base/google-logo-small.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/text-base/google-logo.png.svn-base Binary file notstudy/images/.svn/text-base/google-logo.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/.svn/text-base/googleio-logo.png.svn-base Binary file notstudy/images/.svn/text-base/googleio-logo.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/SoftWareStack.png Binary file notstudy/images/SoftWareStack.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/UEFI_structure.pdf Binary file notstudy/images/UEFI_structure.pdf has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/Untitled.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/images/Untitled.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,668 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.15.0.171074 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-08-14 07:37:35 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{485, 184}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 19 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 48} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{38, 180}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 18 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 63} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{483.5, 3}, {7, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 17 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 0} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{40, 2}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 16 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 15} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{379, 129}, {110, 36}} + Class + ShapedGraphic + ID + 15 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f1 \cf0 19 - 16 bit} + + + + Bounds + {{350, 129}, {29, 36}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 AVL} + + + + Bounds + {{263, 129}, {29, 36}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 G} + + + + Bounds + {{292, 129}, {29, 36}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 D} + + + + Bounds + {{321, 129}, {29, 36}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 0} + + + + Bounds + {{40, 129}, {223, 36}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 31 - 24 bit} + + + + Bounds + {{80, 93}, {59, 36}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DPL} + + + + Bounds + {{40, 93}, {41, 36}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 P} + + + + Bounds + {{139, 93}, {41, 36}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 S} + + + + Bounds + {{180, 93}, {83, 36}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 type} + + + + Bounds + {{262, 93}, {227, 36}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 23 - 16 bit} + + + + Bounds + {{40, 57}, {449, 36}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 15 - 0 bit} + + + + Bounds + {{40, 21}, {449, 36}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Limit : 15 - 0 bit} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-08-14 07:46:29 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{172, 650}, {996, 408}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-151, 0}, {861, 253}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/code_datasegment.png Binary file notstudy/images/code_datasegment.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/colorbar.png Binary file notstudy/images/colorbar.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/concurrent.jpg Binary file notstudy/images/concurrent.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/concurrent.png Binary file notstudy/images/concurrent.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/google-logo-small.png Binary file notstudy/images/google-logo-small.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/google-logo.png Binary file notstudy/images/google-logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/googleio-logo.png Binary file notstudy/images/googleio-logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/one_of_GDT_descriptor.png Binary file notstudy/images/one_of_GDT_descriptor.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/images/os_plan.png Binary file notstudy/images/os_plan.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/README.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/README.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,105 @@ + + +

          HTML5 Slide Template

          + +

          Configuring the slides

          +

          Much of the deck is customized by changing the settings in slide_config.js. +Some of the customizations include the title, Analytics tracking ID, speaker +information (name, social urls, blog), web fonts to load, themes, and other +general behavior.

          +

          Customizing the #io12 hash

          +

          The bottom of the slides include #io12 by default. If you'd like to change +this, please update the variable $social-tags: '#io12'; in +/theme/scss/default.scss.

          +

          See the next section on "Editing CSS" before you go editing things.

          +

          Editing CSS

          +

          Compass is a CSS preprocessor used to compile +SCSS/SASS into CSS. We chose SCSS for the new slide deck for maintainability, +easier browser compatibility, and because...it's the future!

          +

          That said, if not comfortable working with SCSS or don't want to learn something +new, not a problem. The generated .css files can already be found in +(see /theme/css). You can just edit those and bypass SCSS altogether. +However, our recommendation is to use Compass. It's super easy to install and use.

          +

          Installing Compass and making changes

          +

          First, install compass:

          +
          sudo gem update --system
          +sudo gem install compass
          +
          +

          Next, you'll want to watch for changes to the exiting .scss files in /theme/scss +and any new one you add:

          +
          $ cd io-2012-slides
          +$ compass watch
          +
          +

          This command automatically recompiles the .scss file when you make a change. +Its corresponding .css file is output to /theme/css. Slick.

          +

          By default, config.rb in the main project folder outputs minified +.css. It's a best practice after all! However, if you want unminified files, +run watch with the style output flag:

          +
          compass watch -s expanded
          +
          +

          Note: You should not need to edit _base.scss.

          +

          Running the slides

          +

          The slides can be run locally from file:// making development easy :)

          +

          Running from a web server

          +

          If at some point you should need a web server, use serve.sh. It will +launch a simple one and point your default browser to http://localhost:8000/template.html:

          +
          $ cd io-2012-slides
          +$ ./serve.sh
          +
          +

          You can also specify a custom port:

          +
          $ ./serve.sh 8080
          +
          +

          Presenter mode

          +

          The slides contain a presenter mode feature (beta) to view + control the slides +from a popup window.

          +

          To enable presenter mode, add presentme=true to the URL: http://localhost:8000/template.html?presentme=true

          +

          To disable presenter mode, hit http://localhost:8000/template.html?presentme=false

          +

          Presenter mode is sticky, so refreshing the page will persist your settings.

          +
          +

          That's all she wrote!

          diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/README.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,130 @@ + + +

          HTML5 Slide Template

          + +## Configuring the slides + +Much of the deck is customized by changing the settings in [`slide_config.js`](slide_config.js). +Some of the customizations include the title, Analytics tracking ID, speaker +information (name, social urls, blog), web fonts to load, themes, and other +general behavior. + +### Customizing the `#io12` hash + +The bottom of the slides include `#io12` by default. If you'd like to change +this, please update the variable `$social-tags: '#io12';` in +[`/theme/scss/default.scss`](theme/scss/default.scss). + +See the next section on "Editing CSS" before you go editing things. + +## Editing CSS + +[Compass](http://compass-style.org/install/) is a CSS preprocessor used to compile +SCSS/SASS into CSS. We chose SCSS for the new slide deck for maintainability, +easier browser compatibility, and because...it's the future! + +That said, if not comfortable working with SCSS or don't want to learn something +new, not a problem. The generated .css files can already be found in +(see [`/theme/css`](theme/css)). You can just edit those and bypass SCSS altogether. +However, our recommendation is to use Compass. It's super easy to install and use. + +### Installing Compass and making changes + +First, install compass: + + sudo gem update --system + sudo gem install compass + +Next, you'll want to watch for changes to the exiting .scss files in [`/theme/scss`](theme/scss) +and any new one you add: + + $ cd io-2012-slides + $ compass watch + +This command automatically recompiles the .scss file when you make a change. +Its corresponding .css file is output to [`/theme/css`](theme/css). Slick. + +By default, [`config.rb`](config.rb) in the main project folder outputs minified +.css. It's a best practice after all! However, if you want unminified files, +run watch with the style output flag: + + compass watch -s expanded + +*Note:* You should not need to edit [`_base.scss`](theme/scss/_base.scss). + +## Running the slides + +The slides can be run locally from `file://` making development easy :) + +### Running from a web server + +If at some point you should need a web server, use [`serve.sh`](serve.sh). It will +launch a simple one and point your default browser to [`http://localhost:8000/template.html`](http://localhost:8000/template.html): + + $ cd io-2012-slides + $ ./serve.sh + +You can also specify a custom port: + + $ ./serve.sh 8080 + +### Presenter mode + +The slides contain a presenter mode feature (beta) to view + control the slides +from a popup window. + +To enable presenter mode, add `presentme=true` to the URL: [http://localhost:8000/template.html?presentme=true](http://localhost:8000/template.html?presentme=true) + +To disable presenter mode, hit [http://localhost:8000/template.html?presentme=false](http://localhost:8000/template.html?presentme=false) + +Presenter mode is sticky, so refreshing the page will persist your settings. + +--- + +That's all she wrote! diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/app.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/app.yaml Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,23 @@ +application: my-io-talk +version: 1 +runtime: python27 +api_version: 1 +threadsafe: yes + +handlers: +- url: / + static_files: template.html + upload: template\.html + +- url: /slide_config\.js + static_files: slide_config.js + upload: slide_config\.js + +- url: /js + static_dir: js + +- url: /theme + static_dir: theme + +- url: /images + static_dir: images diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/config.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/config.rb Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,24 @@ +# Require any additional compass plugins here. + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "theme/css" +sass_dir = "theme/scss" +images_dir = "images" +javascripts_dir = "js" + +# You can select your preferred output style here (can be overridden via the command line): +output_style = :compressed #:expanded or :nested or :compact or :compressed + +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/barchart.png Binary file notstudy/io2012slides/images/barchart.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/chart.png Binary file notstudy/io2012slides/images/chart.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/chrome-logo-tiny.png Binary file notstudy/io2012slides/images/chrome-logo-tiny.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/google_developers_icon_128.png Binary file notstudy/io2012slides/images/google_developers_icon_128.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/google_developers_logo.png Binary file notstudy/io2012slides/images/google_developers_logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/google_developers_logo_tiny.png Binary file notstudy/io2012slides/images/google_developers_logo_tiny.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/google_developers_logo_white.png Binary file notstudy/io2012slides/images/google_developers_logo_white.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/io2012_logo.png Binary file notstudy/io2012slides/images/io2012_logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/images/sky.jpg Binary file notstudy/io2012slides/images/sky.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/hammer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/hammer.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,586 @@ +/* + * Hammer.JS + * version 0.4 + * author: Eight Media + * https://github.com/EightMedia/hammer.js + */ +function Hammer(element, options, undefined) +{ + var self = this; + + var defaults = { + // prevent the default event or not... might be buggy when false + prevent_default : false, + css_hacks : true, + + drag : true, + drag_vertical : true, + drag_horizontal : true, + // minimum distance before the drag event starts + drag_min_distance : 20, // pixels + + // pinch zoom and rotation + transform : true, + scale_treshold : 0.1, + rotation_treshold : 15, // degrees + + tap : true, + tap_double : true, + tap_max_interval : 300, + tap_double_distance: 20, + + hold : true, + hold_timeout : 500 + }; + options = mergeObject(defaults, options); + + // some css hacks + (function() { + if(!options.css_hacks) { + return false; + } + + var vendors = ['webkit','moz','ms','o','']; + var css_props = { + "userSelect": "none", + "touchCallout": "none", + "userDrag": "none", + "tapHighlightColor": "rgba(0,0,0,0)" + }; + + var prop = ''; + for(var i = 0; i < vendors.length; i++) { + for(var p in css_props) { + prop = p; + if(vendors[i]) { + prop = vendors[i] + prop.substring(0, 1).toUpperCase() + prop.substring(1); + } + element.style[ prop ] = css_props[p]; + } + } + })(); + + // holds the distance that has been moved + var _distance = 0; + + // holds the exact angle that has been moved + var _angle = 0; + + // holds the diraction that has been moved + var _direction = 0; + + // holds position movement for sliding + var _pos = { }; + + // how many fingers are on the screen + var _fingers = 0; + + var _first = false; + + var _gesture = null; + var _prev_gesture = null; + + var _touch_start_time = null; + var _prev_tap_pos = {x: 0, y: 0}; + var _prev_tap_end_time = null; + + var _hold_timer = null; + + var _offset = {}; + + // keep track of the mouse status + var _mousedown = false; + + var _event_start; + var _event_move; + var _event_end; + + + /** + * angle to direction define + * @param float angle + * @return string direction + */ + this.getDirectionFromAngle = function( angle ) + { + var directions = { + down: angle >= 45 && angle < 135, //90 + left: angle >= 135 || angle <= -135, //180 + up: angle < -45 && angle > -135, //270 + right: angle >= -45 && angle <= 45 //0 + }; + + var direction, key; + for(key in directions){ + if(directions[key]){ + direction = key; + break; + } + } + return direction; + }; + + + /** + * count the number of fingers in the event + * when no fingers are detected, one finger is returned (mouse pointer) + * @param event + * @return int fingers + */ + function countFingers( event ) + { + // there is a bug on android (until v4?) that touches is always 1, + // so no multitouch is supported, e.g. no, zoom and rotation... + return event.touches ? event.touches.length : 1; + } + + + /** + * get the x and y positions from the event object + * @param event + * @return array [{ x: int, y: int }] + */ + function getXYfromEvent( event ) + { + event = event || window.event; + + // no touches, use the event pageX and pageY + if(!event.touches) { + var doc = document, + body = doc.body; + + return [{ + x: event.pageX || event.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && doc.clientLeft || 0 ), + y: event.pageY || event.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && doc.clientTop || 0 ) + }]; + } + // multitouch, return array with positions + else { + var pos = [], src; + for(var t=0, len=event.touches.length; t options.drag_min_distance) || _gesture == 'drag') { + // calculate the angle + _angle = getAngle(_pos.start[0], _pos.move[0]); + _direction = self.getDirectionFromAngle(_angle); + + // check the movement and stop if we go in the wrong direction + var is_vertical = (_direction == 'up' || _direction == 'down'); + if(((is_vertical && !options.drag_vertical) || (!is_vertical && !options.drag_horizontal)) + && (_distance > options.drag_min_distance)) { + return; + } + + _gesture = 'drag'; + + var position = { x: _pos.move[0].x - _offset.left, + y: _pos.move[0].y - _offset.top }; + + var event_obj = { + originalEvent : event, + position : position, + direction : _direction, + distance : _distance, + distanceX : _distance_x, + distanceY : _distance_y, + angle : _angle + }; + + // on the first time trigger the start event + if(_first) { + triggerEvent("dragstart", event_obj); + + _first = false; + } + + // normal slide event + triggerEvent("drag", event_obj); + + cancelEvent(event); + } + }, + + + // transform gesture + // fired on touchmove + transform : function(event) + { + if(options.transform) { + var scale = event.scale || 1; + var rotation = event.rotation || 0; + + if(countFingers(event) != 2) { + return false; + } + + if(_gesture != 'drag' && + (_gesture == 'transform' || Math.abs(1-scale) > options.scale_treshold + || Math.abs(rotation) > options.rotation_treshold)) { + _gesture = 'transform'; + + _pos.center = { x: ((_pos.move[0].x + _pos.move[1].x) / 2) - _offset.left, + y: ((_pos.move[0].y + _pos.move[1].y) / 2) - _offset.top }; + + var event_obj = { + originalEvent : event, + position : _pos.center, + scale : scale, + rotation : rotation + }; + + // on the first time trigger the start event + if(_first) { + triggerEvent("transformstart", event_obj); + _first = false; + } + + triggerEvent("transform", event_obj); + + cancelEvent(event); + + return true; + } + } + + return false; + }, + + + // tap and double tap gesture + // fired on touchend + tap : function(event) + { + // compare the kind of gesture by time + var now = new Date().getTime(); + var touch_time = now - _touch_start_time; + + // dont fire when hold is fired + if(options.hold && !(options.hold && options.hold_timeout > touch_time)) { + return; + } + + // when previous event was tap and the tap was max_interval ms ago + var is_double_tap = (function(){ + if (_prev_tap_pos && options.tap_double && _prev_gesture == 'tap' && (_touch_start_time - _prev_tap_end_time) < options.tap_max_interval) { + var x_distance = Math.abs(_prev_tap_pos[0].x - _pos.start[0].x); + var y_distance = Math.abs(_prev_tap_pos[0].y - _pos.start[0].y); + return (_prev_tap_pos && _pos.start && Math.max(x_distance, y_distance) < options.tap_double_distance); + + } + return false; + })(); + + if(is_double_tap) { + _gesture = 'double_tap'; + _prev_tap_end_time = null; + + triggerEvent("doubletap", { + originalEvent : event, + position : _pos.start + }); + cancelEvent(event); + } + + // single tap is single touch + else { + _gesture = 'tap'; + _prev_tap_end_time = now; + _prev_tap_pos = _pos.start; + + if(options.tap) { + triggerEvent("tap", { + originalEvent : event, + position : _pos.start + }); + cancelEvent(event); + } + } + + } + + }; + + + function handleEvents(event) + { + switch(event.type) + { + case 'mousedown': + case 'touchstart': + _pos.start = getXYfromEvent(event); + _touch_start_time = new Date().getTime(); + _fingers = countFingers(event); + _first = true; + _event_start = event; + + // borrowed from jquery offset https://github.com/jquery/jquery/blob/master/src/offset.js + var box = element.getBoundingClientRect(); + var clientTop = element.clientTop || document.body.clientTop || 0; + var clientLeft = element.clientLeft || document.body.clientLeft || 0; + var scrollTop = window.pageYOffset || element.scrollTop || document.body.scrollTop; + var scrollLeft = window.pageXOffset || element.scrollLeft || document.body.scrollLeft; + + _offset = { + top: box.top + scrollTop - clientTop, + left: box.left + scrollLeft - clientLeft + }; + + _mousedown = true; + + // hold gesture + gestures.hold(event); + + if(options.prevent_default) { + cancelEvent(event); + } + break; + + case 'mousemove': + case 'touchmove': + if(!_mousedown) { + return false; + } + _event_move = event; + _pos.move = getXYfromEvent(event); + + if(!gestures.transform(event)) { + gestures.drag(event); + } + break; + + case 'mouseup': + case 'mouseout': + case 'touchcancel': + case 'touchend': + if(!_mousedown || (_gesture != 'transform' && event.touches && event.touches.length > 0)) { + return false; + } + + _mousedown = false; + _event_end = event; + + // drag gesture + // dragstart is triggered, so dragend is possible + if(_gesture == 'drag') { + triggerEvent("dragend", { + originalEvent : event, + direction : _direction, + distance : _distance, + angle : _angle + }); + } + + // transform + // transformstart is triggered, so transformed is possible + else if(_gesture == 'transform') { + triggerEvent("transformend", { + originalEvent : event, + position : _pos.center, + scale : event.scale, + rotation : event.rotation + }); + } + else { + gestures.tap(_event_start); + } + + _prev_gesture = _gesture; + + // reset vars + reset(); + break; + } + } + + + // bind events for touch devices + // except for windows phone 7.5, it doesnt support touch events..! + if('ontouchstart' in window) { + element.addEventListener("touchstart", handleEvents, false); + element.addEventListener("touchmove", handleEvents, false); + element.addEventListener("touchend", handleEvents, false); + element.addEventListener("touchcancel", handleEvents, false); + } + // for non-touch + else { + + if(element.addEventListener){ // prevent old IE errors + element.addEventListener("mouseout", function(event) { + if(!isInsideHammer(element, event.relatedTarget)) { + handleEvents(event); + } + }, false); + element.addEventListener("mouseup", handleEvents, false); + element.addEventListener("mousedown", handleEvents, false); + element.addEventListener("mousemove", handleEvents, false); + + // events for older IE + }else if(document.attachEvent){ + element.attachEvent("onmouseout", function(event) { + if(!isInsideHammer(element, event.relatedTarget)) { + handleEvents(event); + } + }, false); + element.attachEvent("onmouseup", handleEvents); + element.attachEvent("onmousedown", handleEvents); + element.attachEvent("onmousemove", handleEvents); + } + } + + + /** + * find if element is (inside) given parent element + * @param object element + * @param object parent + * @return bool inside + */ + function isInsideHammer(parent, child) { + // get related target for IE + if(!child && window.event && window.event.toElement){ + child = window.event.toElement; + } + + if(parent === child){ + return true; + } + + // loop over parentNodes of child until we find hammer element + if(child){ + var node = child.parentNode; + while(node !== null){ + if(node === parent){ + return true; + }; + node = node.parentNode; + } + } + return false; + } + + + /** + * merge 2 objects into a new object + * @param object obj1 + * @param object obj2 + * @return object merged object + */ + function mergeObject(obj1, obj2) { + var output = {}; + + if(!obj2) { + return obj1; + } + + for (var prop in obj1) { + if (prop in obj2) { + output[prop] = obj2[prop]; + } else { + output[prop] = obj1[prop]; + } + } + return output; + } + + function isFunction( obj ){ + return Object.prototype.toString.call( obj ) == "[object Function]"; + } +} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/modernizr.custom.45394.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/modernizr.custom.45394.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,4 @@ +/* Modernizr 2.5.3 (Custom Build) | MIT & BSD + * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexbox_legacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-mq-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function C(a){i.cssText=a}function D(a,b){return C(m.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a)if(i[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),H(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d",a,""].join(""),k.id=g,(l?k:m).innerHTML+=h,m.appendChild(k),l||(m.style.background="",f.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},y=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return x("@media "+b+" { #"+g+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e});var J=function(c,d){var f=c.join(""),g=d.length;x(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",m.join("touch-enabled),("),g,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",m.join("transform-3d),("),g,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',k,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);r.flexbox=function(){return I("flexOrder")},r["flexbox-legacy"]=function(){return I("boxDirection")},r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){try{var d=b.createElement("canvas"),e;e=!(!a.WebGLRenderingContext||!d.getContext("experimental-webgl")&&!d.getContext("webgl")),d=c}catch(f){e=!1}return e},r.touch=function(){return e.touch},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){return!!a.openDatabase},r.indexedDB=function(){return!!I("indexedDB",a)},r.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return!!a.history&&!!history.pushState},r.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},r.websockets=function(){for(var b=-1,c=o.length;++b0&&g.splice(0,a);setTimeout(function(){b.parentNode.removeChild(b)},15)}}function m(a){var b,c;a.setAttribute("data-orderloaded","loaded");for(a=0;c=h[a];a++)if((b=i[c])&&b.getAttribute("data-orderloaded")==="loaded")delete i[c],require.addScriptToDom(b);else break;a>0&&h.splice(0, +a)}var f=typeof document!=="undefined"&&typeof window!=="undefined"&&document.createElement("script"),n=f&&(f.async||window.opera&&Object.prototype.toString.call(window.opera)==="[object Opera]"||"MozAppearance"in document.documentElement.style),o=f&&f.readyState==="uninitialized",l=/^(complete|loaded)$/,g=[],j={},i={},h=[],f=null;define({version:"1.0.5",load:function(a,b,c,e){var d;b.nameToUrl?(d=b.nameToUrl(a,null),require.s.skipAsync[d]=!0,n||e.isBuild?b([a],c):o?(e=require.s.contexts._,!e.urlFetched[d]&& +!e.loaded[a]&&(e.urlFetched[d]=!0,require.resourcesReady(!1),e.scriptCount+=1,d=require.attach(d,e,a,null,null,m),i[a]=d,h.push(a)),b([a],c)):b.specified(a)?b([a],c):(g.push({name:a,req:b,onLoad:c}),require.attach(d,null,a,k,"script/cache"))):b([a],c)}})})(); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/polyfills/classList.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/polyfills/classList.min.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +/* @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/ +"use strict";if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(a){var f="classList",d="prototype",e=(a.HTMLElement||a.Element)[d],g=Object;strTrim=String[d].trim||function(){return this.replace(/^\s+|\s+$/g,"")},arrIndexOf=Array[d].indexOf||function(k){for(var j=0,h=this.length;j")&&c[0]);return a>4?a:!1}();return a},m.isInternetExplorer=function(){var a=m.isInternetExplorer.cached=typeof m.isInternetExplorer.cached!="undefined"?m.isInternetExplorer.cached:Boolean(m.getInternetExplorerMajorVersion());return a},m.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8)},m.enabled=!m.emulated.pushState,m.bugs={setHash:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<7)},m.isEmptyObject=function(a){for(var b in a)return!1;return!0},m.cloneObject=function(a){var b,c;return a?(b=k.stringify(a),c=k.parse(b)):c={},c},m.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;return a+="/",a},m.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";return a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/"),c},m.getBaseUrl=function(){var a=m.getBaseHref()||m.getBasePageUrl()||m.getRootUrl();return a},m.getPageUrl=function(){var a=m.getState(!1,!1),b=(a||{}).url||d.location.href,c;return c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"}),c},m.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},m.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);return b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=m.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=m.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=m.getPageUrl().replace(/[\?#].*/,"")+a:b?c=m.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=m.getBasePageUrl()+a.replace(/^(\.\/)+/,"")),c.replace(/\#$/,"")},m.getShortUrl=function(a){var b=a,c=m.getBaseUrl(),d=m.getRootUrl();return m.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),m.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),b},m.store={},m.idToState=m.idToState||{},m.stateToId=m.stateToId||{},m.urlToId=m.urlToId||{},m.storedStates=m.storedStates||[],m.savedStates=m.savedStates||[],m.normalizeStore=function(){m.store.idToState=m.store.idToState||{},m.store.urlToId=m.store.urlToId||{},m.store.stateToId=m.store.stateToId||{}},m.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=m.getLastSavedState();return!c&&b&&(c=m.createStateObject()),a&&(c=m.cloneObject(c),c.url=c.cleanUrl||c.url),c},m.getIdByState=function(a){var b=m.extractId(a.url),c;if(!b){c=m.getStateString(a);if(typeof m.stateToId[c]!="undefined")b=m.stateToId[c];else if(typeof m.store.stateToId[c]!="undefined")b=m.store.stateToId[c];else{for(;;){b=(new Date).getTime()+String(Math.random()).replace(/\D/g,"");if(typeof m.idToState[b]=="undefined"&&typeof m.store.idToState[b]=="undefined")break}m.stateToId[c]=b,m.idToState[b]=a}}return b},m.normalizeState=function(a){var b,c;if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};b={},b.normalized=!0,b.title=a.title||"",b.url=m.getFullUrl(m.unescapeString(a.url||d.location.href)),b.hash=m.getShortUrl(b.url),b.data=m.cloneObject(a.data),b.id=m.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl,c=!m.isEmptyObject(b.data);if(b.title||c)b.hash=m.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;return b.hashedUrl=m.getFullUrl(b.hash),(m.emulated.pushState||m.bugs.safariPoll)&&m.hasUrlDuplicate(b)&&(b.url=b.hashedUrl),b},m.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};return d=m.normalizeState(d),d},m.getStateById=function(a){a=String(a);var c=m.idToState[a]||m.store.idToState[a]||b;return c},m.getStateString=function(a){var b,c,d;return b=m.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c),d},m.getStateId=function(a){var b,c;return b=m.normalizeState(a),c=b.id,c},m.getHashByState=function(a){var b,c;return b=m.normalizeState(a),c=b.hash,c},m.extractId=function(a){var b,c,d;return c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"",b||!1},m.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},m.extractState=function(a,b){var c=null,d,e;return b=b||!1,d=m.extractId(a),d&&(c=m.getStateById(d)),c||(e=m.getFullUrl(a),d=m.getIdByUrl(e)||!1,d&&(c=m.getStateById(d)),!c&&b&&!m.isTraditionalAnchor(a)&&(c=m.createStateObject(null,null,e))),c},m.getIdByUrl=function(a){var c=m.urlToId[a]||m.store.urlToId[a]||b;return c},m.getLastSavedState=function(){return m.savedStates[m.savedStates.length-1]||b},m.getLastStoredState=function(){return m.storedStates[m.storedStates.length-1]||b},m.hasUrlDuplicate=function(a){var b=!1,c;return c=m.extractState(a.url),b=c&&c.id!==a.id,b},m.storeState=function(a){return m.urlToId[a.url]=a.id,m.storedStates.push(m.cloneObject(a)),a},m.isLastSavedState=function(a){var b=!1,c,d,e;return m.savedStates.length&&(c=a.id,d=m.getLastSavedState(),e=d.id,b=c===e),b},m.saveState=function(a){return m.isLastSavedState(a)?!1:(m.savedStates.push(m.cloneObject(a)),!0)},m.getStateByIndex=function(a){var b=null;return typeof a=="undefined"?b=m.savedStates[m.savedStates.length-1]:a<0?b=m.savedStates[m.savedStates.length+a]:b=m.savedStates[a],b},m.getHash=function(){var a=m.unescapeHash(d.location.hash);return a},m.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},m.unescapeHash=function(a){var b=m.normalizeHash(a);return b=m.unescapeString(b),b},m.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},m.setHash=function(a,b){var c,e,f;return b!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.setHash,args:arguments,queue:b}),!1):(c=m.escapeHash(a),m.busy(!0),e=m.extractState(a,!0),e&&!m.emulated.pushState?m.pushState(e.data,e.title,e.url,!1):d.location.hash!==c&&(m.bugs.setHash?(f=m.getPageUrl(),m.pushState(null,null,f+"#"+c,!1)):d.location.hash=c),m)},m.escapeHash=function(b){var c=m.normalizeHash(b);return c=a.escape(c),m.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),c},m.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return b=m.unescapeHash(b),b},m.setTitle=function(a){var b=a.title,c;b||(c=m.getStateByIndex(0),c&&c.url===a.url&&(b=c.title||m.options.initialTitle));try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}return d.title=b,m},m.queues=[],m.busy=function(a){typeof a!="undefined"?m.busy.flag=a:typeof m.busy.flag=="undefined"&&(m.busy.flag=!1);if(!m.busy.flag){h(m.busy.timeout);var b=function(){var a,c,d;if(m.busy.flag)return;for(a=m.queues.length-1;a>=0;--a){c=m.queues[a];if(c.length===0)continue;d=c.shift(),m.fireQueueItem(d),m.busy.timeout=g(b,m.options.busyDelay)}};m.busy.timeout=g(b,m.options.busyDelay)}return m.busy.flag},m.busy.flag=!1,m.fireQueueItem=function(a){return a.callback.apply(a.scope||m,a.args||[])},m.pushQueue=function(a){return m.queues[a.queue||0]=m.queues[a.queue||0]||[],m.queues[a.queue||0].push(a),m},m.queue=function(a,b){return typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),m.busy()?m.pushQueue(a):m.fireQueueItem(a),m},m.clearQueue=function(){return m.busy.flag=!1,m.queues=[],m},m.stateChanged=!1,m.doubleChecker=!1,m.doubleCheckComplete=function(){return m.stateChanged=!0,m.doubleCheckClear(),m},m.doubleCheckClear=function(){return m.doubleChecker&&(h(m.doubleChecker),m.doubleChecker=!1),m},m.doubleCheck=function(a){return m.stateChanged=!1,m.doubleCheckClear(),m.bugs.ieDoubleCheck&&(m.doubleChecker=g(function(){return m.doubleCheckClear(),m.stateChanged||a(),!0},m.options.doubleCheckInterval)),m},m.safariStatePoll=function(){var b=m.extractState(d.location.href),c;if(!m.isLastSavedState(b))c=b;else return;return c||(c=m.createStateObject()),m.Adapter.trigger(a,"popstate"),m},m.back=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.back,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.back(!1)}),n.go(-1),!0)},m.forward=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.forward,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.forward(!1)}),n.go(1),!0)},m.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)m.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)m.back(b)}return m};if(m.emulated.pushState){var o=function(){};m.pushState=m.pushState||o,m.replaceState=m.replaceState||o}else m.onPopState=function(b,c){var e=!1,f=!1,g,h;return m.doubleCheckComplete(),g=m.getHash(),g?(h=m.extractState(g||d.location.href,!0),h?m.replaceState(h.data,h.title,h.url,!1):(m.Adapter.trigger(a,"anchorchange"),m.busy(!1)),m.expectedStateId=!1,!1):(e=m.Adapter.extractEventData("state",b,c)||!1,e?f=m.getStateById(e):m.expectedStateId?f=m.getStateById(m.expectedStateId):f=m.extractState(d.location.href),f||(f=m.createStateObject(null,null,d.location.href)),m.expectedStateId=!1,m.isLastSavedState(f)?(m.busy(!1),!1):(m.storeState(f),m.saveState(f),m.setTitle(f),m.Adapter.trigger(a,"statechange"),m.busy(!1),!0))},m.Adapter.bind(a,"popstate",m.onPopState),m.pushState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.pushState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.pushState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0},m.replaceState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.replaceState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.replaceState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0};if(f){try{m.store=k.parse(f.getItem("History.store"))||{}}catch(p){m.store={}}m.normalizeStore()}else m.store={},m.normalizeStore();m.Adapter.bind(a,"beforeunload",m.clearAllIntervals),m.Adapter.bind(a,"unload",m.clearAllIntervals),m.saveState(m.storeState(m.extractState(d.location.href,!0))),f&&(m.onUnload=function(){var a,b;try{a=k.parse(f.getItem("History.store"))||{}}catch(c){a={}}a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in m.idToState){if(!m.idToState.hasOwnProperty(b))continue;a.idToState[b]=m.idToState[b]}for(b in m.urlToId){if(!m.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=m.urlToId[b]}for(b in m.stateToId){if(!m.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=m.stateToId[b]}m.store=a,m.normalizeStore(),f.setItem("History.store",k.stringify(a))},m.intervalList.push(i(m.onUnload,m.options.storeInterval)),m.Adapter.bind(a,"beforeunload",m.onUnload),m.Adapter.bind(a,"unload",m.onUnload));if(!m.emulated.pushState){m.bugs.safariPoll&&m.intervalList.push(i(m.safariStatePoll,m.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")m.Adapter.bind(a,"hashchange",function(){m.Adapter.trigger(a,"popstate")}),m.getHash()&&m.Adapter.onDomLoad(function(){m.Adapter.trigger(a,"hashchange")})}},m.init()})(window) \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-apollo.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-apollo.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, +null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-clj.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-clj.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,18 @@ +/* + Copyright (C) 2011 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a], +["typ",/^:[\dA-Za-z-]+/]]),["clj"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-css.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-css.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", +/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-go.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-go.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-hs.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-hs.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n \r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/, +null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-lisp.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-lisp.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a], +["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-lua.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-lua.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i], +["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-ml.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-ml.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], +["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-n.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-n.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,4 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/, +a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, +a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-proto.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-proto.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-scala.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-scala.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], +["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-sql.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-sql.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i, +null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-tex.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-tex.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-vb.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-vb.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r \xa0

"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“”'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i, +null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-vhdl.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-vhdl.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, +null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i], +["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-wiki.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-wiki.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t \xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); +PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-xq.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-xq.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[\w-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^@[\w-]+/],["tag",/^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["com",/^\(:[\S\s]*?:\)/],["pln",/^[(),/;[\]{}]$/],["str",/^(?:"(?:[^"\\{]|\\[\S\s])*(?:"|$)|'(?:[^'\\{]|\\[\S\s])*(?:'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/], +["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/], +["pln",/^[\w:-]+/],["pln",/^[\t\n\r \xa0]+/]]),["xq","xquery"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/lang-yaml.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/lang-yaml.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/prettify.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/prettify.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/prettify/prettify.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/prettify/prettify.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p0&&(g.splice(m-1,2),m-=2);m=q.pkgs[g=b[0]];b=b.join("/");m&&b===g+"/"+m.main&&(b=g)}else b.indexOf("./")=== +0&&(b=b.substring(2));return b}function l(b,f){var g=b?b.indexOf("!"):-1,m=null,a=f?f.name:null,h=b,e,d;g!==-1&&(m=b.substring(0,g),b=b.substring(g+1,b.length));m&&(m=c(m,a));b&&(m?e=(g=n[m])&&g.normalize?g.normalize(b,function(b){return c(b,a)}):c(b,a):(e=c(b,a),d=G[e],d||(d=i.nameToUrl(b,null,f),G[e]=d)));return{prefix:m,name:e,parentMap:f,url:d,originalName:h,fullName:m?m+"!"+(e||""):e}}function j(){var b=!0,f=q.priorityWait,g,a;if(f){for(a=0;g=f[a];a++)if(!s[g]){b=!1;break}b&&delete q.priorityWait}return b} +function k(b,f,g){return function(){var a=ha.call(arguments,0),c;if(g&&K(c=a[a.length-1]))c.__requireJsBuild=!0;a.push(f);return b.apply(null,a)}}function t(b,f,g){f=k(g||i.require,b,f);$(f,{nameToUrl:k(i.nameToUrl,b),toUrl:k(i.toUrl,b),defined:k(i.requireDefined,b),specified:k(i.requireSpecified,b),isBrowser:d.isBrowser});return f}function p(b){var f,g,a,c=b.callback,h=b.map,e=h.fullName,ca=b.deps;a=b.listeners;var j=q.requireExecCb||d.execCb;if(c&&K(c)){if(q.catchError.define)try{g=j(e,b.callback, +ca,n[e])}catch(k){f=k}else g=j(e,b.callback,ca,n[e]);if(e)(c=b.cjsModule)&&c.exports!==r&&c.exports!==n[e]?g=n[e]=b.cjsModule.exports:g===r&&b.usingExports?g=n[e]:(n[e]=g,H[e]&&(T[e]=!0))}else e&&(g=n[e]=c,H[e]&&(T[e]=!0));if(x[b.id])delete x[b.id],b.isDone=!0,i.waitCount-=1,i.waitCount===0&&(J=[]);delete M[e];if(d.onResourceLoad&&!b.placeholder)d.onResourceLoad(i,h,b.depArray);if(f)return g=(e?l(e).url:"")||f.fileName||f.sourceURL,a=f.moduleTree,f=P("defineerror",'Error evaluating module "'+e+'" at location "'+ +g+'":\n'+f+"\nfileName:"+g+"\nlineNumber: "+(f.lineNumber||f.line),f),f.moduleName=e,f.moduleTree=a,d.onError(f);for(f=0;c=a[f];f++)c(g);return r}function u(b,f){return function(g){b.depDone[f]||(b.depDone[f]=!0,b.deps[f]=g,b.depCount-=1,b.depCount||p(b))}}function o(b,f){var g=f.map,a=g.fullName,c=g.name,h=N[b]||(N[b]=n[b]),e;if(!f.loading)f.loading=!0,e=function(b){f.callback=function(){return b};p(f);s[f.id]=!0;A()},e.fromText=function(b,f){var g=Q;s[b]=!1;i.scriptCount+=1;i.fake[b]=!0;g&&(Q=!1); +d.exec(f);g&&(Q=!0);i.completeLoad(b)},a in n?e(n[a]):h.load(c,t(g.parentMap,!0,function(b,a){var c=[],e,m;for(e=0;m=b[e];e++)m=l(m,g.parentMap),b[e]=m.fullName,m.prefix||c.push(b[e]);f.moduleDeps=(f.moduleDeps||[]).concat(c);return i.require(b,a)}),e,q)}function y(b){x[b.id]||(x[b.id]=b,J.push(b),i.waitCount+=1)}function D(b){this.listeners.push(b)}function v(b,f){var g=b.fullName,a=b.prefix,c=a?N[a]||(N[a]=n[a]):null,h,e;g&&(h=M[g]);if(!h&&(e=!0,h={id:(a&&!c?O++ +"__p@:":"")+(g||"__r@"+O++),map:b, +depCount:0,depDone:[],depCallbacks:[],deps:[],listeners:[],add:D},B[h.id]=!0,g&&(!a||N[a])))M[g]=h;a&&!c?(g=l(a),a in n&&!n[a]&&(delete n[a],delete R[g.url]),a=v(g,!0),a.add(function(){var f=l(b.originalName,b.parentMap),f=v(f,!0);h.placeholder=!0;f.add(function(b){h.callback=function(){return b};p(h)})})):e&&f&&(s[h.id]=!1,i.paused.push(h),y(h));return h}function C(b,f,a,c){var b=l(b,c),d=b.name,h=b.fullName,e=v(b),j=e.id,k=e.deps,o;if(h){if(h in n||s[j]===!0||h==="jquery"&&q.jQuery&&q.jQuery!== +a().fn.jquery)return;B[j]=!0;s[j]=!0;h==="jquery"&&a&&W(a())}e.depArray=f;e.callback=a;for(a=0;a0)return r;if(q.priorityWait)if(j())A();else return r;for(h in s)if(!(h in L)&&(c=!0,!s[h]))if(b)a+=h+" ";else if(l=!0,h.indexOf("!")===-1){k=[];break}else(e=M[h]&&M[h].moduleDeps)&&k.push.apply(k,e);if(!c&&!i.waitCount)return r;if(b&&a)return b=P("timeout","Load timeout for modules: "+a),b.requireType="timeout",b.requireModules=a,b.contextName=i.contextName,d.onError(b); +if(l&&k.length)for(a=0;h=x[k[a]];a++)if(h=F(h,{})){z(h,{});break}if(!b&&(l||i.scriptCount)){if((I||da)&&!X)X=setTimeout(function(){X=0;E()},50);return r}if(i.waitCount){for(a=0;h=J[a];a++)z(h,{});i.paused.length&&A();Y<5&&(Y+=1,E())}Y=0;d.checkReadyState();return r}var i,A,q={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},catchError:{}},S=[],B={require:!0,exports:!0,module:!0},G={},n={},s={},x={},J=[],R={},O=0,M={},N={},H={},T={},Z=0;W=function(b){if(!i.jQuery&&(b=b||(typeof jQuery!=="undefined"?jQuery: +null))&&!(q.jQuery&&b.fn.jquery!==q.jQuery)&&("holdReady"in b||"readyWait"in b))if(i.jQuery=b,w(["jquery",[],function(){return jQuery}]),i.scriptCount)V(b,!0),i.jQueryIncremented=!0};A=function(){var b,a,c,l,k,h;i.takeGlobalQueue();Z+=1;if(i.scriptCount<=0)i.scriptCount=0;for(;S.length;)if(b=S.shift(),b[0]===null)return d.onError(P("mismatch","Mismatched anonymous define() module: "+b[b.length-1]));else w(b);if(!q.priorityWait||j())for(;i.paused.length;){k=i.paused;i.pausedCount+=k.length;i.paused= +[];for(l=0;b=k[l];l++)a=b.map,c=a.url,h=a.fullName,a.prefix?o(a.prefix,b):!R[c]&&!s[h]&&((q.requireLoad||d.load)(i,h,c),c.indexOf("empty:")!==0&&(R[c]=!0));i.startTime=(new Date).getTime();i.pausedCount-=k.length}Z===1&&E();Z-=1;return r};i={contextName:a,config:q,defQueue:S,waiting:x,waitCount:0,specified:B,loaded:s,urlMap:G,urlFetched:R,scriptCount:0,defined:n,paused:[],pausedCount:0,plugins:N,needFullExec:H,fake:{},fullExec:T,managerCallbacks:M,makeModuleMap:l,normalize:c,configure:function(b){var a, +c,d;b.baseUrl&&b.baseUrl.charAt(b.baseUrl.length-1)!=="/"&&(b.baseUrl+="/");a=q.paths;d=q.pkgs;$(q,b,!0);if(b.paths){for(c in b.paths)c in L||(a[c]=b.paths[c]);q.paths=a}if((a=b.packagePaths)||b.packages){if(a)for(c in a)c in L||aa(d,a[c],c);b.packages&&aa(d,b.packages);q.pkgs=d}if(b.priority)c=i.requireWait,i.requireWait=!1,A(),i.require(b.priority),A(),i.requireWait=c,q.priorityWait=b.priority;if(b.deps||b.callback)i.require(b.deps||[],b.callback)},requireDefined:function(b,a){return l(b,a).fullName in +n},requireSpecified:function(b,a){return l(b,a).fullName in B},require:function(b,c,g){if(typeof b==="string"){if(K(c))return d.onError(P("requireargs","Invalid require call"));if(d.get)return d.get(i,b,c);c=l(b,c);b=c.fullName;return!(b in n)?d.onError(P("notloaded","Module name '"+c.fullName+"' has not been loaded yet for context: "+a)):n[b]}(b&&b.length||c)&&C(null,b,c,g);if(!i.requireWait)for(;!i.scriptCount&&i.paused.length;)A();return i.require},takeGlobalQueue:function(){U.length&&(ja.apply(i.defQueue, +[i.defQueue.length-1,0].concat(U)),U=[])},completeLoad:function(b){var a;for(i.takeGlobalQueue();S.length;)if(a=S.shift(),a[0]===null){a[0]=b;break}else if(a[0]===b)break;else w(a),a=null;a?w(a):w([b,[],b==="jquery"&&typeof jQuery!=="undefined"?function(){return jQuery}:null]);d.isAsync&&(i.scriptCount-=1);A();d.isAsync||(i.scriptCount-=1)},toUrl:function(b,a){var c=b.lastIndexOf("."),d=null;c!==-1&&(d=b.substring(c,b.length),b=b.substring(0,c));return i.nameToUrl(b,d,a)},nameToUrl:function(b,a,g){var l, +k,h,e,j=i.config,b=c(b,g&&g.fullName);if(d.jsExtRegExp.test(b))a=b+(a?a:"");else{l=j.paths;k=j.pkgs;g=b.split("/");for(e=g.length;e>0;e--)if(h=g.slice(0,e).join("/"),l[h]){g.splice(0,e,l[h]);break}else if(h=k[h]){b=b===h.name?h.location+"/"+h.main:h.location;g.splice(0,e,b);break}a=g.join("/")+(a||".js");a=(a.charAt(0)==="/"||a.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+a}return j.urlArgs?a+((a.indexOf("?")===-1?"?":"&")+j.urlArgs):a}};i.jQueryCheck=W;i.resume=A;return i}function ka(){var a,c,d;if(C&&C.readyState=== +"interactive")return C;a=document.getElementsByTagName("script");for(c=a.length-1;c>-1&&(d=a[c]);c--)if(d.readyState==="interactive")return C=d;return null}var la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/require\(\s*["']([^'"\s]+)["']\s*\)/g,fa=/^\.\//,ba=/\.js$/,O=Object.prototype.toString,u=Array.prototype,ha=u.slice,ja=u.splice,I=!!(typeof window!=="undefined"&&navigator&&document),da=!I&&typeof importScripts!=="undefined",na=I&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/, +ea=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",L={},D={},U=[],C=null,Y=0,Q=!1,ia={require:!0,module:!0,exports:!0},d,u={},J,y,v,E,o,w,F,B,z,W,X;if(typeof define==="undefined"){if(typeof requirejs!=="undefined")if(K(requirejs))return;else u=requirejs,requirejs=r;typeof require!=="undefined"&&!K(require)&&(u=require,require=r);d=requirejs=function(a,c,d){var j="_",k;!G(a)&&typeof a!=="string"&&(k=a,G(c)?(a=c,c=d):a=[]);if(k&&k.context)j=k.context;d=D[j]||(D[j]=ga(j));k&&d.configure(k); +return d.require(a,c)};d.config=function(a){return d(a)};require||(require=d);d.toUrl=function(a){return D._.toUrl(a)};d.version="1.0.8";d.jsExtRegExp=/^\/|:|\?|\.js$/;y=d.s={contexts:D,skipAsync:{}};if(d.isAsync=d.isBrowser=I)if(v=y.head=document.getElementsByTagName("head")[0],E=document.getElementsByTagName("base")[0])v=y.head=E.parentNode;d.onError=function(a){throw a;};d.load=function(a,c,l){d.resourcesReady(!1);a.scriptCount+=1;d.attach(l,a,c);if(a.jQuery&&!a.jQueryIncremented)V(a.jQuery,!0), +a.jQueryIncremented=!0};define=function(a,c,d){var j,k;typeof a!=="string"&&(d=c,c=a,a=null);G(c)||(d=c,c=[]);!c.length&&K(d)&&d.length&&(d.toString().replace(la,"").replace(ma,function(a,d){c.push(d)}),c=(d.length===1?["require"]:["require","exports","module"]).concat(c));if(Q&&(j=J||ka()))a||(a=j.getAttribute("data-requiremodule")),k=D[j.getAttribute("data-requirecontext")];(k?k.defQueue:U).push([a,c,d]);return r};define.amd={multiversion:!0,plugins:!0,jQuery:!0};d.exec=function(a){return eval(a)}; +d.execCb=function(a,c,d,j){return c.apply(j,d)};d.addScriptToDom=function(a){J=a;E?v.insertBefore(a,E):v.appendChild(a);J=null};d.onScriptLoad=function(a){var c=a.currentTarget||a.srcElement,l;if(a.type==="load"||c&&na.test(c.readyState))C=null,a=c.getAttribute("data-requirecontext"),l=c.getAttribute("data-requiremodule"),D[a].completeLoad(l),c.detachEvent&&!ea?c.detachEvent("onreadystatechange",d.onScriptLoad):c.removeEventListener("load",d.onScriptLoad,!1)};d.attach=function(a,c,l,j,k,o){var p; +if(I)return j=j||d.onScriptLoad,p=c&&c.config&&c.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),p.type=k||c&&c.config.scriptType||"text/javascript",p.charset="utf-8",p.async=!y.skipAsync[a],c&&p.setAttribute("data-requirecontext",c.contextName),p.setAttribute("data-requiremodule",l),p.attachEvent&&!(p.attachEvent.toString&&p.attachEvent.toString().indexOf("[native code]")<0)&&!ea?(Q=!0,o?p.onreadystatechange=function(){if(p.readyState=== +"loaded")p.onreadystatechange=null,p.attachEvent("onreadystatechange",j),o(p)}:p.attachEvent("onreadystatechange",j)):p.addEventListener("load",j,!1),p.src=a,o||d.addScriptToDom(p),p;else da&&(importScripts(a),c.completeLoad(l));return null};if(I){o=document.getElementsByTagName("script");for(B=o.length-1;B>-1&&(w=o[B]);B--){if(!v)v=w.parentNode;if(F=w.getAttribute("data-main")){if(!u.baseUrl)o=F.split("/"),w=o.pop(),o=o.length?o.join("/")+"/":"./",u.baseUrl=o,F=w.replace(ba,"");u.deps=u.deps?u.deps.concat(F): +[F];break}}}d.checkReadyState=function(){var a=y.contexts,c;for(c in a)if(!(c in L)&&a[c].waitCount)return;d.resourcesReady(!0)};d.resourcesReady=function(a){var c,l;d.resourcesDone=a;if(d.resourcesDone)for(l in a=y.contexts,a)if(!(l in L)&&(c=a[l],c.jQueryIncremented))V(c.jQuery,!1),c.jQueryIncremented=!1};d.pageLoaded=function(){if(document.readyState!=="complete")document.readyState="complete"};if(I&&document.addEventListener&&!document.readyState)document.readyState="loading",window.addEventListener("load", +d.pageLoaded,!1);d(u);if(d.isAsync&&typeof setTimeout!=="undefined")z=y.contexts[u.context||"_"],z.requireWait=!0,setTimeout(function(){z.requireWait=!1;z.scriptCount||z.resume();d.checkReadyState()},0)}})(); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/slide-controller.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/slide-controller.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,109 @@ +(function(window) { + +var ORIGIN_ = location.protocol + '//' + location.host; + +function SlideController() { + this.popup = null; + this.isPopup = window.opener; + + if (this.setupDone()) { + window.addEventListener('message', this.onMessage_.bind(this), false); + + // Close popups if we reload the main window. + window.addEventListener('beforeunload', function(e) { + if (this.popup) { + this.popup.close(); + } + }.bind(this), false); + } +} + +SlideController.PRESENTER_MODE_PARAM = 'presentme'; + +SlideController.prototype.setupDone = function() { + var params = location.search.substring(1).split('&').map(function(el) { + return el.split('='); + }); + + var presentMe = null; + for (var i = 0, param; param = params[i]; ++i) { + if (param[0].toLowerCase() == SlideController.PRESENTER_MODE_PARAM) { + presentMe = param[1] == 'true'; + break; + } + } + + if (presentMe !== null) { + localStorage.ENABLE_PRESENTOR_MODE = presentMe; + // TODO: use window.history.pushState to update URL instead of the redirect. + if (window.history.replaceState) { + window.history.replaceState({}, '', location.pathname); + } else { + location.replace(location.pathname); + return false; + } + } + + var enablePresenterMode = localStorage.getItem('ENABLE_PRESENTOR_MODE'); + if (enablePresenterMode && JSON.parse(enablePresenterMode)) { + // Only open popup from main deck. Don't want recursive popup opening! + if (!this.isPopup) { + var opts = 'menubar=no,location=yes,resizable=yes,scrollbars=no,status=no'; + this.popup = window.open(location.href, 'mywindow', opts); + + // Loading in the popup? Trigger the hotkey for turning presenter mode on. + this.popup.addEventListener('load', function(e) { + var evt = this.popup.document.createEvent('Event'); + evt.initEvent('keydown', true, true); + evt.keyCode = 'P'.charCodeAt(0); + this.popup.document.dispatchEvent(evt); + // this.popup.document.body.classList.add('with-notes'); + // document.body.classList.add('popup'); + }.bind(this), false); + } + } + + return true; +} + +SlideController.prototype.onMessage_ = function(e) { + var data = e.data; + + // Restrict messages to being from this origin. Allow local developmet + // from file:// though. + // TODO: It would be dope if FF implemented location.origin! + if (e.origin != ORIGIN_ && ORIGIN_.indexOf('file://') != 0) { + alert('Someone tried to postMessage from an unknown origin'); + return; + } + + // if (e.source.location.hostname != 'localhost') { + // alert('Someone tried to postMessage from an unknown origin'); + // return; + // } + + if ('keyCode' in data) { + var evt = document.createEvent('Event'); + evt.initEvent('keydown', true, true); + evt.keyCode = data.keyCode; + document.dispatchEvent(evt); + } +}; + +SlideController.prototype.sendMsg = function(msg) { + // // Send message to popup window. + // if (this.popup) { + // this.popup.postMessage(msg, ORIGIN_); + // } + + // Send message to main window. + if (this.isPopup) { + // TODO: It would be dope if FF implemented location.origin. + window.opener.postMessage(msg, '*'); + } +}; + +window.SlideController = SlideController; + +})(window); + diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/slide-deck.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/slide-deck.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,768 @@ +/** + * @authors Luke Mahe + * @authors Eric Bidelman + * @fileoverview TODO + */ +document.cancelFullScreen = document.webkitCancelFullScreen || + document.mozCancelFullScreen; + +/** + * @constructor + */ +function SlideDeck(el) { + this.curSlide_ = 0; + this.prevSlide_ = 0; + this.config_ = null; + this.container = el || document.querySelector('slides'); + this.slides = []; + this.controller = null; + + this.getCurrentSlideFromHash_(); + + // Call this explicitly. Modernizr.load won't be done until after DOM load. + this.onDomLoaded_.bind(this)(); +} + +/** + * @const + * @private + */ +SlideDeck.prototype.SLIDE_CLASSES_ = [ + 'far-past', 'past', 'current', 'next', 'far-next']; + +/** + * @const + * @private + */ +SlideDeck.prototype.CSS_DIR_ = 'theme/css/'; + +/** + * @private + */ +SlideDeck.prototype.getCurrentSlideFromHash_ = function() { + var slideNo = parseInt(document.location.hash.substr(1)); + + if (slideNo) { + this.curSlide_ = slideNo - 1; + } else { + this.curSlide_ = 0; + } +}; + +/** + * @param {number} slideNo + */ +SlideDeck.prototype.loadSlide = function(slideNo) { + if (slideNo) { + this.curSlide_ = slideNo - 1; + this.updateSlides_(); + } +}; + +/** + * @private + */ +SlideDeck.prototype.onDomLoaded_ = function(e) { + document.body.classList.add('loaded'); // Add loaded class for templates to use. + + this.slides = this.container.querySelectorAll('slide:not([hidden]):not(.backdrop)'); + + // If we're on a smartphone, apply special sauce. + if (Modernizr.mq('only screen and (max-device-width: 480px)')) { + // var style = document.createElement('link'); + // style.rel = 'stylesheet'; + // style.type = 'text/css'; + // style.href = this.CSS_DIR_ + 'phone.css'; + // document.querySelector('head').appendChild(style); + + // No need for widescreen layout on a phone. + this.container.classList.remove('layout-widescreen'); + } + + this.loadConfig_(SLIDE_CONFIG); + this.addEventListeners_(); + this.updateSlides_(); + + // Add slide numbers and total slide count metadata to each slide. + var that = this; + for (var i = 0, slide; slide = this.slides[i]; ++i) { + slide.dataset.slideNum = i + 1; + slide.dataset.totalSlides = this.slides.length; + + slide.addEventListener('click', function(e) { + if (document.body.classList.contains('overview')) { + that.loadSlide(this.dataset.slideNum); + e.preventDefault(); + window.setTimeout(function() { + that.toggleOverview(); + }, 500); + } + }, false); + } + + // Note: this needs to come after addEventListeners_(), which adds a + // 'keydown' listener that this controller relies on. + // Also, no need to set this up if we're on mobile. + if (!Modernizr.touch) { + this.controller = new SlideController(this); + if (this.controller.isPopup) { + document.body.classList.add('popup'); + } + } +}; + +/** + * @private + */ +SlideDeck.prototype.addEventListeners_ = function() { + document.addEventListener('keydown', this.onBodyKeyDown_.bind(this), false); + window.addEventListener('popstate', this.onPopState_.bind(this), false); + + // var transEndEventNames = { + // 'WebkitTransition': 'webkitTransitionEnd', + // 'MozTransition': 'transitionend', + // 'OTransition': 'oTransitionEnd', + // 'msTransition': 'MSTransitionEnd', + // 'transition': 'transitionend' + // }; + // + // // Find the correct transitionEnd vendor prefix. + // window.transEndEventName = transEndEventNames[ + // Modernizr.prefixed('transition')]; + // + // // When slides are done transitioning, kickoff loading iframes. + // // Note: we're only looking at a single transition (on the slide). This + // // doesn't include autobuilds the slides may have. Also, if the slide + // // transitions on multiple properties (e.g. not just 'all'), this doesn't + // // handle that case. + // this.container.addEventListener(transEndEventName, function(e) { + // this.enableSlideFrames_(this.curSlide_); + // }.bind(this), false); + + // document.addEventListener('slideenter', function(e) { + // var slide = e.target; + // window.setTimeout(function() { + // this.enableSlideFrames_(e.slideNumber); + // this.enableSlideFrames_(e.slideNumber + 1); + // }.bind(this), 300); + // }.bind(this), false); +}; + +/** + * @private + * @param {Event} e The pop event. + */ +SlideDeck.prototype.onPopState_ = function(e) { + if (e.state != null) { + this.curSlide_ = e.state; + this.updateSlides_(true); + } +}; + +/** + * @param {Event} e + */ +SlideDeck.prototype.onBodyKeyDown_ = function(e) { + if (/^(input|textarea)$/i.test(e.target.nodeName) || + e.target.isContentEditable) { + return; + } + + // Forward keydowns to the main slides if we're the popup. + if (this.controller && this.controller.isPopup) { + this.controller.sendMsg({keyCode: e.keyCode}); + } + + switch (e.keyCode) { + case 13: // Enter + if (document.body.classList.contains('overview')) { + this.toggleOverview(); + } + break; + + case 39: // right arrow + case 32: // space + case 34: // PgDn + this.nextSlide(); + e.preventDefault(); + break; + + case 37: // left arrow + case 8: // Backspace + case 33: // PgUp + this.prevSlide(); + e.preventDefault(); + break; + + case 40: // down arrow + this.nextSlide(); + e.preventDefault(); + break; + + case 38: // up arrow + this.prevSlide(); + e.preventDefault(); + break; + + case 72: // H: Toggle code highlighting + document.body.classList.toggle('highlight-code'); + break; + + case 79: // O: Toggle overview + this.toggleOverview(); + break; + + case 80: // P + if (this.controller && this.controller.isPopup) { + document.body.classList.toggle('with-notes'); + } else if (this.controller && !this.controller.popup) { + document.body.classList.toggle('with-notes'); + } + break; + + case 82: // R + // TODO: implement refresh on main slides when popup is refreshed. + break; + + case 27: // ESC: Hide notes and highlighting + document.body.classList.remove('with-notes'); + document.body.classList.remove('highlight-code'); + + if (document.body.classList.contains('overview')) { + this.toggleOverview(); + } + break; + + case 70: // F: Toggle fullscreen + // Only respect 'f' on body. Don't want to capture keys from an . + // Also, ignore browser's fullscreen shortcut (cmd+shift+f) so we don't + // get trapped in fullscreen! + if (e.target == document.body && !(e.shiftKey && e.metaKey)) { + if (document.mozFullScreen !== undefined && !document.mozFullScreen) { + document.body.mozRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); + } else if (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen) { + document.body.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + document.cancelFullScreen(); + } + } + break; + + case 87: // W: Toggle widescreen + // Only respect 'w' on body. Don't want to capture keys from an . + if (e.target == document.body && !(e.shiftKey && e.metaKey)) { + this.container.classList.toggle('layout-widescreen'); + } + break; + } +}; + +/** + * + */ +SlideDeck.prototype.focusOverview_ = function() { + var overview = document.body.classList.contains('overview'); + + for (var i = 0, slide; slide = this.slides[i]; i++) { + slide.style[Modernizr.prefixed('transform')] = overview ? + 'translateZ(-2500px) translate(' + (( i - this.curSlide_ ) * 105) + + '%, 0%)' : ''; + } +}; + +/** + */ +SlideDeck.prototype.toggleOverview = function() { + document.body.classList.toggle('overview'); + + this.focusOverview_(); +}; + +/** + * @private + */ +SlideDeck.prototype.loadConfig_ = function(config) { + if (!config) { + return; + } + + this.config_ = config; + + var settings = this.config_.settings; + + this.loadTheme_(settings.theme || []); + + if (settings.favIcon) { + this.addFavIcon_(settings.favIcon); + } + + // Prettyprint. Default to on. + if (!!!('usePrettify' in settings) || settings.usePrettify) { + prettyPrint(); + } + + if (settings.analytics) { + this.loadAnalytics_(); + } + + if (settings.fonts) { + this.addFonts_(settings.fonts); + } + + // Builds. Default to on. + if (!!!('useBuilds' in settings) || settings.useBuilds) { + this.makeBuildLists_(); + } + + if (settings.title) { + document.title = settings.title.replace(//, ' ') + ' - Google IO 2012'; + document.querySelector('[data-config-title]').innerHTML = settings.title; + } + + if (settings.subtitle) { + document.querySelector('[data-config-subtitle]').innerHTML = settings.subtitle; + } + + if (this.config_.presenters) { + var presenters = this.config_.presenters; + var dataConfigContact = document.querySelector('[data-config-contact]'); + + var html = []; + if (presenters.length == 1) { + var p = presenters[0]; + + html = [p.name, p.company].join('
          '); + + var gplus = p.gplus ? 'g+' + p.gplus.replace(/https?:\/\//, '') + '' : ''; + + var twitter = p.twitter ? 'twitter' + + '' + + p.twitter + '' : ''; + + var www = p.www ? 'www' + p.www.replace(/https?:\/\//, '') + '' : ''; + + var github = p.github ? 'github' + p.github.replace(/https?:\/\//, '') + '' : ''; + + var html2 = [gplus, twitter, www, github].join('
          '); + + if (dataConfigContact) { + dataConfigContact.innerHTML = html2; + } + } else { + for (var i = 0, p; p = presenters[i]; ++i) { + html.push(p.name + ' - ' + p.company); + } + html = html.join('
          '); + if (dataConfigContact) { + dataConfigContact.innerHTML = html; + } + } + + var dataConfigPresenter = document.querySelector('[data-config-presenter]'); + if (dataConfigPresenter) { + document.querySelector('[data-config-presenter]').innerHTML = html; + } + } + + /* Left/Right tap areas. Default to including. */ + if (!!!('enableSlideAreas' in settings) || settings.enableSlideAreas) { + var el = document.createElement('div'); + el.classList.add('slide-area'); + el.id = 'prev-slide-area'; + el.addEventListener('click', this.prevSlide.bind(this), false); + this.container.appendChild(el); + + var el = document.createElement('div'); + el.classList.add('slide-area'); + el.id = 'next-slide-area'; + el.addEventListener('click', this.nextSlide.bind(this), false); + this.container.appendChild(el); + } + + if (Modernizr.touch && (!!!('enableTouch' in settings) || + settings.enableTouch)) { + var self = this; + + // Note: this prevents mobile zoom in/out but prevents iOS from doing + // it's crazy scroll over effect and disaligning the slides. + window.addEventListener('touchstart', function(e) { + e.preventDefault(); + }, false); + + var hammer = new Hammer(this.container); + hammer.ondragend = function(e) { + if (e.direction == 'right' || e.direction == 'down') { + self.prevSlide(); + } else if (e.direction == 'left' || e.direction == 'up') { + self.nextSlide(); + } + }; + } +}; + +/** + * @private + * @param {Array.} fonts + */ +SlideDeck.prototype.addFonts_ = function(fonts) { + var el = document.createElement('link'); + el.rel = 'stylesheet'; + el.href = ('https:' == document.location.protocol ? 'https' : 'http') + + '://fonts.googleapis.com/css?family=' + fonts.join('|') + '&v2'; + document.querySelector('head').appendChild(el); +}; + +/** + * @private + */ +SlideDeck.prototype.buildNextItem_ = function() { + var slide = this.slides[this.curSlide_]; + var toBuild = slide.querySelector('.to-build'); + var built = slide.querySelector('.build-current'); + + if (built) { + built.classList.remove('build-current'); + if (built.classList.contains('fade')) { + built.classList.add('build-fade'); + } + } + + if (!toBuild) { + var items = slide.querySelectorAll('.build-fade'); + for (var j = 0, item; item = items[j]; j++) { + item.classList.remove('build-fade'); + } + return false; + } + + toBuild.classList.remove('to-build'); + toBuild.classList.add('build-current'); + + return true; +}; + +/** + * @param {boolean=} opt_dontPush + */ +SlideDeck.prototype.prevSlide = function(opt_dontPush) { + if (this.curSlide_ > 0) { + var bodyClassList = document.body.classList; + bodyClassList.remove('highlight-code'); + + // Toggle off speaker notes if they're showing when we move backwards on the + // main slides. If we're the speaker notes popup, leave them up. + if (this.controller && !this.controller.isPopup) { + bodyClassList.remove('with-notes'); + } else if (!this.controller) { + bodyClassList.remove('with-notes'); + } + + this.prevSlide_ = this.curSlide_--; + + this.updateSlides_(opt_dontPush); + } +}; + +/** + * @param {boolean=} opt_dontPush + */ +SlideDeck.prototype.nextSlide = function(opt_dontPush) { + if (!document.body.classList.contains('overview') && this.buildNextItem_()) { + return; + } + + if (this.curSlide_ < this.slides.length - 1) { + var bodyClassList = document.body.classList; + bodyClassList.remove('highlight-code'); + + // Toggle off speaker notes if they're showing when we advanced on the main + // slides. If we're the speaker notes popup, leave them up. + if (this.controller && !this.controller.isPopup) { + bodyClassList.remove('with-notes'); + } else if (!this.controller) { + bodyClassList.remove('with-notes'); + } + + this.prevSlide_ = this.curSlide_++; + + this.updateSlides_(opt_dontPush); + } +}; + +/* Slide events */ + +/** + * Triggered when a slide enter/leave event should be dispatched. + * + * @param {string} type The type of event to trigger + * (e.g. 'slideenter', 'slideleave'). + * @param {number} slideNo The index of the slide that is being left. + */ +SlideDeck.prototype.triggerSlideEvent = function(type, slideNo) { + var el = this.getSlideEl_(slideNo); + if (!el) { + return; + } + + // Call onslideenter/onslideleave if the attribute is defined on this slide. + var func = el.getAttribute(type); + if (func) { + new Function(func).call(el); // TODO: Don't use new Function() :( + } + + // Dispatch event to listeners setup using addEventListener. + var evt = document.createEvent('Event'); + evt.initEvent(type, true, true); + evt.slideNumber = slideNo + 1; // Make it readable + evt.slide = el; + + el.dispatchEvent(evt); +}; + +/** + * @private + */ +SlideDeck.prototype.updateSlides_ = function(opt_dontPush) { + var dontPush = opt_dontPush || false; + + var curSlide = this.curSlide_; + for (var i = 0; i < this.slides.length; ++i) { + switch (i) { + case curSlide - 2: + this.updateSlideClass_(i, 'far-past'); + break; + case curSlide - 1: + this.updateSlideClass_(i, 'past'); + break; + case curSlide: + this.updateSlideClass_(i, 'current'); + break; + case curSlide + 1: + this.updateSlideClass_(i, 'next'); + break; + case curSlide + 2: + this.updateSlideClass_(i, 'far-next'); + break; + default: + this.updateSlideClass_(i); + break; + } + }; + + this.triggerSlideEvent('slideleave', this.prevSlide_); + this.triggerSlideEvent('slideenter', curSlide); + +// window.setTimeout(this.disableSlideFrames_.bind(this, curSlide - 2), 301); +// +// this.enableSlideFrames_(curSlide - 1); // Previous slide. +// this.enableSlideFrames_(curSlide + 1); // Current slide. +// this.enableSlideFrames_(curSlide + 2); // Next slide. + + // Enable current slide's iframes (needed for page loat at current slide). + this.enableSlideFrames_(curSlide + 1); + + // No way to tell when all slide transitions + auto builds are done. + // Give ourselves a good buffer to preload the next slide's iframes. + window.setTimeout(this.enableSlideFrames_.bind(this, curSlide + 2), 1000); + + this.updateHash_(dontPush); + + if (document.body.classList.contains('overview')) { + this.focusOverview_(); + return; + } + +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.enableSlideFrames_ = function(slideNo) { + var el = this.slides[slideNo - 1]; + if (!el) { + return; + } + + var frames = el.querySelectorAll('iframe'); + for (var i = 0, frame; frame = frames[i]; i++) { + this.enableFrame_(frame); + } +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.enableFrame_ = function(frame) { + var src = frame.dataset.src; + if (src && frame.src != src) { + frame.src = src; + } +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.disableSlideFrames_ = function(slideNo) { + var el = this.slides[slideNo - 1]; + if (!el) { + return; + } + + var frames = el.querySelectorAll('iframe'); + for (var i = 0, frame; frame = frames[i]; i++) { + this.disableFrame_(frame); + } +}; + +/** + * @private + * @param {Node} frame + */ +SlideDeck.prototype.disableFrame_ = function(frame) { + frame.src = 'about:blank'; +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.getSlideEl_ = function(no) { + if ((no < 0) || (no >= this.slides.length)) { + return null; + } else { + return this.slides[no]; + } +}; + +/** + * @private + * @param {number} slideNo + * @param {string} className + */ +SlideDeck.prototype.updateSlideClass_ = function(slideNo, className) { + var el = this.getSlideEl_(slideNo); + + if (!el) { + return; + } + + if (className) { + el.classList.add(className); + } + + for (var i = 0, slideClass; slideClass = this.SLIDE_CLASSES_[i]; ++i) { + if (className != slideClass) { + el.classList.remove(slideClass); + } + } +}; + +/** + * @private + */ +SlideDeck.prototype.makeBuildLists_ = function () { + for (var i = this.curSlide_, slide; slide = this.slides[i]; ++i) { + var items = slide.querySelectorAll('.build > *'); + for (var j = 0, item; item = items[j]; ++j) { + if (item.classList) { + item.classList.add('to-build'); + if (item.parentNode.classList.contains('fade')) { + item.classList.add('fade'); + } + } + } + } +}; + +/** + * @private + * @param {boolean} dontPush + */ +SlideDeck.prototype.updateHash_ = function(dontPush) { + if (!dontPush) { + var slideNo = this.curSlide_ + 1; + var hash = '#' + slideNo; + if (window.history.pushState) { + window.history.pushState(this.curSlide_, 'Slide ' + slideNo, hash); + } else { + window.location.replace(hash); + } + + // Record GA hit on this slide. + window['_gaq'] && window['_gaq'].push(['_trackPageview', + document.location.href]); + } +}; + + +/** + * @private + * @param {string} favIcon + */ +SlideDeck.prototype.addFavIcon_ = function(favIcon) { + var el = document.createElement('link'); + el.rel = 'icon'; + el.type = 'image/png'; + el.href = favIcon; + document.querySelector('head').appendChild(el); +}; + +/** + * @private + * @param {string} theme + */ +SlideDeck.prototype.loadTheme_ = function(theme) { + var styles = []; + if (theme.constructor.name === 'String') { + styles.push(theme); + } else { + styles = theme; + } + + for (var i = 0, style; themeUrl = styles[i]; i++) { + var style = document.createElement('link'); + style.rel = 'stylesheet'; + style.type = 'text/css'; + if (themeUrl.indexOf('http') == -1) { + style.href = this.CSS_DIR_ + themeUrl + '.css'; + } else { + style.href = themeUrl; + } + document.querySelector('head').appendChild(style); + } +}; + +/** + * @private + */ +SlideDeck.prototype.loadAnalytics_ = function() { + var _gaq = window['_gaq'] || []; + _gaq.push(['_setAccount', this.config_.settings.analytics]); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); +}; + + +// Polyfill missing APIs (if we need to), then create the slide deck. +// iOS < 5 needs classList, dataset, and window.matchMedia. Modernizr contains +// the last one. +(function() { + Modernizr.load({ + test: !!document.body.classList && !!document.body.dataset, + nope: ['js/polyfills/classList.min.js', 'js/polyfills/dataset.min.js'], + complete: function() { + window.slidedeck = new SlideDeck(); + } + }); +})(); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/js/slides.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/js/slides.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +require(['order!../slide_config', 'order!modernizr.custom.45394', + 'order!prettify/prettify', 'order!hammer', 'order!slide-controller', + 'order!slide-deck'], function(someModule) { + +}); diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/scripts/md/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/scripts/md/README.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +### Want to use markdown to write your slides? + +`python render.py` can do that for you. + +Dependencies: jinja2, markdown. diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/scripts/md/base.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/scripts/md/base.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,104 @@ + + + + + Google IO 2012 + + + + + + + + + + + + + + + + + + + + + +
          +

          +

          +

          +
          +
          + +{% for slide in slides %} + + {% if 'segue' in slide.class %} + +
          +

          {{- slide.title -}}

          +

          {{- slide.subtitle -}}

          +
          + {% else %} +
          +

          {{- slide.title -}}

          +

          {{- slide.subtitle -}}

          +
          +
          + {{- slide.content -}} +
          + {% endif %} +
          +{% endfor %} + + + +
          +

          <Thank You!>

          +

          Important contact information goes here.

          +
          +

          + +

          +
          + + + + + +
          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/scripts/md/render.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/scripts/md/render.py Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +import codecs +import re +import jinja2 +import markdown + +def process_slides(): + with codecs.open('../../presentation-output.html', 'w', encoding='utf8') as outfile: + md = codecs.open('slides.md', encoding='utf8').read() + md_slides = md.split('\n---\n') + print 'Compiled %s slides.' % len(md_slides) + + slides = [] + # Process each slide separately. + for md_slide in md_slides: + slide = {} + sections = md_slide.split('\n\n') + # Extract metadata at the beginning of the slide (look for key: value) + # pairs. + metadata_section = sections[0] + metadata = parse_metadata(metadata_section) + slide.update(metadata) + remainder_index = metadata and 1 or 0 + # Get the content from the rest of the slide. + content_section = '\n\n'.join(sections[remainder_index:]) + html = markdown.markdown(content_section) + slide['content'] = postprocess_html(html, metadata) + + slides.append(slide) + + template = jinja2.Template(open('base.html').read()) + + outfile.write(template.render(locals())) + +def parse_metadata(section): + """Given the first part of a slide, returns metadata associated with it.""" + metadata = {} + metadata_lines = section.split('\n') + for line in metadata_lines: + colon_index = line.find(':') + if colon_index != -1: + key = line[:colon_index].strip() + val = line[colon_index + 1:].strip() + metadata[key] = val + + return metadata + +def postprocess_html(html, metadata): + """Returns processed HTML to fit into the slide template format.""" + if metadata.get('build_lists') and metadata['build_lists'] == 'true': + html = html.replace('
            ', '
              ') + html = html.replace('
                ', '
                  ') + return html + +if __name__ == '__main__': + process_slides() diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/scripts/md/slides.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/scripts/md/slides.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,78 @@ +title: Slide Title +subtitle: Subtitle +class: image + +![Mobile vs desktop users](image.png) + +--- + +title: Segue Slide +subtitle: Subtitle +class: segue dark nobackground + +--- + +title: Agenda +class: big +build_lists: true + +Things we'll cover (list should build): + +- Bullet1 +- Bullet2 +- Bullet3 + +--- + +title: Today +class: nobackground fill + +![Many kinds of devices.](image.png) + +
                  source: place source info here
                  + +--- + +title: Big Title Slide +class: title-slide + +--- + +title: Code Example + +Media Queries are sweet: + +
                  +@media screen and (max-width: 640px) {
                  +  #sidebar { display: none; }
                  +}
                  +
                  + +--- + +title: Once more, with JavaScript + +
                  +function isSmall() {
                  +  return window.matchMedia("(min-device-width: ???)").matches;
                  +}
                  +
                  +function hasTouch() {
                  +  return Modernizr.touch;
                  +}
                  +
                  +function detectFormFactor() {
                  +  var device = DESKTOP;
                  +  if (hasTouch()) {
                  +    device = isSmall() ? PHONE : TABLET;
                  +  }
                  +  return device;
                  +}
                  +
                  + +--- + +title: Centered content +content_class: flexbox vcenter + +This content should be centered! diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/serve.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/serve.sh Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Starts a basic web server on the port specified. +# +# ./serve.sh 3000 -> http://localhost:3000 +# +# Copyright 2012 Eric Bidelman + +port=$1 +if [ $# -ne 1 ] +then + port=8000 +fi + +if [ $(uname -s) == "Darwin" ] +then + open=open +else + open=xdg-open +fi + +$open http://localhost:$port/template.html && python -m SimpleHTTPServer $port; diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/slide_config.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/slide_config.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,36 @@ +var SLIDE_CONFIG = { + // Slide settings + settings: { + title: 'Blade Server 11 の環境構築', + //subtitle: 'Subtitle Goes Here', + useBuilds: true, // Default: true. False will turn off slide animation builds. + usePrettify: true, // Default: true + enableSlideAreas: true, // Default: true. False turns off the click areas on either slide of the slides. + enableTouch: true, // Default: true. If touch support should enabled. Note: the device must support touch. + //analytics: 'UA-XXXXXXXX-1', // TODO: Using this breaks GA for some reason (probably requirejs). Update your tracking code in template.html instead. + favIcon: 'images/google_developers_logo_tiny.png', + fonts: [ + 'Open Sans:regular,semibold,italic,italicsemibold', + 'Source Code Pro' + ], + //theme: ['mytheme'], // Add your own custom themes or styles in /theme/css. Leave off the .css extension. + }, + + // Author information + presenters: [{ + name: 'Taiki Taira', +// company: 'Job Title, Google', + gplus: '', + twitter: '', + www: '', + github: '' + }/*, { + name: 'Second Name', + company: 'Job Title, Google', + gplus: 'http://plus.google.com/1234567890', + twitter: '@yourhandle', + www: 'http://www.you.com', + github: 'http://github.com/you' + }*/] +}; + diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/template.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/template.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,416 @@ + + + + + Google IO 2012 + + + + + + + + + + + + + + + + + +
                  + +
                  +
                  + + + + +
                  +

                  +

                  +

                  +
                  +
                  + + +
                  +

                  Slide with Bullets TOMATO

                  +
                  +
                  +
                    +
                  • Titles are formatted as Open Sans with bold applied and font size is set at 45
                  • +
                  • Title capitalization is title case +
                      +
                    • Subtitle capitalization is title case
                    • +
                    +
                  • +
                  • Subtitle capitalization is title case
                  • +
                  • Titles and subtitles should never have a period at the end
                  • +
                  +
                  +
                  + + +
                  +

                  Slide with Bullets that Build

                  +

                  Subtitle Placeholder

                  +
                  +
                  +

                  A list where items build:

                  +
                    +
                  • Pressing 'h' highlights code snippets
                  • +
                  • Pressing 'p' toggles speaker notes (if they're on the current slide)
                  • +
                  • Pressing 'f' toggles fullscreen viewing
                  • +
                  • Pressing 'w' toggles widescreen
                  • +
                  • Pressing 'o' toggles overview mode
                  • +
                  • Pressing 'ESC' toggles off these goodies
                  • +
                  +

                  Another list, but items fade as they build:

                  +
                    +
                  • Hover over me!
                  • +
                  • Hover over me!
                  • +
                  • Hover over me!
                  • +
                  +
                  +
                  + + +
                  +

                  Slide with (Smaller Font)

                  +
                  +
                  +
                    +
                  • All links open in new tabs.
                  • +
                  • To change that this, add target="_self" to the link.
                  • +
                  +
                  +
                  + + + + +
                  +

                  Code Slide (with Subtitle Placeholder)

                  +

                  Subtitle Placeholder

                  +
                  +
                  +

                  Press 'h' to highlight important sections of code (wrapped in <b>).

                  +
                  +<script type='text/javascript'>
                  +  // Say hello world until the user starts questioning
                  +  // the meaningfulness of their existence.
                  +  function helloWorld(world) {
                  +    for (var i = 42; --i >= 0;) {
                  +      alert('Hello ' + String(world));
                  +    }
                  +  }
                  +</script>
                  +
                  +
                  +
                  + + +
                  +

                  Code Slide (Smaller Font)

                  +
                  +
                  +
                  +// Say hello world until the user starts questioning
                  +// the meaningfulness of their existence.
                  +function helloWorld(world) {
                  +  for (var i = 42; --i >= 0;) {
                  +    alert('Hello ' + String(world));
                  +  }
                  +}
                  +
                  +
                  +<style>
                  +  p { color: pink }
                  +  b { color: blue }
                  +</style>
                  +
                  +
                  +<!DOCTYPE html>
                  +<html>
                  +<head>
                  +  <title>My Awesome Page</title>
                  +</head>
                  +<body>
                  +  <p>Hello world</p>
                  +<body>
                  +</html>
                  +
                  +
                  +
                  + + + +
                  +

                  Slide with Speaker Notes

                  +
                  +
                  +

                  Press 'p' to toggle speaker notes.

                  +
                  +
                  + + + +
                  +

                  Presenter Mode

                  +
                  +
                  +

                  Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                  +

                  Hit ?presentme=false to disable presenter mode.

                  +
                  +
                  + + +
                  +

                  Slide with Image

                  +
                  +
                  + Description +
                  source: place source info here
                  +
                  +
                  + + +
                  +

                  Slide with Image (Centered horz/vert)

                  +
                  +
                  + Description +
                  source: place source info here
                  +
                  +
                  + + +
                  +

                  Table Option A

                  +

                  Subtitle Placeholder

                  +
                  +
                  + + + + + + + + + + + + + + + + + + + +
                  Column 1Column 2Column 3Column 4
                  Row 1placeholderplaceholderplaceholderplaceholder
                  Row 2placeholderplaceholderplaceholderplaceholder
                  Row 3placeholderplaceholderplaceholderplaceholder
                  Row 4placeholderplaceholderplaceholderplaceholder
                  Row 5placeholderplaceholderplaceholderplaceholder
                  +
                  +
                  + + +
                  +

                  Table Option A (Smaller Text)

                  +

                  Subtitle Placeholder

                  +
                  +
                  + + + + + + + + + + + + + + + + + + + +
                  Column 1Column 2Column 3Column 4
                  Row 1placeholderplaceholderplaceholderplaceholder
                  Row 2placeholderplaceholderplaceholderplaceholder
                  Row 3placeholderplaceholderplaceholderplaceholder
                  Row 4placeholderplaceholderplaceholderplaceholder
                  Row 5placeholderplaceholderplaceholderplaceholder
                  +
                  +
                  + + +
                  +

                  Table Option B

                  +

                  Subtitle Placeholder

                  +
                  +
                  + + + + + + + + + + + + + + + + +
                  Header 1placeholderplaceholderplaceholder
                  Header 2placeholderplaceholderplaceholder
                  Header 3placeholderplaceholderplaceholder
                  Header 4placeholderplaceholderplaceholder
                  Header 5placeholderplaceholderplaceholder
                  +
                  +
                  + + +
                  +

                  Slide Styles

                  +
                  +
                  +
                  +
                    +
                  • class="red"
                  • +
                  • class="red2"
                  • +
                  • class="red3"
                  • +
                  • class="blue"
                  • +
                  • class="blue2"
                  • +
                  • class="blue3"
                  • +
                  • class="green"
                  • +
                  • class="green2"
                  • +
                  +
                    +
                  • class="green3"
                  • +
                  • class="yellow"
                  • +
                  • class="yellow2"
                  • +
                  • class="yellow3"
                  • +
                  • class="gray"
                  • +
                  • class="gray2"
                  • +
                  • class="gray3"
                  • +
                  • class="gray4"
                  • +
                  +
                  +
                  + I am centered text with a and button. +
                  +
                  +
                  + + + +
                  +

                  Segue Slide

                  +

                  Subtitle Placeholder

                  +
                  +
                  + + +
                  +

                  Full Image (with Optional Header)

                  +
                  +
                  www.flickr.com/photos/25797459@N06/5438799763/
                  +
                  + + + +
                  + + This is an example of quote text. + +
                  + Name
                  + Company +
                  +
                  +
                  + + +
                  +

                  Slide with Iframe

                  +
                  +
                  + +
                  +
                  + + +
                  + +
                  +
                  + + + +
                  +

                  <Thank You!>

                  +

                  Important contact information goes here.

                  +
                  +

                  + +

                  +
                  + + +
                  + +
                  +
                  + + + +
                  + + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/theme/css/default.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/theme/css/default.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1498 @@ +/* line 17, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +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; +} + +/* line 20, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +body { + line-height: 1; +} + +/* line 22, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 24, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 26, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 28, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 101, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 30, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 114, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { + display: block; +} + +/** + * Base SlideDeck Styles + */ +/* line 48, ../scss/_base.scss */ +html { + height: 100%; + overflow: hidden; +} + +/* line 53, ../scss/_base.scss */ +body { + margin: 0; + padding: 0; + opacity: 0; + height: 100%; + min-height: 740px; + width: 100%; + overflow: hidden; + color: #fff; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} +/* line 69, ../scss/_base.scss */ +body.loaded { + opacity: 1 !important; +} + +/* line 74, ../scss/_base.scss */ +input, button { + vertical-align: middle; +} + +/* line 78, ../scss/_base.scss */ +slides > slide[hidden] { + display: none !important; +} + +/* line 82, ../scss/_base.scss */ +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-perspective: 1000; + perspective: 1000; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} + +/* line 94, ../scss/_base.scss */ +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Slide styles */ +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ +/** + * Theme Styles + */ +/* line 58, ../scss/default.scss */ +::selection { + color: white; + background-color: #ffd14d; + text-shadow: none; +} + +/* line 64, ../scss/default.scss */ +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} + +/* line 69, ../scss/default.scss */ +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + border-width: 1px 1px 1px 6px; +} + +/* line 78, ../scss/default.scss */ +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} + +/* line 81, ../scss/default.scss */ +::-webkit-scrollbar-button { + height: 0; + width: 0; +} + +/* line 85, ../scss/default.scss */ +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} + +/* line 90, ../scss/default.scss */ +::-webkit-scrollbar-corner { + background: transparent; +} + +/* line 94, ../scss/default.scss */ +body { + background: black; +} + +/* line 98, ../scss/default.scss */ +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: #797979; + width: 900px; + height: 700px; + margin-left: -450px; + margin-top: -350px; + padding: 40px 60px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} +/* line 119, ../scss/default.scss */ +slides > slide.far-past { + display: none; +} +/* line 126, ../scss/default.scss */ +slides > slide.past { + display: block; + opacity: 0; +} +/* line 133, ../scss/default.scss */ +slides > slide.current { + display: block; + opacity: 1; +} +/* line 139, ../scss/default.scss */ +slides > slide.current .auto-fadein { + opacity: 1; +} +/* line 143, ../scss/default.scss */ +slides > slide.current .gdbar { + -webkit-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -o-background-size: 100% 100%; + background-size: 100% 100%; +} +/* line 148, ../scss/default.scss */ +slides > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 156, ../scss/default.scss */ +slides > slide.far-next { + display: none; +} +/* line 163, ../scss/default.scss */ +slides > slide.dark { + background: #515151 !important; +} +/* line 171, ../scss/default.scss */ +slides > slide:not(.nobackground):before { + font-size: 12pt; + content: "#yourhashtag"; + position: absolute; + bottom: 20px; + left: 60px; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + -webkit-background-size: 30px 30px; + -moz-background-size: 30px 30px; + -o-background-size: 30px 30px; + background-size: 30px 30px; + padding-left: 40px; + height: 30px; + line-height: 1.9; +} +/* line 183, ../scss/default.scss */ +slides > slide:not(.nobackground):after { + font-size: 12pt; + content: attr(data-slide-num) "/" attr(data-total-slides); + position: absolute; + bottom: 20px; + right: 60px; + line-height: 1.9; +} +/* line 194, ../scss/default.scss */ +slides > slide.title-slide:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + -webkit-background-size: contain; + -moz-background-size: contain; + -o-background-size: contain; + background-size: contain; + position: absolute; + bottom: 40px; + right: 40px; + width: 100%; + height: 60px; +} +/* line 206, ../scss/default.scss */ +slides > slide.backdrop { + z-index: -10; + display: block !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 211, ../scss/default.scss */ +slides > slide.backdrop:after, slides > slide.backdrop:before { + display: none; +} +/* line 216, ../scss/default.scss */ +slides > slide > hgroup + article { + margin-top: 45px; +} +/* line 220, ../scss/default.scss */ +slides > slide > hgroup + article.flexbox.vcenter, slides > slide > hgroup + article.flexbox.vleft, slides > slide > hgroup + article.flexbox.vright { + height: 80%; +} +/* line 225, ../scss/default.scss */ +slides > slide > hgroup + article p { + margin-bottom: 1em; +} +/* line 230, ../scss/default.scss */ +slides > slide > article:only-child { + height: 100%; +} +/* line 233, ../scss/default.scss */ +slides > slide > article:only-child > iframe { + height: 98%; +} + +/* line 239, ../scss/default.scss */ +slides.layout-faux-widescreen > slide { + padding: 40px 160px; +} + +/* line 248, ../scss/default.scss */ +slides.layout-widescreen > slide, +slides.layout-faux-widescreen > slide { + margin-left: -550px; + width: 1100px; +} +/* line 253, ../scss/default.scss */ +slides.layout-widescreen > slide.far-past, +slides.layout-faux-widescreen > slide.far-past { + display: block; + display: none; + -webkit-transform: translate(-2260px); + -moz-transform: translate(-2260px); + -ms-transform: translate(-2260px); + -o-transform: translate(-2260px); + transform: translate(-2260px); + -webkit-transform: translate3d(-2260px, 0, 0); + -moz-transform: translate3d(-2260px, 0, 0); + -ms-transform: translate3d(-2260px, 0, 0); + -o-transform: translate3d(-2260px, 0, 0); + transform: translate3d(-2260px, 0, 0); +} +/* line 260, ../scss/default.scss */ +slides.layout-widescreen > slide.past, +slides.layout-faux-widescreen > slide.past { + display: block; + opacity: 0; +} +/* line 267, ../scss/default.scss */ +slides.layout-widescreen > slide.current, +slides.layout-faux-widescreen > slide.current { + display: block; + opacity: 1; +} +/* line 274, ../scss/default.scss */ +slides.layout-widescreen > slide.next, +slides.layout-faux-widescreen > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 282, ../scss/default.scss */ +slides.layout-widescreen > slide.far-next, +slides.layout-faux-widescreen > slide.far-next { + display: block; + display: none; + -webkit-transform: translate(2260px); + -moz-transform: translate(2260px); + -ms-transform: translate(2260px); + -o-transform: translate(2260px); + transform: translate(2260px); + -webkit-transform: translate3d(2260px, 0, 0); + -moz-transform: translate3d(2260px, 0, 0); + -ms-transform: translate3d(2260px, 0, 0); + -o-transform: translate3d(2260px, 0, 0); + transform: translate3d(2260px, 0, 0); +} +/* line 289, ../scss/default.scss */ +slides.layout-widescreen #prev-slide-area, +slides.layout-faux-widescreen #prev-slide-area { + margin-left: -650px; +} +/* line 293, ../scss/default.scss */ +slides.layout-widescreen #next-slide-area, +slides.layout-faux-widescreen #next-slide-area { + margin-left: 550px; +} + +/* line 298, ../scss/default.scss */ +b { + font-weight: 600; +} + +/* line 302, ../scss/default.scss */ +a { + color: #2a7cdf; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); +} +/* line 307, ../scss/default.scss */ +a:hover { + color: black !important; +} + +/* line 312, ../scss/default.scss */ +h1, h2, h3 { + font-weight: 600; +} + +/* line 316, ../scss/default.scss */ +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: #515151; +} + +/* line 323, ../scss/default.scss */ +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: #797979; +} + +/* line 331, ../scss/default.scss */ +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; +} +/* line 336, ../scss/default.scss */ +ul li { + margin-bottom: 0.5em; +} +/* line 339, ../scss/default.scss */ +ul li ul { + margin-left: 2em; + margin-bottom: 0; +} +/* line 343, ../scss/default.scss */ +ul li ul li:before { + content: '-'; + font-weight: 600; +} +/* line 350, ../scss/default.scss */ +ul > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; +} +/* line 357, ../scss/default.scss */ +ul ul { + margin-top: .5em; +} + +/* line 364, ../scss/default.scss */ +.highlight-code slide.current pre > * { + opacity: 0.25; + -webkit-transition: opacity 0.5s ease-in; + -moz-transition: opacity 0.5s ease-in; + -ms-transition: opacity 0.5s ease-in; + -o-transition: opacity 0.5s ease-in; + transition: opacity 0.5s ease-in; +} +/* line 368, ../scss/default.scss */ +.highlight-code slide.current b { + opacity: 1; +} + +/* line 373, ../scss/default.scss */ +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px 60px; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: #e6e6e6; + left: -60px; + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + /*overflow: hidden;*/ +} +/* line 387, ../scss/default.scss */ +pre[data-lang]:after { + content: attr(data-lang); + background-color: #a9a9a9; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; +} + +/* line 400, ../scss/default.scss */ +pre[data-lang="go"] { + color: #333; +} + +/* line 404, ../scss/default.scss */ +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +/* line 410, ../scss/default.scss */ +iframe { + width: 100%; + height: 530px; + background: white; + border: 1px solid #e6e6e6; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 418, ../scss/default.scss */ +dt { + font-weight: bold; +} + +/* line 422, ../scss/default.scss */ +button { + display: inline-block; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #f9f9f9), color-stop(70%, #e3e3e3)); + background: -webkit-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -moz-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -o-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -ms-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + border: 1px solid #a9a9a9; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + padding: 5px 8px; + outline: none; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + cursor: pointer; + text-shadow: 1px 1px white; + font-size: 10pt; +} + +/* line 436, ../scss/default.scss */ +button:not(:disabled):hover { + border-color: #515151; +} + +/* line 440, ../scss/default.scss */ +button:not(:disabled):active { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #e3e3e3), color-stop(70%, #f9f9f9)); + background: -webkit-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -moz-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -o-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -ms-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: linear-gradient(#e3e3e3 40%, #f9f9f9 70%); +} + +/* line 444, ../scss/default.scss */ +:disabled { + color: #a9a9a9; +} + +/* line 448, ../scss/default.scss */ +.blue { + color: #4387fd; +} + +/* line 451, ../scss/default.scss */ +.blue2 { + color: #3c8ef3; +} + +/* line 454, ../scss/default.scss */ +.blue3 { + color: #2a7cdf; +} + +/* line 457, ../scss/default.scss */ +.yellow { + color: #ffd14d; +} + +/* line 460, ../scss/default.scss */ +.yellow2 { + color: #f9cc46; +} + +/* line 463, ../scss/default.scss */ +.yellow3 { + color: #f6c000; +} + +/* line 466, ../scss/default.scss */ +.green { + color: #0da861; +} + +/* line 469, ../scss/default.scss */ +.green2 { + color: #00a86d; +} + +/* line 472, ../scss/default.scss */ +.green3 { + color: #009f5d; +} + +/* line 475, ../scss/default.scss */ +.red { + color: #f44a3f; +} + +/* line 478, ../scss/default.scss */ +.red2 { + color: #e0543e; +} + +/* line 481, ../scss/default.scss */ +.red3 { + color: #d94d3a; +} + +/* line 484, ../scss/default.scss */ +.gray { + color: #e6e6e6; +} + +/* line 487, ../scss/default.scss */ +.gray2 { + color: #a9a9a9; +} + +/* line 490, ../scss/default.scss */ +.gray3 { + color: #797979; +} + +/* line 493, ../scss/default.scss */ +.gray4 { + color: #515151; +} + +/* line 497, ../scss/default.scss */ +.white { + color: white !important; +} + +/* line 500, ../scss/default.scss */ +.black { + color: black !important; +} + +/* line 504, ../scss/default.scss */ +.columns-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + -o-column-count: 2; + column-count: 2; +} + +/* line 508, ../scss/default.scss */ +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid #797979; +} +/* line 515, ../scss/default.scss */ +table tr > td:first-child, table th { + font-weight: 600; + color: #515151; +} +/* line 520, ../scss/default.scss */ +table tr:nth-child(odd) { + background-color: #e6e6e6; +} +/* line 524, ../scss/default.scss */ +table th { + color: white; + font-size: 18px; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #4387fd), color-stop(80%, #2a7cdf)) no-repeat; + background: -webkit-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -moz-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -o-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -ms-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; +} +/* line 530, ../scss/default.scss */ +table td, table th { + font-size: 18px; + padding: 1em 0.5em; +} +/* line 535, ../scss/default.scss */ +table td.highlight { + color: #515151; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #ffd14d), color-stop(80%, #f6c000)) no-repeat; + background: -webkit-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -moz-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -o-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -ms-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; +} +/* line 540, ../scss/default.scss */ +table.rows { + border-bottom: none; + border-right: 1px solid #797979; +} + +/* line 546, ../scss/default.scss */ +q { + font-size: 45px; + line-height: 72px; +} +/* line 550, ../scss/default.scss */ +q:before { + content: '“'; + position: absolute; + margin-left: -0.5em; +} +/* line 555, ../scss/default.scss */ +q:after { + content: '”'; + position: absolute; + margin-left: 0.1em; +} + +/* line 562, ../scss/default.scss */ +slide.fill { + background-repeat: no-repeat; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +/* Size variants */ +/* line 571, ../scss/default.scss */ +article.smaller p, article.smaller ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; +} +/* line 577, ../scss/default.scss */ +article.smaller table td, article.smaller table th { + font-size: 14px; +} +/* line 581, ../scss/default.scss */ +article.smaller pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; +} +/* line 586, ../scss/default.scss */ +article.smaller q { + font-size: 40px; + line-height: 48px; +} +/* line 590, ../scss/default.scss */ +article.smaller q:before, article.smaller q:after { + font-size: 60px; +} + +/* Builds */ +/* line 599, ../scss/default.scss */ +.build > * { + -webkit-transition: opacity 0.5s ease-in-out 0.2s; + -moz-transition: opacity 0.5s ease-in-out 0.2s; + -ms-transition: opacity 0.5s ease-in-out 0.2s; + -o-transition: opacity 0.5s ease-in-out 0.2s; + transition: opacity 0.5s ease-in-out 0.2s; +} +/* line 603, ../scss/default.scss */ +.build .to-build { + opacity: 0; +} +/* line 607, ../scss/default.scss */ +.build .build-fade { + opacity: 0.3; +} +/* line 610, ../scss/default.scss */ +.build .build-fade:hover { + opacity: 1.0; +} + +/* line 617, ../scss/default.scss */ +.popup .next .build .to-build { + opacity: 1; +} +/* line 621, ../scss/default.scss */ +.popup .next .build .build-fade { + opacity: 1; +} + +/* Pretty print */ +/* line 629, ../scss/default.scss */ +.prettyprint .str, +.prettyprint .atv { + /* a markup attribute value */ + color: #009f5d; +} + +/* line 633, ../scss/default.scss */ +.prettyprint .kwd, +.prettyprint .tag { + /* a markup tag name */ + color: #0066cc; +} + +/* line 636, ../scss/default.scss */ +.prettyprint .com { + /* a comment */ + color: #797979; + font-style: italic; +} + +/* line 640, ../scss/default.scss */ +.prettyprint .lit { + /* a literal value */ + color: #7f0000; +} + +/* line 645, ../scss/default.scss */ +.prettyprint .pun, +.prettyprint .opn, +.prettyprint .clo { + color: #515151; +} + +/* line 651, ../scss/default.scss */ +.prettyprint .typ, +.prettyprint .atn, +.prettyprint .dec, +.prettyprint .var { + /* a declaration; a variable name */ + color: #d94d3a; +} + +/* line 654, ../scss/default.scss */ +.prettyprint .pln { + color: #515151; +} + +/* line 658, ../scss/default.scss */ +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transform: translateY(350px); + -moz-transform: translateY(350px); + -ms-transform: translateY(350px); + -o-transform: translateY(350px); + transform: translateY(350px); + -webkit-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; +} +/* line 676, ../scss/default.scss */ +.note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + width: 60%; + padding: 2em; +} + +/* line 693, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide.next, +.with-notes.popup slides.layout-faux-widescreen slide.next { + -webkit-transform: translate3d(690px, 80px, 0) scale(0.35); + -moz-transform: translate3d(690px, 80px, 0) scale(0.35); + -ms-transform: translate3d(690px, 80px, 0) scale(0.35); + -o-transform: translate3d(690px, 80px, 0) scale(0.35); + transform: translate3d(690px, 80px, 0) scale(0.35); +} +/* line 696, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide .note, +.with-notes.popup slides.layout-faux-widescreen slide .note { + -webkit-transform: translate3d(300px, 800px, 0) scale(1.5); + -moz-transform: translate3d(300px, 800px, 0) scale(1.5); + -ms-transform: translate3d(300px, 800px, 0) scale(1.5); + -o-transform: translate3d(300px, 800px, 0) scale(1.5); + transform: translate3d(300px, 800px, 0) scale(1.5); +} +/* line 702, ../scss/default.scss */ +.with-notes.popup slide { + overflow: visible; + background: white; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + pointer-events: none; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + -o-transform-origin: 0 0; + transform-origin: 0 0; +} +/* line 709, ../scss/default.scss */ +.with-notes.popup slide:not(.backdrop) { + -webkit-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -moz-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -ms-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -o-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; +} +/* line 714, ../scss/default.scss */ +.with-notes.popup slide.backdrop { + background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 600, color-stop(0%, #b1dfff), color-stop(100%, #4387fd)); + background-image: -webkit-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -moz-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -o-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -ms-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); +} +/* line 720, ../scss/default.scss */ +.with-notes.popup slide.next { + -webkit-transform: translate3d(570px, 80px, 0) scale(0.35); + -moz-transform: translate3d(570px, 80px, 0) scale(0.35); + -ms-transform: translate3d(570px, 80px, 0) scale(0.35); + -o-transform: translate3d(570px, 80px, 0) scale(0.35); + transform: translate3d(570px, 80px, 0) scale(0.35); + opacity: 1 !important; +} +/* line 724, ../scss/default.scss */ +.with-notes.popup slide.next .note { + display: none !important; +} +/* line 730, ../scss/default.scss */ +.with-notes.popup .note { + width: 109%; + height: 260px; + background: #e6e6e6; + padding: 0; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + -webkit-transform: translate3d(250px, 800px, 0) scale(1.5); + -moz-transform: translate3d(250px, 800px, 0) scale(1.5); + -ms-transform: translate3d(250px, 800px, 0) scale(1.5); + -o-transform: translate3d(250px, 800px, 0) scale(1.5); + transform: translate3d(250px, 800px, 0) scale(1.5); + -webkit-transition: opacity 400ms ease-in-out; + -moz-transition: opacity 400ms ease-in-out; + -ms-transition: opacity 400ms ease-in-out; + -o-transition: opacity 400ms ease-in-out; + transition: opacity 400ms ease-in-out; +} +/* line 741, ../scss/default.scss */ +.with-notes.popup .note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + height: 100%; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + overflow: auto; + padding: 1em; +} +/* line 754, ../scss/default.scss */ +.with-notes .note { + opacity: 1; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); + pointer-events: auto; +} + +/* line 761, ../scss/default.scss */ +.source { + font-size: 14px; + color: #a9a9a9; + position: absolute; + bottom: 70px; + left: 60px; +} + +/* line 769, ../scss/default.scss */ +.centered { + text-align: center; +} + +/* line 773, ../scss/default.scss */ +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255, 255, 255, 0) 85%, #ffffff 150%); +} + +/* line 781, ../scss/default.scss */ +.flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +/* line 785, ../scss/default.scss */ +.flexbox.vcenter { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 791, ../scss/default.scss */ +.flexbox.vleft { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: left; + -moz-box-align: left; + -ms-box-align: left; + box-align: left; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 797, ../scss/default.scss */ +.flexbox.vright { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: end; + -moz-box-align: end; + -ms-box-align: end; + box-align: end; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 803, ../scss/default.scss */ +.auto-fadein { + -webkit-transition: opacity 0.6s ease-in 1s; + -moz-transition: opacity 0.6s ease-in 1s; + -ms-transition: opacity 0.6s ease-in 1s; + -o-transition: opacity 0.6s ease-in 1s; + transition: opacity 0.6s ease-in 1s; + opacity: 0; +} + +/* Clickable/tappable areas */ +/* line 809, ../scss/default.scss */ +.slide-area { + z-index: 1000; + position: absolute; + left: 0; + top: 0; + width: 100px; + height: 700px; + left: 50%; + top: 50%; + cursor: pointer; + margin-top: -350px; +} + +/* line 826, ../scss/default.scss */ +#prev-slide-area { + margin-left: -550px; +} + +/* line 831, ../scss/default.scss */ +#next-slide-area { + margin-left: 450px; +} + +/* ===== SLIDE CONTENT ===== */ +/* line 839, ../scss/default.scss */ +.logoslide img { + width: 383px; + height: 92px; +} + +/* line 845, ../scss/default.scss */ +.segue { + padding: 60px 120px; +} +/* line 848, ../scss/default.scss */ +.segue h2 { + color: #e6e6e6; + font-size: 60px; +} +/* line 852, ../scss/default.scss */ +.segue h3 { + color: #e6e6e6; + line-height: 2.8; +} +/* line 856, ../scss/default.scss */ +.segue hgroup { + position: absolute; + bottom: 225px; +} + +/* line 862, ../scss/default.scss */ +.thank-you-slide { + background: #4387fd !important; + color: white; +} +/* line 866, ../scss/default.scss */ +.thank-you-slide h2 { + font-size: 60px; + color: inherit; +} +/* line 871, ../scss/default.scss */ +.thank-you-slide article > p { + margin-top: 2em; + font-size: 20pt; +} +/* line 876, ../scss/default.scss */ +.thank-you-slide > p { + position: absolute; + bottom: 80px; + font-size: 24pt; + line-height: 1.3; +} + +/* line 884, ../scss/default.scss */ +aside.gdbar { + height: 97px; + width: 215px; + position: absolute; + left: -1px; + top: 125px; + -webkit-border-radius: 0 10px 10px 0; + -moz-border-radius: 0 10px 10px 0; + -ms-border-radius: 0 10px 10px 0; + -o-border-radius: 0 10px 10px 0; + border-radius: 0 10px 10px 0; + background: -webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e6e6e6), color-stop(100%, #e6e6e6)) no-repeat; + background: -webkit-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -moz-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -o-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -ms-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + -webkit-background-size: 0% 100%; + -moz-background-size: 0% 100%; + -o-background-size: 0% 100%; + background-size: 0% 100%; + -webkit-transition: all 0.5s ease-out 0.5s; + -moz-transition: all 0.5s ease-out 0.5s; + -ms-transition: all 0.5s ease-out 0.5s; + -o-transition: all 0.5s ease-out 0.5s; + transition: all 0.5s ease-out 0.5s; + /* Better to transition only on background-size, but not sure how to do that with the mixin. */ +} +/* line 895, ../scss/default.scss */ +aside.gdbar.right { + right: 0; + left: -moz-initial; + left: initial; + top: 254px; + /* 96 is height of gray icon bar */ + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 902, ../scss/default.scss */ +aside.gdbar.right img { + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 907, ../scss/default.scss */ +aside.gdbar.bottom { + top: -moz-initial; + top: initial; + bottom: 60px; +} +/* line 913, ../scss/default.scss */ +aside.gdbar img { + width: 85px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; +} + +/* line 924, ../scss/default.scss */ +.title-slide hgroup { + bottom: 100px; +} +/* line 927, ../scss/default.scss */ +.title-slide hgroup h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: #515151; +} +/* line 934, ../scss/default.scss */ +.title-slide hgroup h2 { + font-size: 34px; + color: #a9a9a9; + font-weight: inherit; +} +/* line 940, ../scss/default.scss */ +.title-slide hgroup p { + font-size: 20px; + color: #797979; + line-height: 1.3; + margin-top: 2em; +} + +/* line 949, ../scss/default.scss */ +.quote { + color: #e6e6e6; +} +/* line 952, ../scss/default.scss */ +.quote .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; +} + +/* line 961, ../scss/default.scss */ +[data-config-contact] a { + color: white; + border-bottom: none; +} +/* line 965, ../scss/default.scss */ +[data-config-contact] span { + width: 115px; + display: inline-block; +} + +/* line 974, ../scss/default.scss */ +.overview.popup .note { + display: none !important; +} +/* line 980, ../scss/default.scss */ +.overview slides slide { + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 981, ../scss/default.scss */ +.overview slides slide.backdrop { + display: none !important; +} +/* line 996, ../scss/default.scss */ +.overview slides slide.far-past, .overview slides slide.past, .overview slides slide.next, .overview slides slide.far-next, .overview slides slide.far-past { + opacity: 0.5; + display: block; +} +/* line 1001, ../scss/default.scss */ +.overview slides slide.current { + opacity: 1; +} +/* line 1007, ../scss/default.scss */ +.overview .slide-area { + display: none; +} + +@media print { + /* line 1014, ../scss/default.scss */ + slides slide { + display: block !important; + position: relative; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + -o-transform: none !important; + transform: none !important; + width: 100%; + height: 100%; + page-break-after: always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + } + /* line 1034, ../scss/default.scss */ + slides slide.far-past, slides slide.past, slides slide.next, slides slide.far-next, slides slide.far-past, slides slide.current { + opacity: 1 !important; + display: block !important; + } + /* line 1040, ../scss/default.scss */ + slides slide .build > * { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + } + /* line 1045, ../scss/default.scss */ + slides slide .build .to-build, + slides slide .build .build-fade { + opacity: 1; + } + /* line 1050, ../scss/default.scss */ + slides slide .auto-fadein { + opacity: 1 !important; + } + /* line 1054, ../scss/default.scss */ + slides slide.backdrop { + display: none !important; + } + /* line 1058, ../scss/default.scss */ + slides slide table.rows { + border-right: 0; + } + /* line 1063, ../scss/default.scss */ + slides slide[hidden] { + display: none !important; + } + + /* line 1068, ../scss/default.scss */ + .slide-area { + display: none; + } + + /* line 1072, ../scss/default.scss */ + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + /* line 1080, ../scss/default.scss */ + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/theme/css/phone.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/theme/css/phone.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,27 @@ +/*Smartphones (portrait and landscape) ----------- */ +/*@media only screen +and (min-width : 320px) +and (max-width : 480px) { + +}*/ +/* Smartphones (portrait) ----------- */ +/* Styles */ +/* line 17, ../scss/phone.scss */ +slides > slide { + /* width: $slide-width !important; + height: $slide-height !important; + margin-left: -$slide-width / 2 !important; + margin-top: -$slide-height / 2 !important; + */ + -webkit-transition: none !important; + -webkit-transition: none !important; + -moz-transition: none !important; + -ms-transition: none !important; + -o-transition: none !important; + transition: none !important; +} + +/* iPhone 4 ----------- */ +@media only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5) { + /* Styles */ +} diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/theme/scss/_base.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/theme/scss/_base.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,135 @@ +@import "compass/reset"; +@import "compass/css3/border-radius"; +@import "compass/css3/box"; +@import "compass/css3/box-shadow"; +@import "compass/css3/box-sizing"; +@import "compass/css3/images"; +@import "compass/css3/text-shadow"; +@import "compass/css3/background-size"; +@import "compass/css3/transform"; +@import "compass/css3/transition"; + +@mixin font-smoothing($val: antialiased) { + -webkit-font-smoothing: $val; + -moz-font-smoothing: $val; + -ms-font-smoothing: $val; + -o-font-smoothing: $val; +} + +@mixin flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +@mixin flex-center-center { + @include box-orient(vertical); + @include box-align(center); + @include box-pack(center); +} + +@mixin flex-left-center { + @include box-orient(vertical); + @include box-align(left); + @include box-pack(center); +} + +@mixin flex-right-center { + @include box-orient(vertical); + @include box-align(end); + @include box-pack(center); +} + +/** + * Base SlideDeck Styles + */ +html { + height: 100%; + overflow: hidden; +} + +body { + margin: 0; + padding: 0; + + opacity: 0; + + height: 100%; + min-height: 740px; + width: 100%; + + overflow: hidden; + + color: #fff; + @include font-smoothing(antialiased); + @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank. + + &.loaded { + opacity: 1 !important; + } +} + +input, button { + vertical-align: middle; +} + +slides > slide[hidden] { + display: none !important; +} + +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + @include transform(translate3d(0, 0, 0)); + @include perspective(1000); + @include transform-style(preserve-3d); + @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank. +} + +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + @include box-sizing(border-box); +} + +/* Slide styles */ + + +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/theme/scss/default.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/theme/scss/default.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1083 @@ +@import "base"; +@import "compass/css3/columns"; +@import "compass/css3/user-interface"; + +$social-tags: '#yourhashtag'; +$brand-small-icon-size: 30px; + +$gray-1: #e6e6e6; +$gray-2: #a9a9a9; +$gray-3: #797979; +$gray-4: #515151; + +$brand-blue: rgb(67, 135, 253); +$brand-blue-secondary: #3c8ef3; +$brand-blue-secondary2: #2a7cdf; + +$brand-red: rgb(244, 74, 63); +$brand-red-secondary: #e0543e; +$brand-red-secondary2: #d94d3a; + +$brand-yellow: rgb(255, 209, 77); +$brand-yellow-secondary: #f9cc46; +$brand-yellow-secondary2: #f6c000; + +$brand-green: rgb(13, 168, 97); +$brand-green-secondary: #00a86d; +$brand-green-secondary2: #009f5d; + +$slide-width: 900px; +$slide-height: 700px; +$slide-width-widescreen: 1100px; +$slide-top-bottom-padding: 40px; +$slide-left-right-padding: 60px; +$slide-border-radius: 5px; + +$slide-tap-area-width: 100px; + +$article-content-top-padding: 45px; + +@mixin highlight-color($color: $brand-yellow) { + -webkit-tap-highlight-color: $color; + -moz-tap-highlight-color: $color; + -ms-tap-highlight-color: $color; + -o-tap-highlight-color: $color; + tap-highlight-color: $color; +} + +@mixin backdrop { + @include background(linear-gradient(white, white 85%, $gray-1)); + background-color: white; +} + + + +/** + * Theme Styles + */ +::selection { + color: white; + background-color: $brand-yellow; + @include text-shadow(none); +} + +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, .1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + @include box-shadow(inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)); + border-width: 1px 1px 1px 6px; +} +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} +::-webkit-scrollbar-button { + height: 0; + width: 0; +} +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} +::-webkit-scrollbar-corner { + background: transparent; +} + +body { + background: black; +} + +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: $gray-3; + //@include background(linear-gradient(white, white 85%, $gray-1)); + //background-color: white; + width: $slide-width; + height: $slide-height; + margin-left: -$slide-width / 2; + margin-top: -$slide-height / 2; + padding: $slide-top-bottom-padding $slide-left-right-padding; + + @include border-radius($slide-border-radius); + //@include box-shadow(5px 5px 20px $gray-4); + @include transition(all 0.6s ease-in-out); + + //$translateX: 1020px; + //$rotateY: 30deg; + //$rotateX: 45deg; + + &.far-past { + //display: block; + display: none; + //@include transform(translate(-$translateX * 2)); + //@include transform(translate3d(-$translateX * 2, 0, 0)); + } + + &.past { + display: block; + //@include transform(translate(-$translateX) rotateY($rotateY) rotateX($rotateX)); + //@include transform(translate3d(-$translateX, 0, 0) rotateY($rotateY) rotateX($rotateX)); + opacity: 0; + } + + &.current { + display: block; + //@include transform(translate(0)); + //@include transform(translate3d(0, 0, 0)); + opacity: 1; + + .auto-fadein { + opacity: 1; + } + + .gdbar { + @include background-size(100% 100%); + } + } + + &.next { + display: block; + //@include transform(translate($translateX) rotateY(-$rotateY) rotateX($rotateX)); + //@include transform(translate3d($translateX, 0, 0) rotateY(-$rotateY) rotateX($rotateX)); + opacity: 0; + pointer-events: none; + } + + &.far-next { + //display: block; + display: none; + //@include transform(translate($translateX * 2)); + //@include transform(translate3d($translateX * 2, 0, 0)); + } + + &.dark { + background: $gray-4 !important; + } + + &:not(.nobackground) { + //background: white url(../../images/google_developers_icon_128.png) ($brand-small-icon-size * 2) 98% no-repeat; + //@include background-size($brand-small-icon-size $brand-small-icon-size); + + &:before { + font-size: 12pt; + content: $social-tags; + position: absolute; + bottom: $slide-top-bottom-padding / 2; + left: $slide-left-right-padding; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + @include background-size($brand-small-icon-size $brand-small-icon-size); + padding-left: $brand-small-icon-size + 10; + height: $brand-small-icon-size; + line-height: 1.9; + } + &:after { + font-size: 12pt; + content: attr(data-slide-num) '/' attr(data-total-slides); + position: absolute; + bottom: $slide-top-bottom-padding / 2; + right: $slide-left-right-padding; + line-height: 1.9; + } + } + + &.title-slide { + &:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + @include background-size(contain); + position: absolute; + bottom: $slide-top-bottom-padding; + right: $slide-top-bottom-padding; + width: 100%; + height: 60px; + } + } + + &.backdrop { + z-index: -10; + display: block !important; + @include backdrop; + + &:after, &:before { + display: none; // Prevent double set of slide nums and footer icons. + } + } + + > hgroup + article { + margin-top: $article-content-top-padding; + + &.flexbox { + &.vcenter, &.vleft, &.vright { + height: 80%; + } + } + + p { + margin-bottom: 1em; + } + } + + > article:only-child { + height: 100%; + + > iframe { + height: 98%; + } + } +} + +slides.layout-faux-widescreen > slide { + padding: $slide-top-bottom-padding 160px; +} + +slides.layout-widescreen, +slides.layout-faux-widescreen { + + $translateX: 1130px; + + > slide { + margin-left: -$slide-width-widescreen / 2; + width: $slide-width-widescreen; + } + + > slide.far-past { + display: block; + display: none; + @include transform(translate(-$translateX * 2)); + @include transform(translate3d(-$translateX * 2, 0, 0)); + } + + > slide.past { + display: block; + //@include transform(translate(-$translateX)); + //@include transform(translate3d(-$translateX, 0, 0)); + opacity: 0; + } + + > slide.current { + display: block; + //@include transform(translate(0)); + //@include transform(translate3d(0, 0, 0)); + opacity: 1; + } + + > slide.next { + display: block; + //@include transform(translate($translateX)); + //@include transform(translate3d($translateX, 0, 0)); + opacity: 0; + pointer-events: none; + } + + > slide.far-next { + display: block; + display: none; + @include transform(translate($translateX * 2)); + @include transform(translate3d($translateX * 2, 0, 0)); + } + + #prev-slide-area { + margin-left: -$slide-width-widescreen / 2 - $slide-tap-area-width; + } + + #next-slide-area { + margin-left: $slide-width-widescreen / 2; + } +} + +b { + font-weight: 600; +} + +a { + color: $brand-blue-secondary2; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); + + &:hover { + color: black !important; + } +} + +h1, h2, h3 { + font-weight: 600; +} + +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: $gray-4; +} + +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: $gray-3; +} + +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; + + li { + margin-bottom: 0.5em; + + ul { + margin-left: 2em; + margin-bottom: 0; + + li:before { + content: '-'; + font-weight: 600; + } + } + } + + > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; + } + + ul { + margin-top: .5em; + } +} + +// Code highlighting only effects the current slide. +.highlight-code slide.current { + pre > * { + opacity: 0.25; + @include transition(opacity 0.5s ease-in); + } + b { + opacity: 1; + } +} + +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px $slide-left-right-padding; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: $gray-1; + left: -$slide-left-right-padding; + position: relative; + @include box-sizing(border-box); + /*overflow: hidden;*/ + + &[data-lang]:after { + content: attr(data-lang); + background-color: $gray-2; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; + } +} + +pre[data-lang="go"] { + color: #333; +} + +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +iframe { + width: 100%; + height: $slide-height - ($slide-top-bottom-padding * 2) - ($article-content-top-padding * 2); + background: white; + border: 1px solid $gray-1; + @include box-sizing(border-box); +} + +dt { + font-weight: bold; +} + +button { + display: inline-block; + @include background(linear-gradient(#F9F9F9 40%, #E3E3E3 70%)); + border: 1px solid $gray-2; + @include border-radius(3px); + padding: 5px 8px; + outline: none; + white-space: nowrap; + @include user-select(none); + cursor: pointer; + @include text-shadow(1px 1px #fff); + font-size: 10pt; +} + +button:not(:disabled):hover { + border-color: $gray-4; +} + +button:not(:disabled):active { + @include background(linear-gradient(#E3E3E3 40%, #F9F9F9 70%)); +} + +:disabled { + color: $gray-2; +} + +.blue { + color: $brand-blue; +} +.blue2 { + color: $brand-blue-secondary; +} +.blue3 { + color: $brand-blue-secondary2; +} +.yellow { + color: $brand-yellow; +} +.yellow2 { + color: $brand-yellow-secondary; +} +.yellow3 { + color: $brand-yellow-secondary2; +} +.green { + color: $brand-green; +} +.green2 { + color: $brand-green-secondary; +} +.green3 { + color: $brand-green-secondary2; +} +.red { + color: $brand-red; +} +.red2 { + color: $brand-red-secondary; +} +.red3 { + color: $brand-red-secondary2; +} +.gray { + color: $gray-1; +} +.gray2 { + color: $gray-2; +} +.gray3 { + color: $gray-3; +} +.gray4 { + color: $gray-4; +} + +.white { + color: white !important; +} +.black { + color: black !important; +} + +.columns-2 { + @include column-count(2); +} + +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid $gray-3; + + tr > td:first-child, th { + font-weight: 600; + color: $gray-4; + } + + tr:nth-child(odd) { + background-color: $gray-1; + } + + th { + color: white; + font-size: 18px; + @include background(linear-gradient(top, $brand-blue 40%, $brand-blue-secondary2 80%) no-repeat); + } + + td, th { + font-size: 18px; + padding: 1em 0.5em; + } + + td.highlight { + color: $gray-4; + @include background(linear-gradient(top, $brand-yellow 40%, $brand-yellow-secondary2 80%) no-repeat); + } + + &.rows { + border-bottom: none; + border-right: 1px solid $gray-3; + } +} + +q { + font-size: 45px; + line-height: 72px; + + &:before { + content: '“'; + position: absolute; + margin-left: -0.5em; + } + &:after { + content: '”'; + position: absolute; + margin-left: 0.1em; + } +} + +slide.fill { + background-repeat: no-repeat; + @include border-radius($slide-border-radius); + @include background-size(cover); +} + +/* Size variants */ + +article.smaller { + p, ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; + } + table { + td, th { + font-size: 14px; + } + } + pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; + } + q { + font-size: 40px; + line-height: 48px; + + &:before, &:after { + font-size: 60px; + } + } +} + +/* Builds */ + +.build { + > * { + @include transition(opacity 0.5s ease-in-out 0.2s); + } + + .to-build { + opacity: 0; + } + + .build-fade { + opacity: 0.3; + + &:hover { + opacity: 1.0; + } + } +} + +.popup .next .build { + .to-build { + opacity: 1; + } + + .build-fade { + opacity: 1; + } +} + +/* Pretty print */ + +.prettyprint .str, /* string content */ +.prettyprint .atv { /* a markup attribute value */ + color: $brand-green-secondary2; //rgb(0, 138, 53); +} +.prettyprint .kwd, /* a keyword */ +.prettyprint .tag { /* a markup tag name */ + color: rgb(0, 102, 204); +} +.prettyprint .com { /* a comment */ + color: $gray-3; //rgb(127, 127, 127); + font-style: italic; +} +.prettyprint .lit { /* a literal value */ + color: rgb(127, 0, 0); +} +.prettyprint .pun, /* punctuation, lisp open bracket, lisp close bracket */ +.prettyprint .opn, +.prettyprint .clo { + color: $gray-4; //rgb(127, 127, 127); +} +.prettyprint .typ, /* a type name */ +.prettyprint .atn, /* a markup attribute name */ +.prettyprint .dec, +.prettyprint .var { /* a declaration; a variable name */ + color: $brand-red-secondary2; //rgb(127, 0, 127); +} +.prettyprint .pln { + color: $gray-4; +} + +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + @include flexbox; + @include flex-center-center; + @include border-radius($slide-border-radius); + + @include box-sizing(border-box); + @include transform(translateY($slide-height / 2));@include transition(all 0.4s ease-in-out); + + > section { + background: #fff; + @include border-radius($slide-border-radius); + @include box-shadow(0 0 10px $gray-3); + width: 60%; + padding: 2em; + } +} + +// Speaker notes only show the current slide. +.with-notes { + + &.popup { + + slides.layout-widescreen, + slides.layout-faux-widescreen { + slide { + &.next { + @include transform(translate3d($slide-width-widescreen / 2 + 140, 80px, 0) scale(0.35)); + } + .note { + @include transform(translate3d(300px, $slide-height + 100, 0) scale(1.5)); + } + } + } + + slide { + overflow: visible; + background: white; + @include transition(none); // No slide transition goodies when in presenter mode. + pointer-events: none; + @include transform-origin(0, 0); // For speaker note transition. + + &:not(.backdrop) { + @include transform(scale(0.6) translate3d(0.5em, 0.5em, 0)); + @include box-shadow(0 0 10px $gray-3); + } + + &.backdrop { + //@include background(linear-gradient($gray-1, white 30%, white 60%, $gray-1)); + @include background-image(radial-gradient(50% 50%, #b1dfff 0%, + $brand-blue 600px)); + } + + &.next { + @include transform(translate3d($slide-width / 2 + 120, 80px, 0) scale(0.35)); + opacity: 1 !important; + + .note { + display: none !important; // Prevents seeing notes if we go to previous slide. + } + } + } + + .note { + width: 109%; + height: $slide-height / 2 - 90; + background: $gray-1; + padding: 0; + + @include box-shadow(0 0 10px $gray-3); + + @include transform(translate3d(250px, $slide-height + 100, 0) scale(1.5)); + @include transition(opacity 400ms ease-in-out); + + > section { + background: #fff; + @include border-radius($slide-border-radius); + height: 100%; + width: 100%; + @include box-sizing(border-box); + @include box-shadow(none); + overflow: auto; + padding: 1em; + } + } + } + + .note { + opacity: 1; + @include transform(translateY(0)); + pointer-events: auto; // Allow people to do things like open links embedded in the speaker notes. + } +} + +.source { + font-size: 14px; + color: $gray-2; + position: absolute; + bottom: $slide-top-bottom-padding + 30px; + left: $slide-left-right-padding; +} + +.centered { + text-align: center; +} + +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255,255,255,0) 85%, white 150%); +} + +.flexbox { + @include flexbox; +} + +.flexbox.vcenter { + @include flex-center-center; + height: 100%; + width: 100%; +} + +.flexbox.vleft { + @include flex-left-center; + height: 100%; + width: 100%; +} + +.flexbox.vright { + @include flex-right-center; + height: 100%; + width: 100%; +} + +.auto-fadein { + @include transition(opacity 0.6s ease-in 1s); + opacity: 0; +} + +/* Clickable/tappable areas */ +.slide-area { + z-index: 1000; + + position: absolute; + left: 0; + top: 0; + width: $slide-tap-area-width; + height: $slide-height; + + left: 50%; + top: 50%; + + cursor: pointer; + margin-top: -$slide-height / 2; + + //@include highlight-color(rgba(51, 51, 51, 0.5)); +} +#prev-slide-area { + margin-left: -$slide-width-widescreen / 2; + //@include border-radius(10px 0 0 10px); + //@include box-shadow(-5px 0 10px #222 inset); +} +#next-slide-area { + margin-left: $slide-width / 2; + //@include border-radius(0 10px 10px 0); + //@include box-shadow(5px 0 10px #222 inset); +} + +/* ===== SLIDE CONTENT ===== */ +.logoslide { + img { + width: 383px; + height: 92px; + } +} + +.segue { + padding: $slide-left-right-padding $slide-left-right-padding * 2; + + h2 { + color: $gray-1; + font-size: 60px; + } + h3 { + color: $gray-1; + line-height: 2.8; + } + hgroup { + position: absolute; + bottom: 225px; + } +} + +.thank-you-slide { + background: $brand-blue !important; + color: white; + + h2 { + font-size: 60px; + color: inherit; + } + + article > p { + margin-top: 2em; + font-size: 20pt; + } + + > p { + position: absolute; + bottom: $slide-top-bottom-padding * 2; + font-size: 24pt; + line-height: 1.3; + } +} + +aside.gdbar { + height: 97px; + width: 215px; + position: absolute; + left: -1px; + top: 125px; + @include border-radius(0 10px 10px 0); + @include background(linear-gradient(left, $gray-1, $gray-1) no-repeat); + @include background-size(0% 100%); + @include transition(all 0.5s ease-out 0.5s); /* Better to transition only on background-size, but not sure how to do that with the mixin. */ + + &.right { + right: 0; + left: -moz-initial; + left: initial; + top: ($slide-height / 2) - 96; /* 96 is height of gray icon bar */ + @include transform(rotateZ(180deg)); + + img { + @include transform(rotateZ(180deg)); + } + } + + &.bottom { + top: -moz-initial; + top: initial; + bottom: $slide-left-right-padding; + } + + img { + width: 85px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; + } +} + +.title-slide { + + hgroup { + bottom: 100px; + + h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: $gray-4; + } + + h2 { + font-size: 34px; + color: $gray-2; + font-weight: inherit; + } + + p { + font-size: 20px; + color: $gray-3; + line-height: 1.3; + margin-top: 2em; + } + } +} + +.quote { + color: $gray-1; + + .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; + } +} + +[data-config-contact] { + a { + color: rgb(255, 255, 255); + border-bottom: none; + } + span { + width: 115px; + display: inline-block; + } +} + +.overview { + + &.popup { + .note { + display: none !important; + } + } + + slides { + slide { + &.backdrop { + display: none !important; + } + + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + + @include backdrop(); + + &.far-past, + &.past, + &.next, + &.far-next, + &.far-past { + opacity: 0.5; + display: block; + } + + &.current { + opacity: 1; + } + } + } + + .slide-area { + display: none; + } +} + +@media print { + slides { + slide { + display: block !important; + position: relative; + @include backdrop(); + @include transform(none !important); + width: 100%; + height: 100%; + page-break-after:always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + + &.far-past, + &.past, + &.next, + &.far-next, + &.far-past, + &.current { + opacity: 1 !important; + display: block !important; + } + + .build { + > * { + @include transition(none); + } + + .to-build, + .build-fade { + opacity: 1; + } + } + + .auto-fadein { + opacity: 1 !important; + } + + &.backdrop { + display: none !important; + } + + table.rows { + border-right: 0; + } + } + + slide[hidden] { + display: none !important; + } + } + + .slide-area { + display: none; + } + + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 notstudy/io2012slides/theme/scss/phone.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/io2012slides/theme/scss/phone.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,35 @@ +@import "compass/css3/transition"; + + +/*Smartphones (portrait and landscape) ----------- */ +/*@media only screen +and (min-width : 320px) +and (max-width : 480px) { + +}*/ + +/* Smartphones (portrait) ----------- */ +//@media only screen and (max-device-width: 480px) { +/* Styles */ +//$slide-width: 350px; +//$slide-height: 500px; + +slides > slide { +/* width: $slide-width !important; + height: $slide-height !important; + margin-left: -$slide-width / 2 !important; + margin-top: -$slide-height / 2 !important; +*/ + // Don't do full slide transitions on mobile. + -webkit-transition: none !important; // Bug in compass? Not sure why the below is not working + @include transition(none !important); +} + +//} + +/* iPhone 4 ----------- */ +@media +only screen and (-webkit-min-device-pixel-ratio : 1.5), +only screen and (min-device-pixel-ratio : 1.5) { +/* Styles */ +} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/.1008.html.swp Binary file notstudy/slides/.1008.html.swp has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/1008.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/slides/1008.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,118 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                  +

                  +

                  +

                  +
                  +
                  + + +
                  +

                  TODO

                  +
                  +
                  +
                    +
                  • 【終了】Fedora 19 の insatall
                  • +
                  • 【終了】Vagrant/Vagrant-kvm の install
                  • +
                  • 【終了】学科の LDAP へ接続
                  • +
                  • サーバの構成を調べる
                  • +
                  • OCFS2 の install
                  • +
                  • Vagrant を ie-virsh に組み込むなりなんなり
                  • +
                  • 本当にサーバにアップロードして、実行できるかどうかテスト
                  • +
                  +
                  +
                  + + +
                  +

                  OCFS2

                  +
                  +
                  +
                    +
                  • Oracle clustered file system 2
                  • +
                  • まとめてひとつの file system へ読み書き要求をする NFS と異なり、書く計算 node がそれぞれの file system へ行う
                  • +
                  • 一貫性をもった読み書きを実現するために、読み書きは Distributed Lock Manager (DLM) が行う
                  • +
                  • NFS サーバが停止すると全ての書き込みが停止するのとは異なり、 可用性が維持できる
                  • +
                  • kernel module. Linux kernel の fs/ocfs2 にソースコードが
                  • +
                  • User Land なら ocfs2-tools/ocfs2console をインストールするだけだったりする
                  • +
                  • 他のブレードサーバにはインストールされている
                  • +
                  +
                  +
                  + + +
                  +

                  これからすること

                  +
                  +
                  +

                  来週の火曜までに

                  +
                    +
                  • 再起動すると dhcp から IP address をとってきてくれないので治す
                  • +
                  • OCFS2 の install と、OCFS2 を使えるように
                  • +
                  • Vagrant を ie-virsh に組み込むなりなんなり
                  • +
                  • 本当にサーバにアップロードできるかどうかテスト
                  • +
                  • Fedora の kernel を読めるように
                  • +
                  +
                  +
                  + + + +
                  + + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/1029.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/slides/1029.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,137 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                  +

                  +

                  +

                  +
                  +
                  + + +
                  +

                  TODO

                  +
                  +
                  +
                    +
                  • Fedora 19 の insatall(Debian で上書きしてしまったため)
                  • +
                  • Vagrant/Vagrant-kvm の install
                  • +
                  • 学科の LDAP へ接続
                  • +
                  • サーバの構成を調べる
                  • +
                  • GFS2 (Grobal File System) の install
                  • +
                  • Vagrant を ie-virsh に組み込むなりなんなり
                  • +
                  • 本当にサーバにアップロードして、実行できるかどうかテスト
                  • +
                  +
                  +
                  + + +
                  +

                  GFS2

                  +
                  +
                  +
                    +
                  • Global File System(GFS) の延長
                  • +
                  • その他 GFS : Google File System / Gfarm File System / GlusterFS
                  • +
                  • Cluster File System の一種
                  • +
                  • 複数のシステムで同時に利用するための file system
                  • +
                  • クライアントとサーバの区別がなく、全てのノードが同等
                  • +
                  • 分散ロックマネージャが必要
                  • +
                  • Fedora 19 で使えるように
                  • +
                  +
                  +
                  + + +
                  +

                  QEMU で EFI

                  +
                  +
                  +
                    +
                  • QEMU で EFI firmware を実行するには OVMF が必要
                  • +
                  • qemu-kvm -s -L ~/OVMF -bios ~/OVMF/OVMF.fd -hda disk.qcow2
                  • +
                  • qcow2 形式のディスクに書き込むために一度、qemu-nbd を使ってマウントする必要がある
                  • +
                  • gdb で実行ファイルを読み込み、 +
                    (gdb) target remote localhost:1234 +
                    で接続 +
                  • +
                  • objcopy を使用して efi で実行できる形式にしているため、デバッグシンボルを無視してしまう。デバッグオプションの付いた実行ファイルと、実行用の実行ファイルの用意
                  • +
                  • OS の課題用に、EFI じゃないもので Fedora を読めるように
                  • +
                  • Vagrant へ接続できるのかの調査もいる
                  • +
                  +
                  +
                  + + +
                  +

                  これからすること

                  +
                  +
                  +

                  来週の火曜までに

                  +
                    +
                  • GFS2 の install と、GFS2 を使えるように
                  • +
                  • Vagrant を ie-virsh に組み込むなりなんなり
                  • +
                  • 本当にサーバにアップロードできるかどうかテスト
                  • +
                  • Fedora の kernel を読めるように
                  • +
                  +
                  +
                  + + + +
                  + + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/1112.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/slides/1112.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,134 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                  +

                  +

                  +

                  +
                  +
                  + + +
                  +

                  TODO

                  +
                  +
                  +
                    +
                  • 【終了】Vagrant/Vagrant-kvm の install
                  • +
                  • 【終了】学科の LDAP へ接続
                  • +
                  • 【終了】学部生が接続できるかテスト
                  • +
                  • 【終了】/net/home, /net/open の mount
                  • +
                  • 【終了】OCFS2 で mount できるように
                  • +
                  • Vagrant を ie-vagrant として wrap
                  • +
                  • 本当にサーバにアップロードして、実行できるかどうかテスト
                  • +
                  +
                  +
                  + + +
                  +

                  ie-vagrant TODO

                  +
                  +
                  +
                    +
                  • 【終了】ie-vagrant init でできる Vagrantfile の権限を user に
                  • +
                  • 【終了】user の権限で、ie-vagrant up, ie-vagrant destroy, ie-vagrant ssh ができるように
                  • +
                  • ie-vagrant で作成した VM が global IP address を受け取るように
                  • +
                  • ie-vagrant box add できるように
                  • +
                  • できた box を vagrant-kvm で使えるようにディレクトリ名やファイルの内容を修正
                  • +
                  • ie-vagrant box list できるように
                  • +
                  +
                  +
                  + + +
                  +

                  System structure

                  +
                  +
                  + +
                  +
                  + + +
                  +

                  Network structure

                  +
                  +
                  + +
                  +
                  + + +
                  +

                  これからすること

                  +
                  +
                  +
                    +
                  • ie-vagrant の完成
                  • +
                  • 本当にサーバにアップロードできるかどうかテスト
                  • +
                  • bldsv11 上で fedora kernel が gdb で追えるように
                  • +
                  • EFI/OS の debug 環境の完成
                  • +
                  • EFI Runtime の VirtualAddressMap が動くように
                  • +
                  +
                  +
                  + + + +
                  + + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/1129.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/slides/1129.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,127 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                  +

                  +

                  +

                  +
                  +
                  + + +
                  +

                  TODO

                  +
                  +
                  +
                    +
                  • 【終了】Vagrant/Vagrant-kvm の install
                  • +
                  • 【終了】学科の LDAP へ接続
                  • +
                  • 【終了】学部生が接続できるかテスト
                  • +
                  • 【終了】/net/home, /net/open の mount
                  • +
                  • 【終了】OCFS2 で mount できるように
                  • +
                  • 【終了】Vagrant を ie-vagrant として wrap
                  • +
                  • 本当にサーバにアップロードして、実行できるかどうかテスト
                  • +
                  +
                  +
                  + + +
                  +

                  問題点

                  +
                  +
                  +
                    +
                  • 公式の box precise32/64 以外が、起動はできるが vagrant ssh で接続できない
                  • +
                  • 2つ以上の vm を vagrant up できない
                  • +
                  +
                  +
                  + + +
                  +

                  Kernel souce trace

                  +
                  +
                  +
                    +
                  • とりあえず読めるように、libvirt で立ち上げ
                  • +
                  • gdb で読める
                  • +
                  • (gdb)target remote localhost:1234
                  • +
                  • root じゃなくても gdb から接続可能
                  • +
                  • 接続した直後は WARN_ON_ONCE(workqueue_freezing) にとまる
                  • +
                  +
                  +
                  + + +
                  +

                  これからすること

                  +
                  +
                  +
                    +
                  • ie-vagrant の完成
                  • +
                  • 本当にサーバにアップロードできるかどうかテスト
                  • +
                  • bldsv11 上で fedora kernel が gdb で追えるように
                  • +
                  • EFI/OS の debug 環境の完成
                  • +
                  • EFI Runtime の VirtualAddressMap が動くように
                  • +
                  +
                  +
                  + + + +
                  + + + + + + diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/css/default.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notstudy/slides/css/default.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1498 @@ +/* line 17, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +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; +} + +/* line 20, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +body { + line-height: 1; +} + +/* line 22, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 24, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 26, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 28, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 101, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 30, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 114, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { + display: block; +} + +/** + * Base SlideDeck Styles + */ +/* line 48, ../scss/_base.scss */ +html { + height: 100%; + overflow: hidden; +} + +/* line 53, ../scss/_base.scss */ +body { + margin: 0; + padding: 0; + opacity: 0; + height: 100%; + min-height: 740px; + width: 100%; + overflow: hidden; + color: #fff; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} +/* line 69, ../scss/_base.scss */ +body.loaded { + opacity: 1 !important; +} + +/* line 74, ../scss/_base.scss */ +input, button { + vertical-align: middle; +} + +/* line 78, ../scss/_base.scss */ +slides > slide[hidden] { + display: none !important; +} + +/* line 82, ../scss/_base.scss */ +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-perspective: 1000; + perspective: 1000; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} + +/* line 94, ../scss/_base.scss */ +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Slide styles */ +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ +/** + * Theme Styles + */ +/* line 58, ../scss/default.scss */ +::selection { + color: white; + background-color: #ffd14d; + text-shadow: none; +} + +/* line 64, ../scss/default.scss */ +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} + +/* line 69, ../scss/default.scss */ +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + border-width: 1px 1px 1px 6px; +} + +/* line 78, ../scss/default.scss */ +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} + +/* line 81, ../scss/default.scss */ +::-webkit-scrollbar-button { + height: 0; + width: 0; +} + +/* line 85, ../scss/default.scss */ +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} + +/* line 90, ../scss/default.scss */ +::-webkit-scrollbar-corner { + background: transparent; +} + +/* line 94, ../scss/default.scss */ +body { + background: black; +} + +/* line 98, ../scss/default.scss */ +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: #797979; + width: 900px; + height: 700px; + margin-left: -450px; + margin-top: -350px; + padding: 40px 60px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} +/* line 119, ../scss/default.scss */ +slides > slide.far-past { + display: none; +} +/* line 126, ../scss/default.scss */ +slides > slide.past { + display: block; + opacity: 0; +} +/* line 133, ../scss/default.scss */ +slides > slide.current { + display: block; + opacity: 1; +} +/* line 139, ../scss/default.scss */ +slides > slide.current .auto-fadein { + opacity: 1; +} +/* line 143, ../scss/default.scss */ +slides > slide.current .gdbar { + -webkit-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -o-background-size: 100% 100%; + background-size: 100% 100%; +} +/* line 148, ../scss/default.scss */ +slides > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 156, ../scss/default.scss */ +slides > slide.far-next { + display: none; +} +/* line 163, ../scss/default.scss */ +slides > slide.dark { + background: #515151 !important; +} +/* line 171, ../scss/default.scss */ +slides > slide:not(.nobackground):before { + font-size: 12pt; + content: "#yourhashtag"; + position: absolute; + bottom: 20px; + left: 60px; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + -webkit-background-size: 30px 30px; + -moz-background-size: 30px 30px; + -o-background-size: 30px 30px; + background-size: 30px 30px; + padding-left: 40px; + height: 30px; + line-height: 1.9; +} +/* line 183, ../scss/default.scss */ +slides > slide:not(.nobackground):after { + font-size: 12pt; + content: attr(data-slide-num) "/" attr(data-total-slides); + position: absolute; + bottom: 20px; + right: 60px; + line-height: 1.9; +} +/* line 194, ../scss/default.scss */ +slides > slide.title-slide:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + -webkit-background-size: contain; + -moz-background-size: contain; + -o-background-size: contain; + background-size: contain; + position: absolute; + bottom: 40px; + right: 40px; + width: 100%; + height: 60px; +} +/* line 206, ../scss/default.scss */ +slides > slide.backdrop { + z-index: -10; + display: block !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 211, ../scss/default.scss */ +slides > slide.backdrop:after, slides > slide.backdrop:before { + display: none; +} +/* line 216, ../scss/default.scss */ +slides > slide > hgroup + article { + margin-top: 45px; +} +/* line 220, ../scss/default.scss */ +slides > slide > hgroup + article.flexbox.vcenter, slides > slide > hgroup + article.flexbox.vleft, slides > slide > hgroup + article.flexbox.vright { + height: 80%; +} +/* line 225, ../scss/default.scss */ +slides > slide > hgroup + article p { + margin-bottom: 1em; +} +/* line 230, ../scss/default.scss */ +slides > slide > article:only-child { + height: 100%; +} +/* line 233, ../scss/default.scss */ +slides > slide > article:only-child > iframe { + height: 98%; +} + +/* line 239, ../scss/default.scss */ +slides.layout-faux-widescreen > slide { + padding: 40px 160px; +} + +/* line 248, ../scss/default.scss */ +slides.layout-widescreen > slide, +slides.layout-faux-widescreen > slide { + margin-left: -550px; + width: 1100px; +} +/* line 253, ../scss/default.scss */ +slides.layout-widescreen > slide.far-past, +slides.layout-faux-widescreen > slide.far-past { + display: block; + display: none; + -webkit-transform: translate(-2260px); + -moz-transform: translate(-2260px); + -ms-transform: translate(-2260px); + -o-transform: translate(-2260px); + transform: translate(-2260px); + -webkit-transform: translate3d(-2260px, 0, 0); + -moz-transform: translate3d(-2260px, 0, 0); + -ms-transform: translate3d(-2260px, 0, 0); + -o-transform: translate3d(-2260px, 0, 0); + transform: translate3d(-2260px, 0, 0); +} +/* line 260, ../scss/default.scss */ +slides.layout-widescreen > slide.past, +slides.layout-faux-widescreen > slide.past { + display: block; + opacity: 0; +} +/* line 267, ../scss/default.scss */ +slides.layout-widescreen > slide.current, +slides.layout-faux-widescreen > slide.current { + display: block; + opacity: 1; +} +/* line 274, ../scss/default.scss */ +slides.layout-widescreen > slide.next, +slides.layout-faux-widescreen > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 282, ../scss/default.scss */ +slides.layout-widescreen > slide.far-next, +slides.layout-faux-widescreen > slide.far-next { + display: block; + display: none; + -webkit-transform: translate(2260px); + -moz-transform: translate(2260px); + -ms-transform: translate(2260px); + -o-transform: translate(2260px); + transform: translate(2260px); + -webkit-transform: translate3d(2260px, 0, 0); + -moz-transform: translate3d(2260px, 0, 0); + -ms-transform: translate3d(2260px, 0, 0); + -o-transform: translate3d(2260px, 0, 0); + transform: translate3d(2260px, 0, 0); +} +/* line 289, ../scss/default.scss */ +slides.layout-widescreen #prev-slide-area, +slides.layout-faux-widescreen #prev-slide-area { + margin-left: -650px; +} +/* line 293, ../scss/default.scss */ +slides.layout-widescreen #next-slide-area, +slides.layout-faux-widescreen #next-slide-area { + margin-left: 550px; +} + +/* line 298, ../scss/default.scss */ +b { + font-weight: 600; +} + +/* line 302, ../scss/default.scss */ +a { + color: #2a7cdf; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); +} +/* line 307, ../scss/default.scss */ +a:hover { + color: black !important; +} + +/* line 312, ../scss/default.scss */ +h1, h2, h3 { + font-weight: 600; +} + +/* line 316, ../scss/default.scss */ +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: #515151; +} + +/* line 323, ../scss/default.scss */ +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: #797979; +} + +/* line 331, ../scss/default.scss */ +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; +} +/* line 336, ../scss/default.scss */ +ul li { + margin-bottom: 0.5em; +} +/* line 339, ../scss/default.scss */ +ul li ul { + margin-left: 2em; + margin-bottom: 0; +} +/* line 343, ../scss/default.scss */ +ul li ul li:before { + content: '-'; + font-weight: 600; +} +/* line 350, ../scss/default.scss */ +ul > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; +} +/* line 357, ../scss/default.scss */ +ul ul { + margin-top: .5em; +} + +/* line 364, ../scss/default.scss */ +.highlight-code slide.current pre > * { + opacity: 0.25; + -webkit-transition: opacity 0.5s ease-in; + -moz-transition: opacity 0.5s ease-in; + -ms-transition: opacity 0.5s ease-in; + -o-transition: opacity 0.5s ease-in; + transition: opacity 0.5s ease-in; +} +/* line 368, ../scss/default.scss */ +.highlight-code slide.current b { + opacity: 1; +} + +/* line 373, ../scss/default.scss */ +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px 60px; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: #e6e6e6; + left: -60px; + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + /*overflow: hidden;*/ +} +/* line 387, ../scss/default.scss */ +pre[data-lang]:after { + content: attr(data-lang); + background-color: #a9a9a9; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; +} + +/* line 400, ../scss/default.scss */ +pre[data-lang="go"] { + color: #333; +} + +/* line 404, ../scss/default.scss */ +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +/* line 410, ../scss/default.scss */ +iframe { + width: 100%; + height: 530px; + background: white; + border: 1px solid #e6e6e6; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 418, ../scss/default.scss */ +dt { + font-weight: bold; +} + +/* line 422, ../scss/default.scss */ +button { + display: inline-block; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #f9f9f9), color-stop(70%, #e3e3e3)); + background: -webkit-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -moz-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -o-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -ms-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + border: 1px solid #a9a9a9; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + padding: 5px 8px; + outline: none; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + cursor: pointer; + text-shadow: 1px 1px white; + font-size: 10pt; +} + +/* line 436, ../scss/default.scss */ +button:not(:disabled):hover { + border-color: #515151; +} + +/* line 440, ../scss/default.scss */ +button:not(:disabled):active { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #e3e3e3), color-stop(70%, #f9f9f9)); + background: -webkit-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -moz-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -o-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -ms-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: linear-gradient(#e3e3e3 40%, #f9f9f9 70%); +} + +/* line 444, ../scss/default.scss */ +:disabled { + color: #a9a9a9; +} + +/* line 448, ../scss/default.scss */ +.blue { + color: #4387fd; +} + +/* line 451, ../scss/default.scss */ +.blue2 { + color: #3c8ef3; +} + +/* line 454, ../scss/default.scss */ +.blue3 { + color: #2a7cdf; +} + +/* line 457, ../scss/default.scss */ +.yellow { + color: #ffd14d; +} + +/* line 460, ../scss/default.scss */ +.yellow2 { + color: #f9cc46; +} + +/* line 463, ../scss/default.scss */ +.yellow3 { + color: #f6c000; +} + +/* line 466, ../scss/default.scss */ +.green { + color: #0da861; +} + +/* line 469, ../scss/default.scss */ +.green2 { + color: #00a86d; +} + +/* line 472, ../scss/default.scss */ +.green3 { + color: #009f5d; +} + +/* line 475, ../scss/default.scss */ +.red { + color: #f44a3f; +} + +/* line 478, ../scss/default.scss */ +.red2 { + color: #e0543e; +} + +/* line 481, ../scss/default.scss */ +.red3 { + color: #d94d3a; +} + +/* line 484, ../scss/default.scss */ +.gray { + color: #e6e6e6; +} + +/* line 487, ../scss/default.scss */ +.gray2 { + color: #a9a9a9; +} + +/* line 490, ../scss/default.scss */ +.gray3 { + color: #797979; +} + +/* line 493, ../scss/default.scss */ +.gray4 { + color: #515151; +} + +/* line 497, ../scss/default.scss */ +.white { + color: white !important; +} + +/* line 500, ../scss/default.scss */ +.black { + color: black !important; +} + +/* line 504, ../scss/default.scss */ +.columns-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + -o-column-count: 2; + column-count: 2; +} + +/* line 508, ../scss/default.scss */ +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid #797979; +} +/* line 515, ../scss/default.scss */ +table tr > td:first-child, table th { + font-weight: 600; + color: #515151; +} +/* line 520, ../scss/default.scss */ +table tr:nth-child(odd) { + background-color: #e6e6e6; +} +/* line 524, ../scss/default.scss */ +table th { + color: white; + font-size: 18px; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #4387fd), color-stop(80%, #2a7cdf)) no-repeat; + background: -webkit-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -moz-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -o-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -ms-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; +} +/* line 530, ../scss/default.scss */ +table td, table th { + font-size: 18px; + padding: 1em 0.5em; +} +/* line 535, ../scss/default.scss */ +table td.highlight { + color: #515151; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #ffd14d), color-stop(80%, #f6c000)) no-repeat; + background: -webkit-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -moz-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -o-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -ms-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; +} +/* line 540, ../scss/default.scss */ +table.rows { + border-bottom: none; + border-right: 1px solid #797979; +} + +/* line 546, ../scss/default.scss */ +q { + font-size: 45px; + line-height: 72px; +} +/* line 550, ../scss/default.scss */ +q:before { + content: '“'; + position: absolute; + margin-left: -0.5em; +} +/* line 555, ../scss/default.scss */ +q:after { + content: '”'; + position: absolute; + margin-left: 0.1em; +} + +/* line 562, ../scss/default.scss */ +slide.fill { + background-repeat: no-repeat; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +/* Size variants */ +/* line 571, ../scss/default.scss */ +article.smaller p, article.smaller ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; +} +/* line 577, ../scss/default.scss */ +article.smaller table td, article.smaller table th { + font-size: 14px; +} +/* line 581, ../scss/default.scss */ +article.smaller pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; +} +/* line 586, ../scss/default.scss */ +article.smaller q { + font-size: 40px; + line-height: 48px; +} +/* line 590, ../scss/default.scss */ +article.smaller q:before, article.smaller q:after { + font-size: 60px; +} + +/* Builds */ +/* line 599, ../scss/default.scss */ +.build > * { + -webkit-transition: opacity 0.5s ease-in-out 0.2s; + -moz-transition: opacity 0.5s ease-in-out 0.2s; + -ms-transition: opacity 0.5s ease-in-out 0.2s; + -o-transition: opacity 0.5s ease-in-out 0.2s; + transition: opacity 0.5s ease-in-out 0.2s; +} +/* line 603, ../scss/default.scss */ +.build .to-build { + opacity: 0; +} +/* line 607, ../scss/default.scss */ +.build .build-fade { + opacity: 0.3; +} +/* line 610, ../scss/default.scss */ +.build .build-fade:hover { + opacity: 1.0; +} + +/* line 617, ../scss/default.scss */ +.popup .next .build .to-build { + opacity: 1; +} +/* line 621, ../scss/default.scss */ +.popup .next .build .build-fade { + opacity: 1; +} + +/* Pretty print */ +/* line 629, ../scss/default.scss */ +.prettyprint .str, +.prettyprint .atv { + /* a markup attribute value */ + color: #009f5d; +} + +/* line 633, ../scss/default.scss */ +.prettyprint .kwd, +.prettyprint .tag { + /* a markup tag name */ + color: #0066cc; +} + +/* line 636, ../scss/default.scss */ +.prettyprint .com { + /* a comment */ + color: #797979; + font-style: italic; +} + +/* line 640, ../scss/default.scss */ +.prettyprint .lit { + /* a literal value */ + color: #7f0000; +} + +/* line 645, ../scss/default.scss */ +.prettyprint .pun, +.prettyprint .opn, +.prettyprint .clo { + color: #515151; +} + +/* line 651, ../scss/default.scss */ +.prettyprint .typ, +.prettyprint .atn, +.prettyprint .dec, +.prettyprint .var { + /* a declaration; a variable name */ + color: #d94d3a; +} + +/* line 654, ../scss/default.scss */ +.prettyprint .pln { + color: #515151; +} + +/* line 658, ../scss/default.scss */ +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transform: translateY(350px); + -moz-transform: translateY(350px); + -ms-transform: translateY(350px); + -o-transform: translateY(350px); + transform: translateY(350px); + -webkit-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; +} +/* line 676, ../scss/default.scss */ +.note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + width: 60%; + padding: 2em; +} + +/* line 693, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide.next, +.with-notes.popup slides.layout-faux-widescreen slide.next { + -webkit-transform: translate3d(690px, 80px, 0) scale(0.35); + -moz-transform: translate3d(690px, 80px, 0) scale(0.35); + -ms-transform: translate3d(690px, 80px, 0) scale(0.35); + -o-transform: translate3d(690px, 80px, 0) scale(0.35); + transform: translate3d(690px, 80px, 0) scale(0.35); +} +/* line 696, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide .note, +.with-notes.popup slides.layout-faux-widescreen slide .note { + -webkit-transform: translate3d(300px, 800px, 0) scale(1.5); + -moz-transform: translate3d(300px, 800px, 0) scale(1.5); + -ms-transform: translate3d(300px, 800px, 0) scale(1.5); + -o-transform: translate3d(300px, 800px, 0) scale(1.5); + transform: translate3d(300px, 800px, 0) scale(1.5); +} +/* line 702, ../scss/default.scss */ +.with-notes.popup slide { + overflow: visible; + background: white; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + pointer-events: none; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + -o-transform-origin: 0 0; + transform-origin: 0 0; +} +/* line 709, ../scss/default.scss */ +.with-notes.popup slide:not(.backdrop) { + -webkit-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -moz-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -ms-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -o-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; +} +/* line 714, ../scss/default.scss */ +.with-notes.popup slide.backdrop { + background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 600, color-stop(0%, #b1dfff), color-stop(100%, #4387fd)); + background-image: -webkit-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -moz-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -o-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -ms-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); +} +/* line 720, ../scss/default.scss */ +.with-notes.popup slide.next { + -webkit-transform: translate3d(570px, 80px, 0) scale(0.35); + -moz-transform: translate3d(570px, 80px, 0) scale(0.35); + -ms-transform: translate3d(570px, 80px, 0) scale(0.35); + -o-transform: translate3d(570px, 80px, 0) scale(0.35); + transform: translate3d(570px, 80px, 0) scale(0.35); + opacity: 1 !important; +} +/* line 724, ../scss/default.scss */ +.with-notes.popup slide.next .note { + display: none !important; +} +/* line 730, ../scss/default.scss */ +.with-notes.popup .note { + width: 109%; + height: 260px; + background: #e6e6e6; + padding: 0; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + -webkit-transform: translate3d(250px, 800px, 0) scale(1.5); + -moz-transform: translate3d(250px, 800px, 0) scale(1.5); + -ms-transform: translate3d(250px, 800px, 0) scale(1.5); + -o-transform: translate3d(250px, 800px, 0) scale(1.5); + transform: translate3d(250px, 800px, 0) scale(1.5); + -webkit-transition: opacity 400ms ease-in-out; + -moz-transition: opacity 400ms ease-in-out; + -ms-transition: opacity 400ms ease-in-out; + -o-transition: opacity 400ms ease-in-out; + transition: opacity 400ms ease-in-out; +} +/* line 741, ../scss/default.scss */ +.with-notes.popup .note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + height: 100%; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + overflow: auto; + padding: 1em; +} +/* line 754, ../scss/default.scss */ +.with-notes .note { + opacity: 1; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); + pointer-events: auto; +} + +/* line 761, ../scss/default.scss */ +.source { + font-size: 14px; + color: #a9a9a9; + position: absolute; + bottom: 70px; + left: 60px; +} + +/* line 769, ../scss/default.scss */ +.centered { + text-align: center; +} + +/* line 773, ../scss/default.scss */ +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255, 255, 255, 0) 85%, #ffffff 150%); +} + +/* line 781, ../scss/default.scss */ +.flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +/* line 785, ../scss/default.scss */ +.flexbox.vcenter { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 791, ../scss/default.scss */ +.flexbox.vleft { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: left; + -moz-box-align: left; + -ms-box-align: left; + box-align: left; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 797, ../scss/default.scss */ +.flexbox.vright { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: end; + -moz-box-align: end; + -ms-box-align: end; + box-align: end; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 803, ../scss/default.scss */ +.auto-fadein { + -webkit-transition: opacity 0.6s ease-in 1s; + -moz-transition: opacity 0.6s ease-in 1s; + -ms-transition: opacity 0.6s ease-in 1s; + -o-transition: opacity 0.6s ease-in 1s; + transition: opacity 0.6s ease-in 1s; + opacity: 0; +} + +/* Clickable/tappable areas */ +/* line 809, ../scss/default.scss */ +.slide-area { + z-index: 1000; + position: absolute; + left: 0; + top: 0; + width: 100px; + height: 700px; + left: 50%; + top: 50%; + cursor: pointer; + margin-top: -350px; +} + +/* line 826, ../scss/default.scss */ +#prev-slide-area { + margin-left: -550px; +} + +/* line 831, ../scss/default.scss */ +#next-slide-area { + margin-left: 450px; +} + +/* ===== SLIDE CONTENT ===== */ +/* line 839, ../scss/default.scss */ +.logoslide img { + width: 383px; + height: 92px; +} + +/* line 845, ../scss/default.scss */ +.segue { + padding: 60px 120px; +} +/* line 848, ../scss/default.scss */ +.segue h2 { + color: #e6e6e6; + font-size: 60px; +} +/* line 852, ../scss/default.scss */ +.segue h3 { + color: #e6e6e6; + line-height: 2.8; +} +/* line 856, ../scss/default.scss */ +.segue hgroup { + position: absolute; + bottom: 225px; +} + +/* line 862, ../scss/default.scss */ +.thank-you-slide { + background: #4387fd !important; + color: white; +} +/* line 866, ../scss/default.scss */ +.thank-you-slide h2 { + font-size: 60px; + color: inherit; +} +/* line 871, ../scss/default.scss */ +.thank-you-slide article > p { + margin-top: 2em; + font-size: 20pt; +} +/* line 876, ../scss/default.scss */ +.thank-you-slide > p { + position: absolute; + bottom: 80px; + font-size: 24pt; + line-height: 1.3; +} + +/* line 884, ../scss/default.scss */ +aside.gdbar { + height: 97px; + width: 415px; + position: absolute; + left: -1px; + top: 125px; + -webkit-border-radius: 0 10px 10px 0; + -moz-border-radius: 0 10px 10px 0; + -ms-border-radius: 0 10px 10px 0; + -o-border-radius: 0 10px 10px 0; + border-radius: 0 10px 10px 0; + background: -webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e6e6e6), color-stop(100%, #e6e6e6)) no-repeat; + background: -webkit-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -moz-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -o-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -ms-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + -webkit-background-size: 0% 100%; + -moz-background-size: 0% 100%; + -o-background-size: 0% 100%; + background-size: 0% 100%; + -webkit-transition: all 0.5s ease-out 0.5s; + -moz-transition: all 0.5s ease-out 0.5s; + -ms-transition: all 0.5s ease-out 0.5s; + -o-transition: all 0.5s ease-out 0.5s; + transition: all 0.5s ease-out 0.5s; + /* Better to transition only on background-size, but not sure how to do that with the mixin. */ +} +/* line 895, ../scss/default.scss */ +aside.gdbar.right { + right: 0; + left: -moz-initial; + left: initial; + top: 254px; + /* 96 is height of gray icon bar */ + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 902, ../scss/default.scss */ +aside.gdbar.right img { + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 907, ../scss/default.scss */ +aside.gdbar.bottom { + top: -moz-initial; + top: initial; + bottom: 60px; +} +/* line 913, ../scss/default.scss */ +aside.gdbar img { + width: 300px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; +} + +/* line 924, ../scss/default.scss */ +.title-slide hgroup { + bottom: 100px; +} +/* line 927, ../scss/default.scss */ +.title-slide hgroup h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: #515151; +} +/* line 934, ../scss/default.scss */ +.title-slide hgroup h2 { + font-size: 34px; + color: #a9a9a9; + font-weight: inherit; +} +/* line 940, ../scss/default.scss */ +.title-slide hgroup p { + font-size: 20px; + color: #797979; + line-height: 1.3; + margin-top: 2em; +} + +/* line 949, ../scss/default.scss */ +.quote { + color: #e6e6e6; +} +/* line 952, ../scss/default.scss */ +.quote .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; +} + +/* line 961, ../scss/default.scss */ +[data-config-contact] a { + color: white; + border-bottom: none; +} +/* line 965, ../scss/default.scss */ +[data-config-contact] span { + width: 115px; + display: inline-block; +} + +/* line 974, ../scss/default.scss */ +.overview.popup .note { + display: none !important; +} +/* line 980, ../scss/default.scss */ +.overview slides slide { + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 981, ../scss/default.scss */ +.overview slides slide.backdrop { + display: none !important; +} +/* line 996, ../scss/default.scss */ +.overview slides slide.far-past, .overview slides slide.past, .overview slides slide.next, .overview slides slide.far-next, .overview slides slide.far-past { + opacity: 0.5; + display: block; +} +/* line 1001, ../scss/default.scss */ +.overview slides slide.current { + opacity: 1; +} +/* line 1007, ../scss/default.scss */ +.overview .slide-area { + display: none; +} + +@media print { + /* line 1014, ../scss/default.scss */ + slides slide { + display: block !important; + position: relative; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + -o-transform: none !important; + transform: none !important; + width: 100%; + height: 100%; + page-break-after: always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + } + /* line 1034, ../scss/default.scss */ + slides slide.far-past, slides slide.past, slides slide.next, slides slide.far-next, slides slide.far-past, slides slide.current { + opacity: 1 !important; + display: block !important; + } + /* line 1040, ../scss/default.scss */ + slides slide .build > * { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + } + /* line 1045, ../scss/default.scss */ + slides slide .build .to-build, + slides slide .build .build-fade { + opacity: 1; + } + /* line 1050, ../scss/default.scss */ + slides slide .auto-fadein { + opacity: 1 !important; + } + /* line 1054, ../scss/default.scss */ + slides slide.backdrop { + display: none !important; + } + /* line 1058, ../scss/default.scss */ + slides slide table.rows { + border-right: 0; + } + /* line 1063, ../scss/default.scss */ + slides slide[hidden] { + display: none !important; + } + + /* line 1068, ../scss/default.scss */ + .slide-area { + display: none; + } + + /* line 1072, ../scss/default.scss */ + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + /* line 1080, ../scss/default.scss */ + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/images/network_structure.png Binary file notstudy/slides/images/network_structure.png has changed diff -r 7f4128b2369a -r fea44bb81877 notstudy/slides/images/system_structure.png Binary file notstudy/slides/images/system_structure.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/all-wcprops --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/images/.svn/all-wcprops Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,29 @@ +K 25 +svn:wc:ra_dav:version-url +V 29 +/svn/!svn/ver/12/trunk/images +END +google-logo-small.png +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/12/trunk/images/google-logo-small.png +END +googleio-logo.png +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/3/trunk/images/googleio-logo.png +END +colorbar.png +K 25 +svn:wc:ra_dav:version-url +V 41 +/svn/!svn/ver/3/trunk/images/colorbar.png +END +google-logo.png +K 25 +svn:wc:ra_dav:version-url +V 44 +/svn/!svn/ver/9/trunk/images/google-logo.png +END diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/entries --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/images/.svn/entries Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,164 @@ +10 + +dir +20 +http://html5slides.googlecode.com/svn/trunk/images +http://html5slides.googlecode.com/svn + + + +2011-05-20T17:19:33.425808Z +12 +mwichary@google.com + + + + + + + + + + + + + + +5963eb91-a1a4-c111-6e9c-cdd99a89fa83 + +google-logo-small.png +file + + + + +2012-05-28T15:06:38.000000Z +135f45372a8c114bf3e2aeb599e4f936 +2011-05-20T17:19:33.425808Z +12 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +8466 + +googleio-logo.png +file + + + + +2012-05-28T15:06:38.000000Z +1f7e00dc3ff015f831ce3eb5dbd23550 +2011-05-20T16:49:11.026922Z +3 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +84742 + +colorbar.png +file + + + + +2012-05-28T15:06:38.000000Z +4a80fb8dc88969ddb33e1b69d2d0127a +2011-05-20T16:49:11.026922Z +3 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +213 + +google-logo.png +file + + + + +2012-05-28T15:06:38.000000Z +e8734f1b87d204e4d325f5fc73fab31e +2011-05-20T17:14:27.670900Z +9 +mwichary@google.com +has-props + + + + + + + + + + + + + + + + + + + + +31769 + diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/prop-base/colorbar.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/images/.svn/prop-base/colorbar.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/prop-base/google-logo-small.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/images/.svn/prop-base/google-logo-small.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/prop-base/google-logo.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/images/.svn/prop-base/google-logo.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 9 +image/png +END diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/prop-base/googleio-logo.png.svn-base --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/images/.svn/prop-base/googleio-logo.png.svn-base Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/text-base/colorbar.png.svn-base Binary file seminar/images/.svn/text-base/colorbar.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/text-base/google-logo-small.png.svn-base Binary file seminar/images/.svn/text-base/google-logo-small.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/text-base/google-logo.png.svn-base Binary file seminar/images/.svn/text-base/google-logo.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/.svn/text-base/googleio-logo.png.svn-base Binary file seminar/images/.svn/text-base/googleio-logo.png.svn-base has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/SoftWareStack.png Binary file seminar/images/SoftWareStack.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/UEFI_structure.pdf Binary file seminar/images/UEFI_structure.pdf has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/Untitled.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/images/Untitled.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,668 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.15.0.171074 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-08-14 07:37:35 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{485, 184}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 19 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 48} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{38, 180}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 18 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 63} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{483.5, 3}, {7, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 17 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 0} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{40, 2}, {14, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 16 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 15} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{379, 129}, {110, 36}} + Class + ShapedGraphic + ID + 15 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f1 \cf0 19 - 16 bit} + + + + Bounds + {{350, 129}, {29, 36}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 AVL} + + + + Bounds + {{263, 129}, {29, 36}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 G} + + + + Bounds + {{292, 129}, {29, 36}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 D} + + + + Bounds + {{321, 129}, {29, 36}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 0} + + + + Bounds + {{40, 129}, {223, 36}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 31 - 24 bit} + + + + Bounds + {{80, 93}, {59, 36}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DPL} + + + + Bounds + {{40, 93}, {41, 36}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 P} + + + + Bounds + {{139, 93}, {41, 36}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 S} + + + + Bounds + {{180, 93}, {83, 36}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 type} + + + + Bounds + {{262, 93}, {227, 36}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 23 - 16 bit} + + + + Bounds + {{40, 57}, {449, 36}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Base Address +\f1 15 - 0 bit} + + + + Bounds + {{40, 21}, {449, 36}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Limit : 15 - 0 bit} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-08-14 07:46:29 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{172, 650}, {996, 408}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-151, 0}, {861, 253}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/images/code_datasegment.png Binary file seminar/images/code_datasegment.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/colorbar.png Binary file seminar/images/colorbar.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/concurrent.jpg Binary file seminar/images/concurrent.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/concurrent.png Binary file seminar/images/concurrent.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/google-logo-small.png Binary file seminar/images/google-logo-small.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/google-logo.png Binary file seminar/images/google-logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/googleio-logo.png Binary file seminar/images/googleio-logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/one_of_GDT_descriptor.png Binary file seminar/images/one_of_GDT_descriptor.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/images/os_plan.png Binary file seminar/images/os_plan.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/README.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/README.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,105 @@ + + +

                  HTML5 Slide Template

                  + +

                  Configuring the slides

                  +

                  Much of the deck is customized by changing the settings in slide_config.js. +Some of the customizations include the title, Analytics tracking ID, speaker +information (name, social urls, blog), web fonts to load, themes, and other +general behavior.

                  +

                  Customizing the #io12 hash

                  +

                  The bottom of the slides include #io12 by default. If you'd like to change +this, please update the variable $social-tags: '#io12'; in +/theme/scss/default.scss.

                  +

                  See the next section on "Editing CSS" before you go editing things.

                  +

                  Editing CSS

                  +

                  Compass is a CSS preprocessor used to compile +SCSS/SASS into CSS. We chose SCSS for the new slide deck for maintainability, +easier browser compatibility, and because...it's the future!

                  +

                  That said, if not comfortable working with SCSS or don't want to learn something +new, not a problem. The generated .css files can already be found in +(see /theme/css). You can just edit those and bypass SCSS altogether. +However, our recommendation is to use Compass. It's super easy to install and use.

                  +

                  Installing Compass and making changes

                  +

                  First, install compass:

                  +
                  sudo gem update --system
                  +sudo gem install compass
                  +
                  +

                  Next, you'll want to watch for changes to the exiting .scss files in /theme/scss +and any new one you add:

                  +
                  $ cd io-2012-slides
                  +$ compass watch
                  +
                  +

                  This command automatically recompiles the .scss file when you make a change. +Its corresponding .css file is output to /theme/css. Slick.

                  +

                  By default, config.rb in the main project folder outputs minified +.css. It's a best practice after all! However, if you want unminified files, +run watch with the style output flag:

                  +
                  compass watch -s expanded
                  +
                  +

                  Note: You should not need to edit _base.scss.

                  +

                  Running the slides

                  +

                  The slides can be run locally from file:// making development easy :)

                  +

                  Running from a web server

                  +

                  If at some point you should need a web server, use serve.sh. It will +launch a simple one and point your default browser to http://localhost:8000/template.html:

                  +
                  $ cd io-2012-slides
                  +$ ./serve.sh
                  +
                  +

                  You can also specify a custom port:

                  +
                  $ ./serve.sh 8080
                  +
                  +

                  Presenter mode

                  +

                  The slides contain a presenter mode feature (beta) to view + control the slides +from a popup window.

                  +

                  To enable presenter mode, add presentme=true to the URL: http://localhost:8000/template.html?presentme=true

                  +

                  To disable presenter mode, hit http://localhost:8000/template.html?presentme=false

                  +

                  Presenter mode is sticky, so refreshing the page will persist your settings.

                  +
                  +

                  That's all she wrote!

                  diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/README.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,130 @@ + + +

                  HTML5 Slide Template

                  + +## Configuring the slides + +Much of the deck is customized by changing the settings in [`slide_config.js`](slide_config.js). +Some of the customizations include the title, Analytics tracking ID, speaker +information (name, social urls, blog), web fonts to load, themes, and other +general behavior. + +### Customizing the `#io12` hash + +The bottom of the slides include `#io12` by default. If you'd like to change +this, please update the variable `$social-tags: '#io12';` in +[`/theme/scss/default.scss`](theme/scss/default.scss). + +See the next section on "Editing CSS" before you go editing things. + +## Editing CSS + +[Compass](http://compass-style.org/install/) is a CSS preprocessor used to compile +SCSS/SASS into CSS. We chose SCSS for the new slide deck for maintainability, +easier browser compatibility, and because...it's the future! + +That said, if not comfortable working with SCSS or don't want to learn something +new, not a problem. The generated .css files can already be found in +(see [`/theme/css`](theme/css)). You can just edit those and bypass SCSS altogether. +However, our recommendation is to use Compass. It's super easy to install and use. + +### Installing Compass and making changes + +First, install compass: + + sudo gem update --system + sudo gem install compass + +Next, you'll want to watch for changes to the exiting .scss files in [`/theme/scss`](theme/scss) +and any new one you add: + + $ cd io-2012-slides + $ compass watch + +This command automatically recompiles the .scss file when you make a change. +Its corresponding .css file is output to [`/theme/css`](theme/css). Slick. + +By default, [`config.rb`](config.rb) in the main project folder outputs minified +.css. It's a best practice after all! However, if you want unminified files, +run watch with the style output flag: + + compass watch -s expanded + +*Note:* You should not need to edit [`_base.scss`](theme/scss/_base.scss). + +## Running the slides + +The slides can be run locally from `file://` making development easy :) + +### Running from a web server + +If at some point you should need a web server, use [`serve.sh`](serve.sh). It will +launch a simple one and point your default browser to [`http://localhost:8000/template.html`](http://localhost:8000/template.html): + + $ cd io-2012-slides + $ ./serve.sh + +You can also specify a custom port: + + $ ./serve.sh 8080 + +### Presenter mode + +The slides contain a presenter mode feature (beta) to view + control the slides +from a popup window. + +To enable presenter mode, add `presentme=true` to the URL: [http://localhost:8000/template.html?presentme=true](http://localhost:8000/template.html?presentme=true) + +To disable presenter mode, hit [http://localhost:8000/template.html?presentme=false](http://localhost:8000/template.html?presentme=false) + +Presenter mode is sticky, so refreshing the page will persist your settings. + +--- + +That's all she wrote! diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/app.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/app.yaml Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,23 @@ +application: my-io-talk +version: 1 +runtime: python27 +api_version: 1 +threadsafe: yes + +handlers: +- url: / + static_files: template.html + upload: template\.html + +- url: /slide_config\.js + static_files: slide_config.js + upload: slide_config\.js + +- url: /js + static_dir: js + +- url: /theme + static_dir: theme + +- url: /images + static_dir: images diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/config.rb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/config.rb Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,24 @@ +# Require any additional compass plugins here. + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "theme/css" +sass_dir = "theme/scss" +images_dir = "images" +javascripts_dir = "js" + +# You can select your preferred output style here (can be overridden via the command line): +output_style = :compressed #:expanded or :nested or :compact or :compressed + +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/barchart.png Binary file seminar/io2012slides/images/barchart.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/chart.png Binary file seminar/io2012slides/images/chart.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/chrome-logo-tiny.png Binary file seminar/io2012slides/images/chrome-logo-tiny.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/google_developers_icon_128.png Binary file seminar/io2012slides/images/google_developers_icon_128.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/google_developers_logo.png Binary file seminar/io2012slides/images/google_developers_logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/google_developers_logo_tiny.png Binary file seminar/io2012slides/images/google_developers_logo_tiny.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/google_developers_logo_white.png Binary file seminar/io2012slides/images/google_developers_logo_white.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/io2012_logo.png Binary file seminar/io2012slides/images/io2012_logo.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/images/sky.jpg Binary file seminar/io2012slides/images/sky.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/hammer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/hammer.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,586 @@ +/* + * Hammer.JS + * version 0.4 + * author: Eight Media + * https://github.com/EightMedia/hammer.js + */ +function Hammer(element, options, undefined) +{ + var self = this; + + var defaults = { + // prevent the default event or not... might be buggy when false + prevent_default : false, + css_hacks : true, + + drag : true, + drag_vertical : true, + drag_horizontal : true, + // minimum distance before the drag event starts + drag_min_distance : 20, // pixels + + // pinch zoom and rotation + transform : true, + scale_treshold : 0.1, + rotation_treshold : 15, // degrees + + tap : true, + tap_double : true, + tap_max_interval : 300, + tap_double_distance: 20, + + hold : true, + hold_timeout : 500 + }; + options = mergeObject(defaults, options); + + // some css hacks + (function() { + if(!options.css_hacks) { + return false; + } + + var vendors = ['webkit','moz','ms','o','']; + var css_props = { + "userSelect": "none", + "touchCallout": "none", + "userDrag": "none", + "tapHighlightColor": "rgba(0,0,0,0)" + }; + + var prop = ''; + for(var i = 0; i < vendors.length; i++) { + for(var p in css_props) { + prop = p; + if(vendors[i]) { + prop = vendors[i] + prop.substring(0, 1).toUpperCase() + prop.substring(1); + } + element.style[ prop ] = css_props[p]; + } + } + })(); + + // holds the distance that has been moved + var _distance = 0; + + // holds the exact angle that has been moved + var _angle = 0; + + // holds the diraction that has been moved + var _direction = 0; + + // holds position movement for sliding + var _pos = { }; + + // how many fingers are on the screen + var _fingers = 0; + + var _first = false; + + var _gesture = null; + var _prev_gesture = null; + + var _touch_start_time = null; + var _prev_tap_pos = {x: 0, y: 0}; + var _prev_tap_end_time = null; + + var _hold_timer = null; + + var _offset = {}; + + // keep track of the mouse status + var _mousedown = false; + + var _event_start; + var _event_move; + var _event_end; + + + /** + * angle to direction define + * @param float angle + * @return string direction + */ + this.getDirectionFromAngle = function( angle ) + { + var directions = { + down: angle >= 45 && angle < 135, //90 + left: angle >= 135 || angle <= -135, //180 + up: angle < -45 && angle > -135, //270 + right: angle >= -45 && angle <= 45 //0 + }; + + var direction, key; + for(key in directions){ + if(directions[key]){ + direction = key; + break; + } + } + return direction; + }; + + + /** + * count the number of fingers in the event + * when no fingers are detected, one finger is returned (mouse pointer) + * @param event + * @return int fingers + */ + function countFingers( event ) + { + // there is a bug on android (until v4?) that touches is always 1, + // so no multitouch is supported, e.g. no, zoom and rotation... + return event.touches ? event.touches.length : 1; + } + + + /** + * get the x and y positions from the event object + * @param event + * @return array [{ x: int, y: int }] + */ + function getXYfromEvent( event ) + { + event = event || window.event; + + // no touches, use the event pageX and pageY + if(!event.touches) { + var doc = document, + body = doc.body; + + return [{ + x: event.pageX || event.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && doc.clientLeft || 0 ), + y: event.pageY || event.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && doc.clientTop || 0 ) + }]; + } + // multitouch, return array with positions + else { + var pos = [], src; + for(var t=0, len=event.touches.length; t options.drag_min_distance) || _gesture == 'drag') { + // calculate the angle + _angle = getAngle(_pos.start[0], _pos.move[0]); + _direction = self.getDirectionFromAngle(_angle); + + // check the movement and stop if we go in the wrong direction + var is_vertical = (_direction == 'up' || _direction == 'down'); + if(((is_vertical && !options.drag_vertical) || (!is_vertical && !options.drag_horizontal)) + && (_distance > options.drag_min_distance)) { + return; + } + + _gesture = 'drag'; + + var position = { x: _pos.move[0].x - _offset.left, + y: _pos.move[0].y - _offset.top }; + + var event_obj = { + originalEvent : event, + position : position, + direction : _direction, + distance : _distance, + distanceX : _distance_x, + distanceY : _distance_y, + angle : _angle + }; + + // on the first time trigger the start event + if(_first) { + triggerEvent("dragstart", event_obj); + + _first = false; + } + + // normal slide event + triggerEvent("drag", event_obj); + + cancelEvent(event); + } + }, + + + // transform gesture + // fired on touchmove + transform : function(event) + { + if(options.transform) { + var scale = event.scale || 1; + var rotation = event.rotation || 0; + + if(countFingers(event) != 2) { + return false; + } + + if(_gesture != 'drag' && + (_gesture == 'transform' || Math.abs(1-scale) > options.scale_treshold + || Math.abs(rotation) > options.rotation_treshold)) { + _gesture = 'transform'; + + _pos.center = { x: ((_pos.move[0].x + _pos.move[1].x) / 2) - _offset.left, + y: ((_pos.move[0].y + _pos.move[1].y) / 2) - _offset.top }; + + var event_obj = { + originalEvent : event, + position : _pos.center, + scale : scale, + rotation : rotation + }; + + // on the first time trigger the start event + if(_first) { + triggerEvent("transformstart", event_obj); + _first = false; + } + + triggerEvent("transform", event_obj); + + cancelEvent(event); + + return true; + } + } + + return false; + }, + + + // tap and double tap gesture + // fired on touchend + tap : function(event) + { + // compare the kind of gesture by time + var now = new Date().getTime(); + var touch_time = now - _touch_start_time; + + // dont fire when hold is fired + if(options.hold && !(options.hold && options.hold_timeout > touch_time)) { + return; + } + + // when previous event was tap and the tap was max_interval ms ago + var is_double_tap = (function(){ + if (_prev_tap_pos && options.tap_double && _prev_gesture == 'tap' && (_touch_start_time - _prev_tap_end_time) < options.tap_max_interval) { + var x_distance = Math.abs(_prev_tap_pos[0].x - _pos.start[0].x); + var y_distance = Math.abs(_prev_tap_pos[0].y - _pos.start[0].y); + return (_prev_tap_pos && _pos.start && Math.max(x_distance, y_distance) < options.tap_double_distance); + + } + return false; + })(); + + if(is_double_tap) { + _gesture = 'double_tap'; + _prev_tap_end_time = null; + + triggerEvent("doubletap", { + originalEvent : event, + position : _pos.start + }); + cancelEvent(event); + } + + // single tap is single touch + else { + _gesture = 'tap'; + _prev_tap_end_time = now; + _prev_tap_pos = _pos.start; + + if(options.tap) { + triggerEvent("tap", { + originalEvent : event, + position : _pos.start + }); + cancelEvent(event); + } + } + + } + + }; + + + function handleEvents(event) + { + switch(event.type) + { + case 'mousedown': + case 'touchstart': + _pos.start = getXYfromEvent(event); + _touch_start_time = new Date().getTime(); + _fingers = countFingers(event); + _first = true; + _event_start = event; + + // borrowed from jquery offset https://github.com/jquery/jquery/blob/master/src/offset.js + var box = element.getBoundingClientRect(); + var clientTop = element.clientTop || document.body.clientTop || 0; + var clientLeft = element.clientLeft || document.body.clientLeft || 0; + var scrollTop = window.pageYOffset || element.scrollTop || document.body.scrollTop; + var scrollLeft = window.pageXOffset || element.scrollLeft || document.body.scrollLeft; + + _offset = { + top: box.top + scrollTop - clientTop, + left: box.left + scrollLeft - clientLeft + }; + + _mousedown = true; + + // hold gesture + gestures.hold(event); + + if(options.prevent_default) { + cancelEvent(event); + } + break; + + case 'mousemove': + case 'touchmove': + if(!_mousedown) { + return false; + } + _event_move = event; + _pos.move = getXYfromEvent(event); + + if(!gestures.transform(event)) { + gestures.drag(event); + } + break; + + case 'mouseup': + case 'mouseout': + case 'touchcancel': + case 'touchend': + if(!_mousedown || (_gesture != 'transform' && event.touches && event.touches.length > 0)) { + return false; + } + + _mousedown = false; + _event_end = event; + + // drag gesture + // dragstart is triggered, so dragend is possible + if(_gesture == 'drag') { + triggerEvent("dragend", { + originalEvent : event, + direction : _direction, + distance : _distance, + angle : _angle + }); + } + + // transform + // transformstart is triggered, so transformed is possible + else if(_gesture == 'transform') { + triggerEvent("transformend", { + originalEvent : event, + position : _pos.center, + scale : event.scale, + rotation : event.rotation + }); + } + else { + gestures.tap(_event_start); + } + + _prev_gesture = _gesture; + + // reset vars + reset(); + break; + } + } + + + // bind events for touch devices + // except for windows phone 7.5, it doesnt support touch events..! + if('ontouchstart' in window) { + element.addEventListener("touchstart", handleEvents, false); + element.addEventListener("touchmove", handleEvents, false); + element.addEventListener("touchend", handleEvents, false); + element.addEventListener("touchcancel", handleEvents, false); + } + // for non-touch + else { + + if(element.addEventListener){ // prevent old IE errors + element.addEventListener("mouseout", function(event) { + if(!isInsideHammer(element, event.relatedTarget)) { + handleEvents(event); + } + }, false); + element.addEventListener("mouseup", handleEvents, false); + element.addEventListener("mousedown", handleEvents, false); + element.addEventListener("mousemove", handleEvents, false); + + // events for older IE + }else if(document.attachEvent){ + element.attachEvent("onmouseout", function(event) { + if(!isInsideHammer(element, event.relatedTarget)) { + handleEvents(event); + } + }, false); + element.attachEvent("onmouseup", handleEvents); + element.attachEvent("onmousedown", handleEvents); + element.attachEvent("onmousemove", handleEvents); + } + } + + + /** + * find if element is (inside) given parent element + * @param object element + * @param object parent + * @return bool inside + */ + function isInsideHammer(parent, child) { + // get related target for IE + if(!child && window.event && window.event.toElement){ + child = window.event.toElement; + } + + if(parent === child){ + return true; + } + + // loop over parentNodes of child until we find hammer element + if(child){ + var node = child.parentNode; + while(node !== null){ + if(node === parent){ + return true; + }; + node = node.parentNode; + } + } + return false; + } + + + /** + * merge 2 objects into a new object + * @param object obj1 + * @param object obj2 + * @return object merged object + */ + function mergeObject(obj1, obj2) { + var output = {}; + + if(!obj2) { + return obj1; + } + + for (var prop in obj1) { + if (prop in obj2) { + output[prop] = obj2[prop]; + } else { + output[prop] = obj1[prop]; + } + } + return output; + } + + function isFunction( obj ){ + return Object.prototype.toString.call( obj ) == "[object Function]"; + } +} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/modernizr.custom.45394.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/modernizr.custom.45394.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,4 @@ +/* Modernizr 2.5.3 (Custom Build) | MIT & BSD + * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexbox_legacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-mq-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function C(a){i.cssText=a}function D(a,b){return C(m.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a)if(i[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),H(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d",a,""].join(""),k.id=g,(l?k:m).innerHTML+=h,m.appendChild(k),l||(m.style.background="",f.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},y=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return x("@media "+b+" { #"+g+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e});var J=function(c,d){var f=c.join(""),g=d.length;x(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",m.join("touch-enabled),("),g,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",m.join("transform-3d),("),g,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',k,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);r.flexbox=function(){return I("flexOrder")},r["flexbox-legacy"]=function(){return I("boxDirection")},r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){try{var d=b.createElement("canvas"),e;e=!(!a.WebGLRenderingContext||!d.getContext("experimental-webgl")&&!d.getContext("webgl")),d=c}catch(f){e=!1}return e},r.touch=function(){return e.touch},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){return!!a.openDatabase},r.indexedDB=function(){return!!I("indexedDB",a)},r.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return!!a.history&&!!history.pushState},r.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},r.websockets=function(){for(var b=-1,c=o.length;++b0&&g.splice(0,a);setTimeout(function(){b.parentNode.removeChild(b)},15)}}function m(a){var b,c;a.setAttribute("data-orderloaded","loaded");for(a=0;c=h[a];a++)if((b=i[c])&&b.getAttribute("data-orderloaded")==="loaded")delete i[c],require.addScriptToDom(b);else break;a>0&&h.splice(0, +a)}var f=typeof document!=="undefined"&&typeof window!=="undefined"&&document.createElement("script"),n=f&&(f.async||window.opera&&Object.prototype.toString.call(window.opera)==="[object Opera]"||"MozAppearance"in document.documentElement.style),o=f&&f.readyState==="uninitialized",l=/^(complete|loaded)$/,g=[],j={},i={},h=[],f=null;define({version:"1.0.5",load:function(a,b,c,e){var d;b.nameToUrl?(d=b.nameToUrl(a,null),require.s.skipAsync[d]=!0,n||e.isBuild?b([a],c):o?(e=require.s.contexts._,!e.urlFetched[d]&& +!e.loaded[a]&&(e.urlFetched[d]=!0,require.resourcesReady(!1),e.scriptCount+=1,d=require.attach(d,e,a,null,null,m),i[a]=d,h.push(a)),b([a],c)):b.specified(a)?b([a],c):(g.push({name:a,req:b,onLoad:c}),require.attach(d,null,a,k,"script/cache"))):b([a],c)}})})(); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/polyfills/classList.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/polyfills/classList.min.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +/* @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/ +"use strict";if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(a){var f="classList",d="prototype",e=(a.HTMLElement||a.Element)[d],g=Object;strTrim=String[d].trim||function(){return this.replace(/^\s+|\s+$/g,"")},arrIndexOf=Array[d].indexOf||function(k){for(var j=0,h=this.length;j")&&c[0]);return a>4?a:!1}();return a},m.isInternetExplorer=function(){var a=m.isInternetExplorer.cached=typeof m.isInternetExplorer.cached!="undefined"?m.isInternetExplorer.cached:Boolean(m.getInternetExplorerMajorVersion());return a},m.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8)},m.enabled=!m.emulated.pushState,m.bugs={setHash:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),safariPoll:Boolean(!m.emulated.pushState&&e.vendor==="Apple Computer, Inc."&&/AppleWebKit\/5([0-2]|3[0-3])/.test(e.userAgent)),ieDoubleCheck:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8),hashEscape:Boolean(m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<7)},m.isEmptyObject=function(a){for(var b in a)return!1;return!0},m.cloneObject=function(a){var b,c;return a?(b=k.stringify(a),c=k.parse(b)):c={},c},m.getRootUrl=function(){var a=d.location.protocol+"//"+(d.location.hostname||d.location.host);if(d.location.port||!1)a+=":"+d.location.port;return a+="/",a},m.getBaseHref=function(){var a=d.getElementsByTagName("base"),b=null,c="";return a.length===1&&(b=a[0],c=b.href.replace(/[^\/]+$/,"")),c=c.replace(/\/+$/,""),c&&(c+="/"),c},m.getBaseUrl=function(){var a=m.getBaseHref()||m.getBasePageUrl()||m.getRootUrl();return a},m.getPageUrl=function(){var a=m.getState(!1,!1),b=(a||{}).url||d.location.href,c;return c=b.replace(/\/+$/,"").replace(/[^\/]+$/,function(a,b,c){return/\./.test(a)?a:a+"/"}),c},m.getBasePageUrl=function(){var a=d.location.href.replace(/[#\?].*/,"").replace(/[^\/]+$/,function(a,b,c){return/[^\/]$/.test(a)?"":a}).replace(/\/+$/,"")+"/";return a},m.getFullUrl=function(a,b){var c=a,d=a.substring(0,1);return b=typeof b=="undefined"?!0:b,/[a-z]+\:\/\//.test(a)||(d==="/"?c=m.getRootUrl()+a.replace(/^\/+/,""):d==="#"?c=m.getPageUrl().replace(/#.*/,"")+a:d==="?"?c=m.getPageUrl().replace(/[\?#].*/,"")+a:b?c=m.getBaseUrl()+a.replace(/^(\.\/)+/,""):c=m.getBasePageUrl()+a.replace(/^(\.\/)+/,"")),c.replace(/\#$/,"")},m.getShortUrl=function(a){var b=a,c=m.getBaseUrl(),d=m.getRootUrl();return m.emulated.pushState&&(b=b.replace(c,"")),b=b.replace(d,"/"),m.isTraditionalAnchor(b)&&(b="./"+b),b=b.replace(/^(\.\/)+/g,"./").replace(/\#$/,""),b},m.store={},m.idToState=m.idToState||{},m.stateToId=m.stateToId||{},m.urlToId=m.urlToId||{},m.storedStates=m.storedStates||[],m.savedStates=m.savedStates||[],m.normalizeStore=function(){m.store.idToState=m.store.idToState||{},m.store.urlToId=m.store.urlToId||{},m.store.stateToId=m.store.stateToId||{}},m.getState=function(a,b){typeof a=="undefined"&&(a=!0),typeof b=="undefined"&&(b=!0);var c=m.getLastSavedState();return!c&&b&&(c=m.createStateObject()),a&&(c=m.cloneObject(c),c.url=c.cleanUrl||c.url),c},m.getIdByState=function(a){var b=m.extractId(a.url),c;if(!b){c=m.getStateString(a);if(typeof m.stateToId[c]!="undefined")b=m.stateToId[c];else if(typeof m.store.stateToId[c]!="undefined")b=m.store.stateToId[c];else{for(;;){b=(new Date).getTime()+String(Math.random()).replace(/\D/g,"");if(typeof m.idToState[b]=="undefined"&&typeof m.store.idToState[b]=="undefined")break}m.stateToId[c]=b,m.idToState[b]=a}}return b},m.normalizeState=function(a){var b,c;if(!a||typeof a!="object")a={};if(typeof a.normalized!="undefined")return a;if(!a.data||typeof a.data!="object")a.data={};b={},b.normalized=!0,b.title=a.title||"",b.url=m.getFullUrl(m.unescapeString(a.url||d.location.href)),b.hash=m.getShortUrl(b.url),b.data=m.cloneObject(a.data),b.id=m.getIdByState(b),b.cleanUrl=b.url.replace(/\??\&_suid.*/,""),b.url=b.cleanUrl,c=!m.isEmptyObject(b.data);if(b.title||c)b.hash=m.getShortUrl(b.url).replace(/\??\&_suid.*/,""),/\?/.test(b.hash)||(b.hash+="?"),b.hash+="&_suid="+b.id;return b.hashedUrl=m.getFullUrl(b.hash),(m.emulated.pushState||m.bugs.safariPoll)&&m.hasUrlDuplicate(b)&&(b.url=b.hashedUrl),b},m.createStateObject=function(a,b,c){var d={data:a,title:b,url:c};return d=m.normalizeState(d),d},m.getStateById=function(a){a=String(a);var c=m.idToState[a]||m.store.idToState[a]||b;return c},m.getStateString=function(a){var b,c,d;return b=m.normalizeState(a),c={data:b.data,title:a.title,url:a.url},d=k.stringify(c),d},m.getStateId=function(a){var b,c;return b=m.normalizeState(a),c=b.id,c},m.getHashByState=function(a){var b,c;return b=m.normalizeState(a),c=b.hash,c},m.extractId=function(a){var b,c,d;return c=/(.*)\&_suid=([0-9]+)$/.exec(a),d=c?c[1]||a:a,b=c?String(c[2]||""):"",b||!1},m.isTraditionalAnchor=function(a){var b=!/[\/\?\.]/.test(a);return b},m.extractState=function(a,b){var c=null,d,e;return b=b||!1,d=m.extractId(a),d&&(c=m.getStateById(d)),c||(e=m.getFullUrl(a),d=m.getIdByUrl(e)||!1,d&&(c=m.getStateById(d)),!c&&b&&!m.isTraditionalAnchor(a)&&(c=m.createStateObject(null,null,e))),c},m.getIdByUrl=function(a){var c=m.urlToId[a]||m.store.urlToId[a]||b;return c},m.getLastSavedState=function(){return m.savedStates[m.savedStates.length-1]||b},m.getLastStoredState=function(){return m.storedStates[m.storedStates.length-1]||b},m.hasUrlDuplicate=function(a){var b=!1,c;return c=m.extractState(a.url),b=c&&c.id!==a.id,b},m.storeState=function(a){return m.urlToId[a.url]=a.id,m.storedStates.push(m.cloneObject(a)),a},m.isLastSavedState=function(a){var b=!1,c,d,e;return m.savedStates.length&&(c=a.id,d=m.getLastSavedState(),e=d.id,b=c===e),b},m.saveState=function(a){return m.isLastSavedState(a)?!1:(m.savedStates.push(m.cloneObject(a)),!0)},m.getStateByIndex=function(a){var b=null;return typeof a=="undefined"?b=m.savedStates[m.savedStates.length-1]:a<0?b=m.savedStates[m.savedStates.length+a]:b=m.savedStates[a],b},m.getHash=function(){var a=m.unescapeHash(d.location.hash);return a},m.unescapeString=function(b){var c=b,d;for(;;){d=a.unescape(c);if(d===c)break;c=d}return c},m.unescapeHash=function(a){var b=m.normalizeHash(a);return b=m.unescapeString(b),b},m.normalizeHash=function(a){var b=a.replace(/[^#]*#/,"").replace(/#.*/,"");return b},m.setHash=function(a,b){var c,e,f;return b!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.setHash,args:arguments,queue:b}),!1):(c=m.escapeHash(a),m.busy(!0),e=m.extractState(a,!0),e&&!m.emulated.pushState?m.pushState(e.data,e.title,e.url,!1):d.location.hash!==c&&(m.bugs.setHash?(f=m.getPageUrl(),m.pushState(null,null,f+"#"+c,!1)):d.location.hash=c),m)},m.escapeHash=function(b){var c=m.normalizeHash(b);return c=a.escape(c),m.bugs.hashEscape||(c=c.replace(/\%21/g,"!").replace(/\%26/g,"&").replace(/\%3D/g,"=").replace(/\%3F/g,"?")),c},m.getHashByUrl=function(a){var b=String(a).replace(/([^#]*)#?([^#]*)#?(.*)/,"$2");return b=m.unescapeHash(b),b},m.setTitle=function(a){var b=a.title,c;b||(c=m.getStateByIndex(0),c&&c.url===a.url&&(b=c.title||m.options.initialTitle));try{d.getElementsByTagName("title")[0].innerHTML=b.replace("<","<").replace(">",">").replace(" & "," & ")}catch(e){}return d.title=b,m},m.queues=[],m.busy=function(a){typeof a!="undefined"?m.busy.flag=a:typeof m.busy.flag=="undefined"&&(m.busy.flag=!1);if(!m.busy.flag){h(m.busy.timeout);var b=function(){var a,c,d;if(m.busy.flag)return;for(a=m.queues.length-1;a>=0;--a){c=m.queues[a];if(c.length===0)continue;d=c.shift(),m.fireQueueItem(d),m.busy.timeout=g(b,m.options.busyDelay)}};m.busy.timeout=g(b,m.options.busyDelay)}return m.busy.flag},m.busy.flag=!1,m.fireQueueItem=function(a){return a.callback.apply(a.scope||m,a.args||[])},m.pushQueue=function(a){return m.queues[a.queue||0]=m.queues[a.queue||0]||[],m.queues[a.queue||0].push(a),m},m.queue=function(a,b){return typeof a=="function"&&(a={callback:a}),typeof b!="undefined"&&(a.queue=b),m.busy()?m.pushQueue(a):m.fireQueueItem(a),m},m.clearQueue=function(){return m.busy.flag=!1,m.queues=[],m},m.stateChanged=!1,m.doubleChecker=!1,m.doubleCheckComplete=function(){return m.stateChanged=!0,m.doubleCheckClear(),m},m.doubleCheckClear=function(){return m.doubleChecker&&(h(m.doubleChecker),m.doubleChecker=!1),m},m.doubleCheck=function(a){return m.stateChanged=!1,m.doubleCheckClear(),m.bugs.ieDoubleCheck&&(m.doubleChecker=g(function(){return m.doubleCheckClear(),m.stateChanged||a(),!0},m.options.doubleCheckInterval)),m},m.safariStatePoll=function(){var b=m.extractState(d.location.href),c;if(!m.isLastSavedState(b))c=b;else return;return c||(c=m.createStateObject()),m.Adapter.trigger(a,"popstate"),m},m.back=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.back,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.back(!1)}),n.go(-1),!0)},m.forward=function(a){return a!==!1&&m.busy()?(m.pushQueue({scope:m,callback:m.forward,args:arguments,queue:a}),!1):(m.busy(!0),m.doubleCheck(function(){m.forward(!1)}),n.go(1),!0)},m.go=function(a,b){var c;if(a>0)for(c=1;c<=a;++c)m.forward(b);else{if(!(a<0))throw new Error("History.go: History.go requires a positive or negative integer passed.");for(c=-1;c>=a;--c)m.back(b)}return m};if(m.emulated.pushState){var o=function(){};m.pushState=m.pushState||o,m.replaceState=m.replaceState||o}else m.onPopState=function(b,c){var e=!1,f=!1,g,h;return m.doubleCheckComplete(),g=m.getHash(),g?(h=m.extractState(g||d.location.href,!0),h?m.replaceState(h.data,h.title,h.url,!1):(m.Adapter.trigger(a,"anchorchange"),m.busy(!1)),m.expectedStateId=!1,!1):(e=m.Adapter.extractEventData("state",b,c)||!1,e?f=m.getStateById(e):m.expectedStateId?f=m.getStateById(m.expectedStateId):f=m.extractState(d.location.href),f||(f=m.createStateObject(null,null,d.location.href)),m.expectedStateId=!1,m.isLastSavedState(f)?(m.busy(!1),!1):(m.storeState(f),m.saveState(f),m.setTitle(f),m.Adapter.trigger(a,"statechange"),m.busy(!1),!0))},m.Adapter.bind(a,"popstate",m.onPopState),m.pushState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.pushState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.pushState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0},m.replaceState=function(b,c,d,e){if(m.getHashByUrl(d)&&m.emulated.pushState)throw new Error("History.js does not support states with fragement-identifiers (hashes/anchors).");if(e!==!1&&m.busy())return m.pushQueue({scope:m,callback:m.replaceState,args:arguments,queue:e}),!1;m.busy(!0);var f=m.createStateObject(b,c,d);return m.isLastSavedState(f)?m.busy(!1):(m.storeState(f),m.expectedStateId=f.id,n.replaceState(f.id,f.title,f.url),m.Adapter.trigger(a,"popstate")),!0};if(f){try{m.store=k.parse(f.getItem("History.store"))||{}}catch(p){m.store={}}m.normalizeStore()}else m.store={},m.normalizeStore();m.Adapter.bind(a,"beforeunload",m.clearAllIntervals),m.Adapter.bind(a,"unload",m.clearAllIntervals),m.saveState(m.storeState(m.extractState(d.location.href,!0))),f&&(m.onUnload=function(){var a,b;try{a=k.parse(f.getItem("History.store"))||{}}catch(c){a={}}a.idToState=a.idToState||{},a.urlToId=a.urlToId||{},a.stateToId=a.stateToId||{};for(b in m.idToState){if(!m.idToState.hasOwnProperty(b))continue;a.idToState[b]=m.idToState[b]}for(b in m.urlToId){if(!m.urlToId.hasOwnProperty(b))continue;a.urlToId[b]=m.urlToId[b]}for(b in m.stateToId){if(!m.stateToId.hasOwnProperty(b))continue;a.stateToId[b]=m.stateToId[b]}m.store=a,m.normalizeStore(),f.setItem("History.store",k.stringify(a))},m.intervalList.push(i(m.onUnload,m.options.storeInterval)),m.Adapter.bind(a,"beforeunload",m.onUnload),m.Adapter.bind(a,"unload",m.onUnload));if(!m.emulated.pushState){m.bugs.safariPoll&&m.intervalList.push(i(m.safariStatePoll,m.options.safariPollInterval));if(e.vendor==="Apple Computer, Inc."||(e.appCodeName||"")==="Mozilla")m.Adapter.bind(a,"hashchange",function(){m.Adapter.trigger(a,"popstate")}),m.getHash()&&m.Adapter.onDomLoad(function(){m.Adapter.trigger(a,"hashchange")})}},m.init()})(window) \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-apollo.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-apollo.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\n\r]*/,null,"#"],["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/, +null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[ES]?BANK=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[!-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["apollo","agc","aea"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-clj.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-clj.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,18 @@ +/* + Copyright (C) 2011 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[([{]+/,a,"([{"],["clo",/^[)\]}]+/,a,")]}"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,a], +["typ",/^:[\dA-Za-z-]+/]]),["clj"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-css.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-css.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", +/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-go.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-go.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-hs.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-hs.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n \r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/, +null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-lisp.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-lisp.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a], +["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-lua.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-lua.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i], +["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-ml.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-ml.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], +["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-n.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-n.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,4 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/, +a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, +a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-proto.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-proto.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-scala.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-scala.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], +["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-sql.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-sql.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i, +null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-tex.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-tex.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-vb.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-vb.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r \xa0

"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“”'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i, +null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-vhdl.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-vhdl.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r \xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, +null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i], +["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-wiki.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-wiki.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t \xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); +PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-xq.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-xq.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[\w-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^@[\w-]+/],["tag",/^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["com",/^\(:[\S\s]*?:\)/],["pln",/^[(),/;[\]{}]$/],["str",/^(?:"(?:[^"\\{]|\\[\S\s])*(?:"|$)|'(?:[^'\\{]|\\[\S\s])*(?:'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/], +["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/], +["pln",/^[\w:-]+/],["pln",/^[\t\n\r \xa0]+/]]),["xq","xquery"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/lang-yaml.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/lang-yaml.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,2 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/prettify.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/prettify.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/prettify/prettify.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/prettify/prettify.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p0&&(g.splice(m-1,2),m-=2);m=q.pkgs[g=b[0]];b=b.join("/");m&&b===g+"/"+m.main&&(b=g)}else b.indexOf("./")=== +0&&(b=b.substring(2));return b}function l(b,f){var g=b?b.indexOf("!"):-1,m=null,a=f?f.name:null,h=b,e,d;g!==-1&&(m=b.substring(0,g),b=b.substring(g+1,b.length));m&&(m=c(m,a));b&&(m?e=(g=n[m])&&g.normalize?g.normalize(b,function(b){return c(b,a)}):c(b,a):(e=c(b,a),d=G[e],d||(d=i.nameToUrl(b,null,f),G[e]=d)));return{prefix:m,name:e,parentMap:f,url:d,originalName:h,fullName:m?m+"!"+(e||""):e}}function j(){var b=!0,f=q.priorityWait,g,a;if(f){for(a=0;g=f[a];a++)if(!s[g]){b=!1;break}b&&delete q.priorityWait}return b} +function k(b,f,g){return function(){var a=ha.call(arguments,0),c;if(g&&K(c=a[a.length-1]))c.__requireJsBuild=!0;a.push(f);return b.apply(null,a)}}function t(b,f,g){f=k(g||i.require,b,f);$(f,{nameToUrl:k(i.nameToUrl,b),toUrl:k(i.toUrl,b),defined:k(i.requireDefined,b),specified:k(i.requireSpecified,b),isBrowser:d.isBrowser});return f}function p(b){var f,g,a,c=b.callback,h=b.map,e=h.fullName,ca=b.deps;a=b.listeners;var j=q.requireExecCb||d.execCb;if(c&&K(c)){if(q.catchError.define)try{g=j(e,b.callback, +ca,n[e])}catch(k){f=k}else g=j(e,b.callback,ca,n[e]);if(e)(c=b.cjsModule)&&c.exports!==r&&c.exports!==n[e]?g=n[e]=b.cjsModule.exports:g===r&&b.usingExports?g=n[e]:(n[e]=g,H[e]&&(T[e]=!0))}else e&&(g=n[e]=c,H[e]&&(T[e]=!0));if(x[b.id])delete x[b.id],b.isDone=!0,i.waitCount-=1,i.waitCount===0&&(J=[]);delete M[e];if(d.onResourceLoad&&!b.placeholder)d.onResourceLoad(i,h,b.depArray);if(f)return g=(e?l(e).url:"")||f.fileName||f.sourceURL,a=f.moduleTree,f=P("defineerror",'Error evaluating module "'+e+'" at location "'+ +g+'":\n'+f+"\nfileName:"+g+"\nlineNumber: "+(f.lineNumber||f.line),f),f.moduleName=e,f.moduleTree=a,d.onError(f);for(f=0;c=a[f];f++)c(g);return r}function u(b,f){return function(g){b.depDone[f]||(b.depDone[f]=!0,b.deps[f]=g,b.depCount-=1,b.depCount||p(b))}}function o(b,f){var g=f.map,a=g.fullName,c=g.name,h=N[b]||(N[b]=n[b]),e;if(!f.loading)f.loading=!0,e=function(b){f.callback=function(){return b};p(f);s[f.id]=!0;A()},e.fromText=function(b,f){var g=Q;s[b]=!1;i.scriptCount+=1;i.fake[b]=!0;g&&(Q=!1); +d.exec(f);g&&(Q=!0);i.completeLoad(b)},a in n?e(n[a]):h.load(c,t(g.parentMap,!0,function(b,a){var c=[],e,m;for(e=0;m=b[e];e++)m=l(m,g.parentMap),b[e]=m.fullName,m.prefix||c.push(b[e]);f.moduleDeps=(f.moduleDeps||[]).concat(c);return i.require(b,a)}),e,q)}function y(b){x[b.id]||(x[b.id]=b,J.push(b),i.waitCount+=1)}function D(b){this.listeners.push(b)}function v(b,f){var g=b.fullName,a=b.prefix,c=a?N[a]||(N[a]=n[a]):null,h,e;g&&(h=M[g]);if(!h&&(e=!0,h={id:(a&&!c?O++ +"__p@:":"")+(g||"__r@"+O++),map:b, +depCount:0,depDone:[],depCallbacks:[],deps:[],listeners:[],add:D},B[h.id]=!0,g&&(!a||N[a])))M[g]=h;a&&!c?(g=l(a),a in n&&!n[a]&&(delete n[a],delete R[g.url]),a=v(g,!0),a.add(function(){var f=l(b.originalName,b.parentMap),f=v(f,!0);h.placeholder=!0;f.add(function(b){h.callback=function(){return b};p(h)})})):e&&f&&(s[h.id]=!1,i.paused.push(h),y(h));return h}function C(b,f,a,c){var b=l(b,c),d=b.name,h=b.fullName,e=v(b),j=e.id,k=e.deps,o;if(h){if(h in n||s[j]===!0||h==="jquery"&&q.jQuery&&q.jQuery!== +a().fn.jquery)return;B[j]=!0;s[j]=!0;h==="jquery"&&a&&W(a())}e.depArray=f;e.callback=a;for(a=0;a0)return r;if(q.priorityWait)if(j())A();else return r;for(h in s)if(!(h in L)&&(c=!0,!s[h]))if(b)a+=h+" ";else if(l=!0,h.indexOf("!")===-1){k=[];break}else(e=M[h]&&M[h].moduleDeps)&&k.push.apply(k,e);if(!c&&!i.waitCount)return r;if(b&&a)return b=P("timeout","Load timeout for modules: "+a),b.requireType="timeout",b.requireModules=a,b.contextName=i.contextName,d.onError(b); +if(l&&k.length)for(a=0;h=x[k[a]];a++)if(h=F(h,{})){z(h,{});break}if(!b&&(l||i.scriptCount)){if((I||da)&&!X)X=setTimeout(function(){X=0;E()},50);return r}if(i.waitCount){for(a=0;h=J[a];a++)z(h,{});i.paused.length&&A();Y<5&&(Y+=1,E())}Y=0;d.checkReadyState();return r}var i,A,q={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},catchError:{}},S=[],B={require:!0,exports:!0,module:!0},G={},n={},s={},x={},J=[],R={},O=0,M={},N={},H={},T={},Z=0;W=function(b){if(!i.jQuery&&(b=b||(typeof jQuery!=="undefined"?jQuery: +null))&&!(q.jQuery&&b.fn.jquery!==q.jQuery)&&("holdReady"in b||"readyWait"in b))if(i.jQuery=b,w(["jquery",[],function(){return jQuery}]),i.scriptCount)V(b,!0),i.jQueryIncremented=!0};A=function(){var b,a,c,l,k,h;i.takeGlobalQueue();Z+=1;if(i.scriptCount<=0)i.scriptCount=0;for(;S.length;)if(b=S.shift(),b[0]===null)return d.onError(P("mismatch","Mismatched anonymous define() module: "+b[b.length-1]));else w(b);if(!q.priorityWait||j())for(;i.paused.length;){k=i.paused;i.pausedCount+=k.length;i.paused= +[];for(l=0;b=k[l];l++)a=b.map,c=a.url,h=a.fullName,a.prefix?o(a.prefix,b):!R[c]&&!s[h]&&((q.requireLoad||d.load)(i,h,c),c.indexOf("empty:")!==0&&(R[c]=!0));i.startTime=(new Date).getTime();i.pausedCount-=k.length}Z===1&&E();Z-=1;return r};i={contextName:a,config:q,defQueue:S,waiting:x,waitCount:0,specified:B,loaded:s,urlMap:G,urlFetched:R,scriptCount:0,defined:n,paused:[],pausedCount:0,plugins:N,needFullExec:H,fake:{},fullExec:T,managerCallbacks:M,makeModuleMap:l,normalize:c,configure:function(b){var a, +c,d;b.baseUrl&&b.baseUrl.charAt(b.baseUrl.length-1)!=="/"&&(b.baseUrl+="/");a=q.paths;d=q.pkgs;$(q,b,!0);if(b.paths){for(c in b.paths)c in L||(a[c]=b.paths[c]);q.paths=a}if((a=b.packagePaths)||b.packages){if(a)for(c in a)c in L||aa(d,a[c],c);b.packages&&aa(d,b.packages);q.pkgs=d}if(b.priority)c=i.requireWait,i.requireWait=!1,A(),i.require(b.priority),A(),i.requireWait=c,q.priorityWait=b.priority;if(b.deps||b.callback)i.require(b.deps||[],b.callback)},requireDefined:function(b,a){return l(b,a).fullName in +n},requireSpecified:function(b,a){return l(b,a).fullName in B},require:function(b,c,g){if(typeof b==="string"){if(K(c))return d.onError(P("requireargs","Invalid require call"));if(d.get)return d.get(i,b,c);c=l(b,c);b=c.fullName;return!(b in n)?d.onError(P("notloaded","Module name '"+c.fullName+"' has not been loaded yet for context: "+a)):n[b]}(b&&b.length||c)&&C(null,b,c,g);if(!i.requireWait)for(;!i.scriptCount&&i.paused.length;)A();return i.require},takeGlobalQueue:function(){U.length&&(ja.apply(i.defQueue, +[i.defQueue.length-1,0].concat(U)),U=[])},completeLoad:function(b){var a;for(i.takeGlobalQueue();S.length;)if(a=S.shift(),a[0]===null){a[0]=b;break}else if(a[0]===b)break;else w(a),a=null;a?w(a):w([b,[],b==="jquery"&&typeof jQuery!=="undefined"?function(){return jQuery}:null]);d.isAsync&&(i.scriptCount-=1);A();d.isAsync||(i.scriptCount-=1)},toUrl:function(b,a){var c=b.lastIndexOf("."),d=null;c!==-1&&(d=b.substring(c,b.length),b=b.substring(0,c));return i.nameToUrl(b,d,a)},nameToUrl:function(b,a,g){var l, +k,h,e,j=i.config,b=c(b,g&&g.fullName);if(d.jsExtRegExp.test(b))a=b+(a?a:"");else{l=j.paths;k=j.pkgs;g=b.split("/");for(e=g.length;e>0;e--)if(h=g.slice(0,e).join("/"),l[h]){g.splice(0,e,l[h]);break}else if(h=k[h]){b=b===h.name?h.location+"/"+h.main:h.location;g.splice(0,e,b);break}a=g.join("/")+(a||".js");a=(a.charAt(0)==="/"||a.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+a}return j.urlArgs?a+((a.indexOf("?")===-1?"?":"&")+j.urlArgs):a}};i.jQueryCheck=W;i.resume=A;return i}function ka(){var a,c,d;if(C&&C.readyState=== +"interactive")return C;a=document.getElementsByTagName("script");for(c=a.length-1;c>-1&&(d=a[c]);c--)if(d.readyState==="interactive")return C=d;return null}var la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/require\(\s*["']([^'"\s]+)["']\s*\)/g,fa=/^\.\//,ba=/\.js$/,O=Object.prototype.toString,u=Array.prototype,ha=u.slice,ja=u.splice,I=!!(typeof window!=="undefined"&&navigator&&document),da=!I&&typeof importScripts!=="undefined",na=I&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/, +ea=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",L={},D={},U=[],C=null,Y=0,Q=!1,ia={require:!0,module:!0,exports:!0},d,u={},J,y,v,E,o,w,F,B,z,W,X;if(typeof define==="undefined"){if(typeof requirejs!=="undefined")if(K(requirejs))return;else u=requirejs,requirejs=r;typeof require!=="undefined"&&!K(require)&&(u=require,require=r);d=requirejs=function(a,c,d){var j="_",k;!G(a)&&typeof a!=="string"&&(k=a,G(c)?(a=c,c=d):a=[]);if(k&&k.context)j=k.context;d=D[j]||(D[j]=ga(j));k&&d.configure(k); +return d.require(a,c)};d.config=function(a){return d(a)};require||(require=d);d.toUrl=function(a){return D._.toUrl(a)};d.version="1.0.8";d.jsExtRegExp=/^\/|:|\?|\.js$/;y=d.s={contexts:D,skipAsync:{}};if(d.isAsync=d.isBrowser=I)if(v=y.head=document.getElementsByTagName("head")[0],E=document.getElementsByTagName("base")[0])v=y.head=E.parentNode;d.onError=function(a){throw a;};d.load=function(a,c,l){d.resourcesReady(!1);a.scriptCount+=1;d.attach(l,a,c);if(a.jQuery&&!a.jQueryIncremented)V(a.jQuery,!0), +a.jQueryIncremented=!0};define=function(a,c,d){var j,k;typeof a!=="string"&&(d=c,c=a,a=null);G(c)||(d=c,c=[]);!c.length&&K(d)&&d.length&&(d.toString().replace(la,"").replace(ma,function(a,d){c.push(d)}),c=(d.length===1?["require"]:["require","exports","module"]).concat(c));if(Q&&(j=J||ka()))a||(a=j.getAttribute("data-requiremodule")),k=D[j.getAttribute("data-requirecontext")];(k?k.defQueue:U).push([a,c,d]);return r};define.amd={multiversion:!0,plugins:!0,jQuery:!0};d.exec=function(a){return eval(a)}; +d.execCb=function(a,c,d,j){return c.apply(j,d)};d.addScriptToDom=function(a){J=a;E?v.insertBefore(a,E):v.appendChild(a);J=null};d.onScriptLoad=function(a){var c=a.currentTarget||a.srcElement,l;if(a.type==="load"||c&&na.test(c.readyState))C=null,a=c.getAttribute("data-requirecontext"),l=c.getAttribute("data-requiremodule"),D[a].completeLoad(l),c.detachEvent&&!ea?c.detachEvent("onreadystatechange",d.onScriptLoad):c.removeEventListener("load",d.onScriptLoad,!1)};d.attach=function(a,c,l,j,k,o){var p; +if(I)return j=j||d.onScriptLoad,p=c&&c.config&&c.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),p.type=k||c&&c.config.scriptType||"text/javascript",p.charset="utf-8",p.async=!y.skipAsync[a],c&&p.setAttribute("data-requirecontext",c.contextName),p.setAttribute("data-requiremodule",l),p.attachEvent&&!(p.attachEvent.toString&&p.attachEvent.toString().indexOf("[native code]")<0)&&!ea?(Q=!0,o?p.onreadystatechange=function(){if(p.readyState=== +"loaded")p.onreadystatechange=null,p.attachEvent("onreadystatechange",j),o(p)}:p.attachEvent("onreadystatechange",j)):p.addEventListener("load",j,!1),p.src=a,o||d.addScriptToDom(p),p;else da&&(importScripts(a),c.completeLoad(l));return null};if(I){o=document.getElementsByTagName("script");for(B=o.length-1;B>-1&&(w=o[B]);B--){if(!v)v=w.parentNode;if(F=w.getAttribute("data-main")){if(!u.baseUrl)o=F.split("/"),w=o.pop(),o=o.length?o.join("/")+"/":"./",u.baseUrl=o,F=w.replace(ba,"");u.deps=u.deps?u.deps.concat(F): +[F];break}}}d.checkReadyState=function(){var a=y.contexts,c;for(c in a)if(!(c in L)&&a[c].waitCount)return;d.resourcesReady(!0)};d.resourcesReady=function(a){var c,l;d.resourcesDone=a;if(d.resourcesDone)for(l in a=y.contexts,a)if(!(l in L)&&(c=a[l],c.jQueryIncremented))V(c.jQuery,!1),c.jQueryIncremented=!1};d.pageLoaded=function(){if(document.readyState!=="complete")document.readyState="complete"};if(I&&document.addEventListener&&!document.readyState)document.readyState="loading",window.addEventListener("load", +d.pageLoaded,!1);d(u);if(d.isAsync&&typeof setTimeout!=="undefined")z=y.contexts[u.context||"_"],z.requireWait=!0,setTimeout(function(){z.requireWait=!1;z.scriptCount||z.resume();d.checkReadyState()},0)}})(); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/slide-controller.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/slide-controller.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,109 @@ +(function(window) { + +var ORIGIN_ = location.protocol + '//' + location.host; + +function SlideController() { + this.popup = null; + this.isPopup = window.opener; + + if (this.setupDone()) { + window.addEventListener('message', this.onMessage_.bind(this), false); + + // Close popups if we reload the main window. + window.addEventListener('beforeunload', function(e) { + if (this.popup) { + this.popup.close(); + } + }.bind(this), false); + } +} + +SlideController.PRESENTER_MODE_PARAM = 'presentme'; + +SlideController.prototype.setupDone = function() { + var params = location.search.substring(1).split('&').map(function(el) { + return el.split('='); + }); + + var presentMe = null; + for (var i = 0, param; param = params[i]; ++i) { + if (param[0].toLowerCase() == SlideController.PRESENTER_MODE_PARAM) { + presentMe = param[1] == 'true'; + break; + } + } + + if (presentMe !== null) { + localStorage.ENABLE_PRESENTOR_MODE = presentMe; + // TODO: use window.history.pushState to update URL instead of the redirect. + if (window.history.replaceState) { + window.history.replaceState({}, '', location.pathname); + } else { + location.replace(location.pathname); + return false; + } + } + + var enablePresenterMode = localStorage.getItem('ENABLE_PRESENTOR_MODE'); + if (enablePresenterMode && JSON.parse(enablePresenterMode)) { + // Only open popup from main deck. Don't want recursive popup opening! + if (!this.isPopup) { + var opts = 'menubar=no,location=yes,resizable=yes,scrollbars=no,status=no'; + this.popup = window.open(location.href, 'mywindow', opts); + + // Loading in the popup? Trigger the hotkey for turning presenter mode on. + this.popup.addEventListener('load', function(e) { + var evt = this.popup.document.createEvent('Event'); + evt.initEvent('keydown', true, true); + evt.keyCode = 'P'.charCodeAt(0); + this.popup.document.dispatchEvent(evt); + // this.popup.document.body.classList.add('with-notes'); + // document.body.classList.add('popup'); + }.bind(this), false); + } + } + + return true; +} + +SlideController.prototype.onMessage_ = function(e) { + var data = e.data; + + // Restrict messages to being from this origin. Allow local developmet + // from file:// though. + // TODO: It would be dope if FF implemented location.origin! + if (e.origin != ORIGIN_ && ORIGIN_.indexOf('file://') != 0) { + alert('Someone tried to postMessage from an unknown origin'); + return; + } + + // if (e.source.location.hostname != 'localhost') { + // alert('Someone tried to postMessage from an unknown origin'); + // return; + // } + + if ('keyCode' in data) { + var evt = document.createEvent('Event'); + evt.initEvent('keydown', true, true); + evt.keyCode = data.keyCode; + document.dispatchEvent(evt); + } +}; + +SlideController.prototype.sendMsg = function(msg) { + // // Send message to popup window. + // if (this.popup) { + // this.popup.postMessage(msg, ORIGIN_); + // } + + // Send message to main window. + if (this.isPopup) { + // TODO: It would be dope if FF implemented location.origin. + window.opener.postMessage(msg, '*'); + } +}; + +window.SlideController = SlideController; + +})(window); + diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/slide-deck.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/slide-deck.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,768 @@ +/** + * @authors Luke Mahe + * @authors Eric Bidelman + * @fileoverview TODO + */ +document.cancelFullScreen = document.webkitCancelFullScreen || + document.mozCancelFullScreen; + +/** + * @constructor + */ +function SlideDeck(el) { + this.curSlide_ = 0; + this.prevSlide_ = 0; + this.config_ = null; + this.container = el || document.querySelector('slides'); + this.slides = []; + this.controller = null; + + this.getCurrentSlideFromHash_(); + + // Call this explicitly. Modernizr.load won't be done until after DOM load. + this.onDomLoaded_.bind(this)(); +} + +/** + * @const + * @private + */ +SlideDeck.prototype.SLIDE_CLASSES_ = [ + 'far-past', 'past', 'current', 'next', 'far-next']; + +/** + * @const + * @private + */ +SlideDeck.prototype.CSS_DIR_ = 'theme/css/'; + +/** + * @private + */ +SlideDeck.prototype.getCurrentSlideFromHash_ = function() { + var slideNo = parseInt(document.location.hash.substr(1)); + + if (slideNo) { + this.curSlide_ = slideNo - 1; + } else { + this.curSlide_ = 0; + } +}; + +/** + * @param {number} slideNo + */ +SlideDeck.prototype.loadSlide = function(slideNo) { + if (slideNo) { + this.curSlide_ = slideNo - 1; + this.updateSlides_(); + } +}; + +/** + * @private + */ +SlideDeck.prototype.onDomLoaded_ = function(e) { + document.body.classList.add('loaded'); // Add loaded class for templates to use. + + this.slides = this.container.querySelectorAll('slide:not([hidden]):not(.backdrop)'); + + // If we're on a smartphone, apply special sauce. + if (Modernizr.mq('only screen and (max-device-width: 480px)')) { + // var style = document.createElement('link'); + // style.rel = 'stylesheet'; + // style.type = 'text/css'; + // style.href = this.CSS_DIR_ + 'phone.css'; + // document.querySelector('head').appendChild(style); + + // No need for widescreen layout on a phone. + this.container.classList.remove('layout-widescreen'); + } + + this.loadConfig_(SLIDE_CONFIG); + this.addEventListeners_(); + this.updateSlides_(); + + // Add slide numbers and total slide count metadata to each slide. + var that = this; + for (var i = 0, slide; slide = this.slides[i]; ++i) { + slide.dataset.slideNum = i + 1; + slide.dataset.totalSlides = this.slides.length; + + slide.addEventListener('click', function(e) { + if (document.body.classList.contains('overview')) { + that.loadSlide(this.dataset.slideNum); + e.preventDefault(); + window.setTimeout(function() { + that.toggleOverview(); + }, 500); + } + }, false); + } + + // Note: this needs to come after addEventListeners_(), which adds a + // 'keydown' listener that this controller relies on. + // Also, no need to set this up if we're on mobile. + if (!Modernizr.touch) { + this.controller = new SlideController(this); + if (this.controller.isPopup) { + document.body.classList.add('popup'); + } + } +}; + +/** + * @private + */ +SlideDeck.prototype.addEventListeners_ = function() { + document.addEventListener('keydown', this.onBodyKeyDown_.bind(this), false); + window.addEventListener('popstate', this.onPopState_.bind(this), false); + + // var transEndEventNames = { + // 'WebkitTransition': 'webkitTransitionEnd', + // 'MozTransition': 'transitionend', + // 'OTransition': 'oTransitionEnd', + // 'msTransition': 'MSTransitionEnd', + // 'transition': 'transitionend' + // }; + // + // // Find the correct transitionEnd vendor prefix. + // window.transEndEventName = transEndEventNames[ + // Modernizr.prefixed('transition')]; + // + // // When slides are done transitioning, kickoff loading iframes. + // // Note: we're only looking at a single transition (on the slide). This + // // doesn't include autobuilds the slides may have. Also, if the slide + // // transitions on multiple properties (e.g. not just 'all'), this doesn't + // // handle that case. + // this.container.addEventListener(transEndEventName, function(e) { + // this.enableSlideFrames_(this.curSlide_); + // }.bind(this), false); + + // document.addEventListener('slideenter', function(e) { + // var slide = e.target; + // window.setTimeout(function() { + // this.enableSlideFrames_(e.slideNumber); + // this.enableSlideFrames_(e.slideNumber + 1); + // }.bind(this), 300); + // }.bind(this), false); +}; + +/** + * @private + * @param {Event} e The pop event. + */ +SlideDeck.prototype.onPopState_ = function(e) { + if (e.state != null) { + this.curSlide_ = e.state; + this.updateSlides_(true); + } +}; + +/** + * @param {Event} e + */ +SlideDeck.prototype.onBodyKeyDown_ = function(e) { + if (/^(input|textarea)$/i.test(e.target.nodeName) || + e.target.isContentEditable) { + return; + } + + // Forward keydowns to the main slides if we're the popup. + if (this.controller && this.controller.isPopup) { + this.controller.sendMsg({keyCode: e.keyCode}); + } + + switch (e.keyCode) { + case 13: // Enter + if (document.body.classList.contains('overview')) { + this.toggleOverview(); + } + break; + + case 39: // right arrow + case 32: // space + case 34: // PgDn + this.nextSlide(); + e.preventDefault(); + break; + + case 37: // left arrow + case 8: // Backspace + case 33: // PgUp + this.prevSlide(); + e.preventDefault(); + break; + + case 40: // down arrow + this.nextSlide(); + e.preventDefault(); + break; + + case 38: // up arrow + this.prevSlide(); + e.preventDefault(); + break; + + case 72: // H: Toggle code highlighting + document.body.classList.toggle('highlight-code'); + break; + + case 79: // O: Toggle overview + this.toggleOverview(); + break; + + case 80: // P + if (this.controller && this.controller.isPopup) { + document.body.classList.toggle('with-notes'); + } else if (this.controller && !this.controller.popup) { + document.body.classList.toggle('with-notes'); + } + break; + + case 82: // R + // TODO: implement refresh on main slides when popup is refreshed. + break; + + case 27: // ESC: Hide notes and highlighting + document.body.classList.remove('with-notes'); + document.body.classList.remove('highlight-code'); + + if (document.body.classList.contains('overview')) { + this.toggleOverview(); + } + break; + + case 70: // F: Toggle fullscreen + // Only respect 'f' on body. Don't want to capture keys from an . + // Also, ignore browser's fullscreen shortcut (cmd+shift+f) so we don't + // get trapped in fullscreen! + if (e.target == document.body && !(e.shiftKey && e.metaKey)) { + if (document.mozFullScreen !== undefined && !document.mozFullScreen) { + document.body.mozRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); + } else if (document.webkitIsFullScreen !== undefined && !document.webkitIsFullScreen) { + document.body.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + document.cancelFullScreen(); + } + } + break; + + case 87: // W: Toggle widescreen + // Only respect 'w' on body. Don't want to capture keys from an . + if (e.target == document.body && !(e.shiftKey && e.metaKey)) { + this.container.classList.toggle('layout-widescreen'); + } + break; + } +}; + +/** + * + */ +SlideDeck.prototype.focusOverview_ = function() { + var overview = document.body.classList.contains('overview'); + + for (var i = 0, slide; slide = this.slides[i]; i++) { + slide.style[Modernizr.prefixed('transform')] = overview ? + 'translateZ(-2500px) translate(' + (( i - this.curSlide_ ) * 105) + + '%, 0%)' : ''; + } +}; + +/** + */ +SlideDeck.prototype.toggleOverview = function() { + document.body.classList.toggle('overview'); + + this.focusOverview_(); +}; + +/** + * @private + */ +SlideDeck.prototype.loadConfig_ = function(config) { + if (!config) { + return; + } + + this.config_ = config; + + var settings = this.config_.settings; + + this.loadTheme_(settings.theme || []); + + if (settings.favIcon) { + this.addFavIcon_(settings.favIcon); + } + + // Prettyprint. Default to on. + if (!!!('usePrettify' in settings) || settings.usePrettify) { + prettyPrint(); + } + + if (settings.analytics) { + this.loadAnalytics_(); + } + + if (settings.fonts) { + this.addFonts_(settings.fonts); + } + + // Builds. Default to on. + if (!!!('useBuilds' in settings) || settings.useBuilds) { + this.makeBuildLists_(); + } + + if (settings.title) { + document.title = settings.title.replace(//, ' ') + ' - Google IO 2012'; + document.querySelector('[data-config-title]').innerHTML = settings.title; + } + + if (settings.subtitle) { + document.querySelector('[data-config-subtitle]').innerHTML = settings.subtitle; + } + + if (this.config_.presenters) { + var presenters = this.config_.presenters; + var dataConfigContact = document.querySelector('[data-config-contact]'); + + var html = []; + if (presenters.length == 1) { + var p = presenters[0]; + + html = [p.name, p.company].join('
                  '); + + var gplus = p.gplus ? 'g+' + p.gplus.replace(/https?:\/\//, '') + '' : ''; + + var twitter = p.twitter ? 'twitter' + + '' + + p.twitter + '' : ''; + + var www = p.www ? 'www' + p.www.replace(/https?:\/\//, '') + '' : ''; + + var github = p.github ? 'github' + p.github.replace(/https?:\/\//, '') + '' : ''; + + var html2 = [gplus, twitter, www, github].join('
                  '); + + if (dataConfigContact) { + dataConfigContact.innerHTML = html2; + } + } else { + for (var i = 0, p; p = presenters[i]; ++i) { + html.push(p.name + ' - ' + p.company); + } + html = html.join('
                  '); + if (dataConfigContact) { + dataConfigContact.innerHTML = html; + } + } + + var dataConfigPresenter = document.querySelector('[data-config-presenter]'); + if (dataConfigPresenter) { + document.querySelector('[data-config-presenter]').innerHTML = html; + } + } + + /* Left/Right tap areas. Default to including. */ + if (!!!('enableSlideAreas' in settings) || settings.enableSlideAreas) { + var el = document.createElement('div'); + el.classList.add('slide-area'); + el.id = 'prev-slide-area'; + el.addEventListener('click', this.prevSlide.bind(this), false); + this.container.appendChild(el); + + var el = document.createElement('div'); + el.classList.add('slide-area'); + el.id = 'next-slide-area'; + el.addEventListener('click', this.nextSlide.bind(this), false); + this.container.appendChild(el); + } + + if (Modernizr.touch && (!!!('enableTouch' in settings) || + settings.enableTouch)) { + var self = this; + + // Note: this prevents mobile zoom in/out but prevents iOS from doing + // it's crazy scroll over effect and disaligning the slides. + window.addEventListener('touchstart', function(e) { + e.preventDefault(); + }, false); + + var hammer = new Hammer(this.container); + hammer.ondragend = function(e) { + if (e.direction == 'right' || e.direction == 'down') { + self.prevSlide(); + } else if (e.direction == 'left' || e.direction == 'up') { + self.nextSlide(); + } + }; + } +}; + +/** + * @private + * @param {Array.} fonts + */ +SlideDeck.prototype.addFonts_ = function(fonts) { + var el = document.createElement('link'); + el.rel = 'stylesheet'; + el.href = ('https:' == document.location.protocol ? 'https' : 'http') + + '://fonts.googleapis.com/css?family=' + fonts.join('|') + '&v2'; + document.querySelector('head').appendChild(el); +}; + +/** + * @private + */ +SlideDeck.prototype.buildNextItem_ = function() { + var slide = this.slides[this.curSlide_]; + var toBuild = slide.querySelector('.to-build'); + var built = slide.querySelector('.build-current'); + + if (built) { + built.classList.remove('build-current'); + if (built.classList.contains('fade')) { + built.classList.add('build-fade'); + } + } + + if (!toBuild) { + var items = slide.querySelectorAll('.build-fade'); + for (var j = 0, item; item = items[j]; j++) { + item.classList.remove('build-fade'); + } + return false; + } + + toBuild.classList.remove('to-build'); + toBuild.classList.add('build-current'); + + return true; +}; + +/** + * @param {boolean=} opt_dontPush + */ +SlideDeck.prototype.prevSlide = function(opt_dontPush) { + if (this.curSlide_ > 0) { + var bodyClassList = document.body.classList; + bodyClassList.remove('highlight-code'); + + // Toggle off speaker notes if they're showing when we move backwards on the + // main slides. If we're the speaker notes popup, leave them up. + if (this.controller && !this.controller.isPopup) { + bodyClassList.remove('with-notes'); + } else if (!this.controller) { + bodyClassList.remove('with-notes'); + } + + this.prevSlide_ = this.curSlide_--; + + this.updateSlides_(opt_dontPush); + } +}; + +/** + * @param {boolean=} opt_dontPush + */ +SlideDeck.prototype.nextSlide = function(opt_dontPush) { + if (!document.body.classList.contains('overview') && this.buildNextItem_()) { + return; + } + + if (this.curSlide_ < this.slides.length - 1) { + var bodyClassList = document.body.classList; + bodyClassList.remove('highlight-code'); + + // Toggle off speaker notes if they're showing when we advanced on the main + // slides. If we're the speaker notes popup, leave them up. + if (this.controller && !this.controller.isPopup) { + bodyClassList.remove('with-notes'); + } else if (!this.controller) { + bodyClassList.remove('with-notes'); + } + + this.prevSlide_ = this.curSlide_++; + + this.updateSlides_(opt_dontPush); + } +}; + +/* Slide events */ + +/** + * Triggered when a slide enter/leave event should be dispatched. + * + * @param {string} type The type of event to trigger + * (e.g. 'slideenter', 'slideleave'). + * @param {number} slideNo The index of the slide that is being left. + */ +SlideDeck.prototype.triggerSlideEvent = function(type, slideNo) { + var el = this.getSlideEl_(slideNo); + if (!el) { + return; + } + + // Call onslideenter/onslideleave if the attribute is defined on this slide. + var func = el.getAttribute(type); + if (func) { + new Function(func).call(el); // TODO: Don't use new Function() :( + } + + // Dispatch event to listeners setup using addEventListener. + var evt = document.createEvent('Event'); + evt.initEvent(type, true, true); + evt.slideNumber = slideNo + 1; // Make it readable + evt.slide = el; + + el.dispatchEvent(evt); +}; + +/** + * @private + */ +SlideDeck.prototype.updateSlides_ = function(opt_dontPush) { + var dontPush = opt_dontPush || false; + + var curSlide = this.curSlide_; + for (var i = 0; i < this.slides.length; ++i) { + switch (i) { + case curSlide - 2: + this.updateSlideClass_(i, 'far-past'); + break; + case curSlide - 1: + this.updateSlideClass_(i, 'past'); + break; + case curSlide: + this.updateSlideClass_(i, 'current'); + break; + case curSlide + 1: + this.updateSlideClass_(i, 'next'); + break; + case curSlide + 2: + this.updateSlideClass_(i, 'far-next'); + break; + default: + this.updateSlideClass_(i); + break; + } + }; + + this.triggerSlideEvent('slideleave', this.prevSlide_); + this.triggerSlideEvent('slideenter', curSlide); + +// window.setTimeout(this.disableSlideFrames_.bind(this, curSlide - 2), 301); +// +// this.enableSlideFrames_(curSlide - 1); // Previous slide. +// this.enableSlideFrames_(curSlide + 1); // Current slide. +// this.enableSlideFrames_(curSlide + 2); // Next slide. + + // Enable current slide's iframes (needed for page loat at current slide). + this.enableSlideFrames_(curSlide + 1); + + // No way to tell when all slide transitions + auto builds are done. + // Give ourselves a good buffer to preload the next slide's iframes. + window.setTimeout(this.enableSlideFrames_.bind(this, curSlide + 2), 1000); + + this.updateHash_(dontPush); + + if (document.body.classList.contains('overview')) { + this.focusOverview_(); + return; + } + +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.enableSlideFrames_ = function(slideNo) { + var el = this.slides[slideNo - 1]; + if (!el) { + return; + } + + var frames = el.querySelectorAll('iframe'); + for (var i = 0, frame; frame = frames[i]; i++) { + this.enableFrame_(frame); + } +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.enableFrame_ = function(frame) { + var src = frame.dataset.src; + if (src && frame.src != src) { + frame.src = src; + } +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.disableSlideFrames_ = function(slideNo) { + var el = this.slides[slideNo - 1]; + if (!el) { + return; + } + + var frames = el.querySelectorAll('iframe'); + for (var i = 0, frame; frame = frames[i]; i++) { + this.disableFrame_(frame); + } +}; + +/** + * @private + * @param {Node} frame + */ +SlideDeck.prototype.disableFrame_ = function(frame) { + frame.src = 'about:blank'; +}; + +/** + * @private + * @param {number} slideNo + */ +SlideDeck.prototype.getSlideEl_ = function(no) { + if ((no < 0) || (no >= this.slides.length)) { + return null; + } else { + return this.slides[no]; + } +}; + +/** + * @private + * @param {number} slideNo + * @param {string} className + */ +SlideDeck.prototype.updateSlideClass_ = function(slideNo, className) { + var el = this.getSlideEl_(slideNo); + + if (!el) { + return; + } + + if (className) { + el.classList.add(className); + } + + for (var i = 0, slideClass; slideClass = this.SLIDE_CLASSES_[i]; ++i) { + if (className != slideClass) { + el.classList.remove(slideClass); + } + } +}; + +/** + * @private + */ +SlideDeck.prototype.makeBuildLists_ = function () { + for (var i = this.curSlide_, slide; slide = this.slides[i]; ++i) { + var items = slide.querySelectorAll('.build > *'); + for (var j = 0, item; item = items[j]; ++j) { + if (item.classList) { + item.classList.add('to-build'); + if (item.parentNode.classList.contains('fade')) { + item.classList.add('fade'); + } + } + } + } +}; + +/** + * @private + * @param {boolean} dontPush + */ +SlideDeck.prototype.updateHash_ = function(dontPush) { + if (!dontPush) { + var slideNo = this.curSlide_ + 1; + var hash = '#' + slideNo; + if (window.history.pushState) { + window.history.pushState(this.curSlide_, 'Slide ' + slideNo, hash); + } else { + window.location.replace(hash); + } + + // Record GA hit on this slide. + window['_gaq'] && window['_gaq'].push(['_trackPageview', + document.location.href]); + } +}; + + +/** + * @private + * @param {string} favIcon + */ +SlideDeck.prototype.addFavIcon_ = function(favIcon) { + var el = document.createElement('link'); + el.rel = 'icon'; + el.type = 'image/png'; + el.href = favIcon; + document.querySelector('head').appendChild(el); +}; + +/** + * @private + * @param {string} theme + */ +SlideDeck.prototype.loadTheme_ = function(theme) { + var styles = []; + if (theme.constructor.name === 'String') { + styles.push(theme); + } else { + styles = theme; + } + + for (var i = 0, style; themeUrl = styles[i]; i++) { + var style = document.createElement('link'); + style.rel = 'stylesheet'; + style.type = 'text/css'; + if (themeUrl.indexOf('http') == -1) { + style.href = this.CSS_DIR_ + themeUrl + '.css'; + } else { + style.href = themeUrl; + } + document.querySelector('head').appendChild(style); + } +}; + +/** + * @private + */ +SlideDeck.prototype.loadAnalytics_ = function() { + var _gaq = window['_gaq'] || []; + _gaq.push(['_setAccount', this.config_.settings.analytics]); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); +}; + + +// Polyfill missing APIs (if we need to), then create the slide deck. +// iOS < 5 needs classList, dataset, and window.matchMedia. Modernizr contains +// the last one. +(function() { + Modernizr.load({ + test: !!document.body.classList && !!document.body.dataset, + nope: ['js/polyfills/classList.min.js', 'js/polyfills/dataset.min.js'], + complete: function() { + window.slidedeck = new SlideDeck(); + } + }); +})(); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/js/slides.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/js/slides.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +require(['order!../slide_config', 'order!modernizr.custom.45394', + 'order!prettify/prettify', 'order!hammer', 'order!slide-controller', + 'order!slide-deck'], function(someModule) { + +}); diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/scripts/md/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/scripts/md/README.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,5 @@ +### Want to use markdown to write your slides? + +`python render.py` can do that for you. + +Dependencies: jinja2, markdown. diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/scripts/md/base.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/scripts/md/base.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,104 @@ + + + + + Google IO 2012 + + + + + + + + + + + + + + + + + + + + + +
                  +

                  +

                  +

                  +
                  +
                  + +{% for slide in slides %} + + {% if 'segue' in slide.class %} + +
                  +

                  {{- slide.title -}}

                  +

                  {{- slide.subtitle -}}

                  +
                  + {% else %} +
                  +

                  {{- slide.title -}}

                  +

                  {{- slide.subtitle -}}

                  +
                  +
                  + {{- slide.content -}} +
                  + {% endif %} +
                  +{% endfor %} + + + +
                  +

                  <Thank You!>

                  +

                  Important contact information goes here.

                  +
                  +

                  + +

                  +
                  + + + + + +
                  + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/scripts/md/render.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/scripts/md/render.py Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +import codecs +import re +import jinja2 +import markdown + +def process_slides(): + with codecs.open('../../presentation-output.html', 'w', encoding='utf8') as outfile: + md = codecs.open('slides.md', encoding='utf8').read() + md_slides = md.split('\n---\n') + print 'Compiled %s slides.' % len(md_slides) + + slides = [] + # Process each slide separately. + for md_slide in md_slides: + slide = {} + sections = md_slide.split('\n\n') + # Extract metadata at the beginning of the slide (look for key: value) + # pairs. + metadata_section = sections[0] + metadata = parse_metadata(metadata_section) + slide.update(metadata) + remainder_index = metadata and 1 or 0 + # Get the content from the rest of the slide. + content_section = '\n\n'.join(sections[remainder_index:]) + html = markdown.markdown(content_section) + slide['content'] = postprocess_html(html, metadata) + + slides.append(slide) + + template = jinja2.Template(open('base.html').read()) + + outfile.write(template.render(locals())) + +def parse_metadata(section): + """Given the first part of a slide, returns metadata associated with it.""" + metadata = {} + metadata_lines = section.split('\n') + for line in metadata_lines: + colon_index = line.find(':') + if colon_index != -1: + key = line[:colon_index].strip() + val = line[colon_index + 1:].strip() + metadata[key] = val + + return metadata + +def postprocess_html(html, metadata): + """Returns processed HTML to fit into the slide template format.""" + if metadata.get('build_lists') and metadata['build_lists'] == 'true': + html = html.replace('
                    ', '
                      ') + html = html.replace('
                        ', '
                          ') + return html + +if __name__ == '__main__': + process_slides() diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/scripts/md/slides.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/scripts/md/slides.md Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,78 @@ +title: Slide Title +subtitle: Subtitle +class: image + +![Mobile vs desktop users](image.png) + +--- + +title: Segue Slide +subtitle: Subtitle +class: segue dark nobackground + +--- + +title: Agenda +class: big +build_lists: true + +Things we'll cover (list should build): + +- Bullet1 +- Bullet2 +- Bullet3 + +--- + +title: Today +class: nobackground fill + +![Many kinds of devices.](image.png) + +
                          source: place source info here
                          + +--- + +title: Big Title Slide +class: title-slide + +--- + +title: Code Example + +Media Queries are sweet: + +
                          +@media screen and (max-width: 640px) {
                          +  #sidebar { display: none; }
                          +}
                          +
                          + +--- + +title: Once more, with JavaScript + +
                          +function isSmall() {
                          +  return window.matchMedia("(min-device-width: ???)").matches;
                          +}
                          +
                          +function hasTouch() {
                          +  return Modernizr.touch;
                          +}
                          +
                          +function detectFormFactor() {
                          +  var device = DESKTOP;
                          +  if (hasTouch()) {
                          +    device = isSmall() ? PHONE : TABLET;
                          +  }
                          +  return device;
                          +}
                          +
                          + +--- + +title: Centered content +content_class: flexbox vcenter + +This content should be centered! diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/serve.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/serve.sh Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Starts a basic web server on the port specified. +# +# ./serve.sh 3000 -> http://localhost:3000 +# +# Copyright 2012 Eric Bidelman + +port=$1 +if [ $# -ne 1 ] +then + port=8000 +fi + +if [ $(uname -s) == "Darwin" ] +then + open=open +else + open=xdg-open +fi + +$open http://localhost:$port/template.html && python -m SimpleHTTPServer $port; diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/slide_config.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/slide_config.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,36 @@ +var SLIDE_CONFIG = { + // Slide settings + settings: { + title: 'Codesegment と Datasegment による OS の実装', + //subtitle: 'Subtitle Goes Here', + useBuilds: true, // Default: true. False will turn off slide animation builds. + usePrettify: true, // Default: true + enableSlideAreas: true, // Default: true. False turns off the click areas on either slide of the slides. + enableTouch: true, // Default: true. If touch support should enabled. Note: the device must support touch. + //analytics: 'UA-XXXXXXXX-1', // TODO: Using this breaks GA for some reason (probably requirejs). Update your tracking code in template.html instead. + favIcon: 'images/google_developers_logo_tiny.png', + fonts: [ + 'Open Sans:regular,semibold,italic,italicsemibold', + 'Source Code Pro' + ], + //theme: ['mytheme'], // Add your own custom themes or styles in /theme/css. Leave off the .css extension. + }, + + // Author information + presenters: [{ + name: 'Taiki Taira', +// company: 'Job Title, Google', + gplus: '', + twitter: '', + www: '', + github: '' + }/*, { + name: 'Second Name', + company: 'Job Title, Google', + gplus: 'http://plus.google.com/1234567890', + twitter: '@yourhandle', + www: 'http://www.you.com', + github: 'http://github.com/you' + }*/] +}; + diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/template.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/template.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,416 @@ + + + + + Google IO 2012 + + + + + + + + + + + + + + + + + +
                          + +
                          +
                          + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          Slide with Bullets TOMATO

                          +
                          +
                          +
                            +
                          • Titles are formatted as Open Sans with bold applied and font size is set at 45
                          • +
                          • Title capitalization is title case +
                              +
                            • Subtitle capitalization is title case
                            • +
                            +
                          • +
                          • Subtitle capitalization is title case
                          • +
                          • Titles and subtitles should never have a period at the end
                          • +
                          +
                          +
                          + + +
                          +

                          Slide with Bullets that Build

                          +

                          Subtitle Placeholder

                          +
                          +
                          +

                          A list where items build:

                          +
                            +
                          • Pressing 'h' highlights code snippets
                          • +
                          • Pressing 'p' toggles speaker notes (if they're on the current slide)
                          • +
                          • Pressing 'f' toggles fullscreen viewing
                          • +
                          • Pressing 'w' toggles widescreen
                          • +
                          • Pressing 'o' toggles overview mode
                          • +
                          • Pressing 'ESC' toggles off these goodies
                          • +
                          +

                          Another list, but items fade as they build:

                          +
                            +
                          • Hover over me!
                          • +
                          • Hover over me!
                          • +
                          • Hover over me!
                          • +
                          +
                          +
                          + + +
                          +

                          Slide with (Smaller Font)

                          +
                          +
                          +
                            +
                          • All links open in new tabs.
                          • +
                          • To change that this, add target="_self" to the link.
                          • +
                          +
                          +
                          + + + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +

                          Subtitle Placeholder

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/theme/css/default.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/theme/css/default.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1498 @@ +/* line 17, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +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; +} + +/* line 20, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +body { + line-height: 1; +} + +/* line 22, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 24, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 26, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 28, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 101, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 30, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 114, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { + display: block; +} + +/** + * Base SlideDeck Styles + */ +/* line 48, ../scss/_base.scss */ +html { + height: 100%; + overflow: hidden; +} + +/* line 53, ../scss/_base.scss */ +body { + margin: 0; + padding: 0; + opacity: 0; + height: 100%; + min-height: 740px; + width: 100%; + overflow: hidden; + color: #fff; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} +/* line 69, ../scss/_base.scss */ +body.loaded { + opacity: 1 !important; +} + +/* line 74, ../scss/_base.scss */ +input, button { + vertical-align: middle; +} + +/* line 78, ../scss/_base.scss */ +slides > slide[hidden] { + display: none !important; +} + +/* line 82, ../scss/_base.scss */ +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-perspective: 1000; + perspective: 1000; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} + +/* line 94, ../scss/_base.scss */ +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Slide styles */ +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ +/** + * Theme Styles + */ +/* line 58, ../scss/default.scss */ +::selection { + color: white; + background-color: #ffd14d; + text-shadow: none; +} + +/* line 64, ../scss/default.scss */ +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} + +/* line 69, ../scss/default.scss */ +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + border-width: 1px 1px 1px 6px; +} + +/* line 78, ../scss/default.scss */ +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} + +/* line 81, ../scss/default.scss */ +::-webkit-scrollbar-button { + height: 0; + width: 0; +} + +/* line 85, ../scss/default.scss */ +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} + +/* line 90, ../scss/default.scss */ +::-webkit-scrollbar-corner { + background: transparent; +} + +/* line 94, ../scss/default.scss */ +body { + background: black; +} + +/* line 98, ../scss/default.scss */ +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: #797979; + width: 900px; + height: 700px; + margin-left: -450px; + margin-top: -350px; + padding: 40px 60px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} +/* line 119, ../scss/default.scss */ +slides > slide.far-past { + display: none; +} +/* line 126, ../scss/default.scss */ +slides > slide.past { + display: block; + opacity: 0; +} +/* line 133, ../scss/default.scss */ +slides > slide.current { + display: block; + opacity: 1; +} +/* line 139, ../scss/default.scss */ +slides > slide.current .auto-fadein { + opacity: 1; +} +/* line 143, ../scss/default.scss */ +slides > slide.current .gdbar { + -webkit-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -o-background-size: 100% 100%; + background-size: 100% 100%; +} +/* line 148, ../scss/default.scss */ +slides > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 156, ../scss/default.scss */ +slides > slide.far-next { + display: none; +} +/* line 163, ../scss/default.scss */ +slides > slide.dark { + background: #515151 !important; +} +/* line 171, ../scss/default.scss */ +slides > slide:not(.nobackground):before { + font-size: 12pt; + content: "#yourhashtag"; + position: absolute; + bottom: 20px; + left: 60px; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + -webkit-background-size: 30px 30px; + -moz-background-size: 30px 30px; + -o-background-size: 30px 30px; + background-size: 30px 30px; + padding-left: 40px; + height: 30px; + line-height: 1.9; +} +/* line 183, ../scss/default.scss */ +slides > slide:not(.nobackground):after { + font-size: 12pt; + content: attr(data-slide-num) "/" attr(data-total-slides); + position: absolute; + bottom: 20px; + right: 60px; + line-height: 1.9; +} +/* line 194, ../scss/default.scss */ +slides > slide.title-slide:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + -webkit-background-size: contain; + -moz-background-size: contain; + -o-background-size: contain; + background-size: contain; + position: absolute; + bottom: 40px; + right: 40px; + width: 100%; + height: 60px; +} +/* line 206, ../scss/default.scss */ +slides > slide.backdrop { + z-index: -10; + display: block !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 211, ../scss/default.scss */ +slides > slide.backdrop:after, slides > slide.backdrop:before { + display: none; +} +/* line 216, ../scss/default.scss */ +slides > slide > hgroup + article { + margin-top: 45px; +} +/* line 220, ../scss/default.scss */ +slides > slide > hgroup + article.flexbox.vcenter, slides > slide > hgroup + article.flexbox.vleft, slides > slide > hgroup + article.flexbox.vright { + height: 80%; +} +/* line 225, ../scss/default.scss */ +slides > slide > hgroup + article p { + margin-bottom: 1em; +} +/* line 230, ../scss/default.scss */ +slides > slide > article:only-child { + height: 100%; +} +/* line 233, ../scss/default.scss */ +slides > slide > article:only-child > iframe { + height: 98%; +} + +/* line 239, ../scss/default.scss */ +slides.layout-faux-widescreen > slide { + padding: 40px 160px; +} + +/* line 248, ../scss/default.scss */ +slides.layout-widescreen > slide, +slides.layout-faux-widescreen > slide { + margin-left: -550px; + width: 1100px; +} +/* line 253, ../scss/default.scss */ +slides.layout-widescreen > slide.far-past, +slides.layout-faux-widescreen > slide.far-past { + display: block; + display: none; + -webkit-transform: translate(-2260px); + -moz-transform: translate(-2260px); + -ms-transform: translate(-2260px); + -o-transform: translate(-2260px); + transform: translate(-2260px); + -webkit-transform: translate3d(-2260px, 0, 0); + -moz-transform: translate3d(-2260px, 0, 0); + -ms-transform: translate3d(-2260px, 0, 0); + -o-transform: translate3d(-2260px, 0, 0); + transform: translate3d(-2260px, 0, 0); +} +/* line 260, ../scss/default.scss */ +slides.layout-widescreen > slide.past, +slides.layout-faux-widescreen > slide.past { + display: block; + opacity: 0; +} +/* line 267, ../scss/default.scss */ +slides.layout-widescreen > slide.current, +slides.layout-faux-widescreen > slide.current { + display: block; + opacity: 1; +} +/* line 274, ../scss/default.scss */ +slides.layout-widescreen > slide.next, +slides.layout-faux-widescreen > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 282, ../scss/default.scss */ +slides.layout-widescreen > slide.far-next, +slides.layout-faux-widescreen > slide.far-next { + display: block; + display: none; + -webkit-transform: translate(2260px); + -moz-transform: translate(2260px); + -ms-transform: translate(2260px); + -o-transform: translate(2260px); + transform: translate(2260px); + -webkit-transform: translate3d(2260px, 0, 0); + -moz-transform: translate3d(2260px, 0, 0); + -ms-transform: translate3d(2260px, 0, 0); + -o-transform: translate3d(2260px, 0, 0); + transform: translate3d(2260px, 0, 0); +} +/* line 289, ../scss/default.scss */ +slides.layout-widescreen #prev-slide-area, +slides.layout-faux-widescreen #prev-slide-area { + margin-left: -650px; +} +/* line 293, ../scss/default.scss */ +slides.layout-widescreen #next-slide-area, +slides.layout-faux-widescreen #next-slide-area { + margin-left: 550px; +} + +/* line 298, ../scss/default.scss */ +b { + font-weight: 600; +} + +/* line 302, ../scss/default.scss */ +a { + color: #2a7cdf; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); +} +/* line 307, ../scss/default.scss */ +a:hover { + color: black !important; +} + +/* line 312, ../scss/default.scss */ +h1, h2, h3 { + font-weight: 600; +} + +/* line 316, ../scss/default.scss */ +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: #515151; +} + +/* line 323, ../scss/default.scss */ +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: #797979; +} + +/* line 331, ../scss/default.scss */ +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; +} +/* line 336, ../scss/default.scss */ +ul li { + margin-bottom: 0.5em; +} +/* line 339, ../scss/default.scss */ +ul li ul { + margin-left: 2em; + margin-bottom: 0; +} +/* line 343, ../scss/default.scss */ +ul li ul li:before { + content: '-'; + font-weight: 600; +} +/* line 350, ../scss/default.scss */ +ul > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; +} +/* line 357, ../scss/default.scss */ +ul ul { + margin-top: .5em; +} + +/* line 364, ../scss/default.scss */ +.highlight-code slide.current pre > * { + opacity: 0.25; + -webkit-transition: opacity 0.5s ease-in; + -moz-transition: opacity 0.5s ease-in; + -ms-transition: opacity 0.5s ease-in; + -o-transition: opacity 0.5s ease-in; + transition: opacity 0.5s ease-in; +} +/* line 368, ../scss/default.scss */ +.highlight-code slide.current b { + opacity: 1; +} + +/* line 373, ../scss/default.scss */ +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px 60px; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: #e6e6e6; + left: -60px; + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + /*overflow: hidden;*/ +} +/* line 387, ../scss/default.scss */ +pre[data-lang]:after { + content: attr(data-lang); + background-color: #a9a9a9; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; +} + +/* line 400, ../scss/default.scss */ +pre[data-lang="go"] { + color: #333; +} + +/* line 404, ../scss/default.scss */ +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +/* line 410, ../scss/default.scss */ +iframe { + width: 100%; + height: 530px; + background: white; + border: 1px solid #e6e6e6; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 418, ../scss/default.scss */ +dt { + font-weight: bold; +} + +/* line 422, ../scss/default.scss */ +button { + display: inline-block; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #f9f9f9), color-stop(70%, #e3e3e3)); + background: -webkit-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -moz-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -o-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -ms-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + border: 1px solid #a9a9a9; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + padding: 5px 8px; + outline: none; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + cursor: pointer; + text-shadow: 1px 1px white; + font-size: 10pt; +} + +/* line 436, ../scss/default.scss */ +button:not(:disabled):hover { + border-color: #515151; +} + +/* line 440, ../scss/default.scss */ +button:not(:disabled):active { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #e3e3e3), color-stop(70%, #f9f9f9)); + background: -webkit-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -moz-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -o-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -ms-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: linear-gradient(#e3e3e3 40%, #f9f9f9 70%); +} + +/* line 444, ../scss/default.scss */ +:disabled { + color: #a9a9a9; +} + +/* line 448, ../scss/default.scss */ +.blue { + color: #4387fd; +} + +/* line 451, ../scss/default.scss */ +.blue2 { + color: #3c8ef3; +} + +/* line 454, ../scss/default.scss */ +.blue3 { + color: #2a7cdf; +} + +/* line 457, ../scss/default.scss */ +.yellow { + color: #ffd14d; +} + +/* line 460, ../scss/default.scss */ +.yellow2 { + color: #f9cc46; +} + +/* line 463, ../scss/default.scss */ +.yellow3 { + color: #f6c000; +} + +/* line 466, ../scss/default.scss */ +.green { + color: #0da861; +} + +/* line 469, ../scss/default.scss */ +.green2 { + color: #00a86d; +} + +/* line 472, ../scss/default.scss */ +.green3 { + color: #009f5d; +} + +/* line 475, ../scss/default.scss */ +.red { + color: #f44a3f; +} + +/* line 478, ../scss/default.scss */ +.red2 { + color: #e0543e; +} + +/* line 481, ../scss/default.scss */ +.red3 { + color: #d94d3a; +} + +/* line 484, ../scss/default.scss */ +.gray { + color: #e6e6e6; +} + +/* line 487, ../scss/default.scss */ +.gray2 { + color: #a9a9a9; +} + +/* line 490, ../scss/default.scss */ +.gray3 { + color: #797979; +} + +/* line 493, ../scss/default.scss */ +.gray4 { + color: #515151; +} + +/* line 497, ../scss/default.scss */ +.white { + color: white !important; +} + +/* line 500, ../scss/default.scss */ +.black { + color: black !important; +} + +/* line 504, ../scss/default.scss */ +.columns-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + -o-column-count: 2; + column-count: 2; +} + +/* line 508, ../scss/default.scss */ +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid #797979; +} +/* line 515, ../scss/default.scss */ +table tr > td:first-child, table th { + font-weight: 600; + color: #515151; +} +/* line 520, ../scss/default.scss */ +table tr:nth-child(odd) { + background-color: #e6e6e6; +} +/* line 524, ../scss/default.scss */ +table th { + color: white; + font-size: 18px; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #4387fd), color-stop(80%, #2a7cdf)) no-repeat; + background: -webkit-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -moz-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -o-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -ms-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; +} +/* line 530, ../scss/default.scss */ +table td, table th { + font-size: 18px; + padding: 1em 0.5em; +} +/* line 535, ../scss/default.scss */ +table td.highlight { + color: #515151; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #ffd14d), color-stop(80%, #f6c000)) no-repeat; + background: -webkit-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -moz-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -o-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -ms-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; +} +/* line 540, ../scss/default.scss */ +table.rows { + border-bottom: none; + border-right: 1px solid #797979; +} + +/* line 546, ../scss/default.scss */ +q { + font-size: 45px; + line-height: 72px; +} +/* line 550, ../scss/default.scss */ +q:before { + content: '“'; + position: absolute; + margin-left: -0.5em; +} +/* line 555, ../scss/default.scss */ +q:after { + content: '”'; + position: absolute; + margin-left: 0.1em; +} + +/* line 562, ../scss/default.scss */ +slide.fill { + background-repeat: no-repeat; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +/* Size variants */ +/* line 571, ../scss/default.scss */ +article.smaller p, article.smaller ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; +} +/* line 577, ../scss/default.scss */ +article.smaller table td, article.smaller table th { + font-size: 14px; +} +/* line 581, ../scss/default.scss */ +article.smaller pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; +} +/* line 586, ../scss/default.scss */ +article.smaller q { + font-size: 40px; + line-height: 48px; +} +/* line 590, ../scss/default.scss */ +article.smaller q:before, article.smaller q:after { + font-size: 60px; +} + +/* Builds */ +/* line 599, ../scss/default.scss */ +.build > * { + -webkit-transition: opacity 0.5s ease-in-out 0.2s; + -moz-transition: opacity 0.5s ease-in-out 0.2s; + -ms-transition: opacity 0.5s ease-in-out 0.2s; + -o-transition: opacity 0.5s ease-in-out 0.2s; + transition: opacity 0.5s ease-in-out 0.2s; +} +/* line 603, ../scss/default.scss */ +.build .to-build { + opacity: 0; +} +/* line 607, ../scss/default.scss */ +.build .build-fade { + opacity: 0.3; +} +/* line 610, ../scss/default.scss */ +.build .build-fade:hover { + opacity: 1.0; +} + +/* line 617, ../scss/default.scss */ +.popup .next .build .to-build { + opacity: 1; +} +/* line 621, ../scss/default.scss */ +.popup .next .build .build-fade { + opacity: 1; +} + +/* Pretty print */ +/* line 629, ../scss/default.scss */ +.prettyprint .str, +.prettyprint .atv { + /* a markup attribute value */ + color: #009f5d; +} + +/* line 633, ../scss/default.scss */ +.prettyprint .kwd, +.prettyprint .tag { + /* a markup tag name */ + color: #0066cc; +} + +/* line 636, ../scss/default.scss */ +.prettyprint .com { + /* a comment */ + color: #797979; + font-style: italic; +} + +/* line 640, ../scss/default.scss */ +.prettyprint .lit { + /* a literal value */ + color: #7f0000; +} + +/* line 645, ../scss/default.scss */ +.prettyprint .pun, +.prettyprint .opn, +.prettyprint .clo { + color: #515151; +} + +/* line 651, ../scss/default.scss */ +.prettyprint .typ, +.prettyprint .atn, +.prettyprint .dec, +.prettyprint .var { + /* a declaration; a variable name */ + color: #d94d3a; +} + +/* line 654, ../scss/default.scss */ +.prettyprint .pln { + color: #515151; +} + +/* line 658, ../scss/default.scss */ +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transform: translateY(350px); + -moz-transform: translateY(350px); + -ms-transform: translateY(350px); + -o-transform: translateY(350px); + transform: translateY(350px); + -webkit-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; +} +/* line 676, ../scss/default.scss */ +.note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + width: 60%; + padding: 2em; +} + +/* line 693, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide.next, +.with-notes.popup slides.layout-faux-widescreen slide.next { + -webkit-transform: translate3d(690px, 80px, 0) scale(0.35); + -moz-transform: translate3d(690px, 80px, 0) scale(0.35); + -ms-transform: translate3d(690px, 80px, 0) scale(0.35); + -o-transform: translate3d(690px, 80px, 0) scale(0.35); + transform: translate3d(690px, 80px, 0) scale(0.35); +} +/* line 696, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide .note, +.with-notes.popup slides.layout-faux-widescreen slide .note { + -webkit-transform: translate3d(300px, 800px, 0) scale(1.5); + -moz-transform: translate3d(300px, 800px, 0) scale(1.5); + -ms-transform: translate3d(300px, 800px, 0) scale(1.5); + -o-transform: translate3d(300px, 800px, 0) scale(1.5); + transform: translate3d(300px, 800px, 0) scale(1.5); +} +/* line 702, ../scss/default.scss */ +.with-notes.popup slide { + overflow: visible; + background: white; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + pointer-events: none; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + -o-transform-origin: 0 0; + transform-origin: 0 0; +} +/* line 709, ../scss/default.scss */ +.with-notes.popup slide:not(.backdrop) { + -webkit-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -moz-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -ms-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -o-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; +} +/* line 714, ../scss/default.scss */ +.with-notes.popup slide.backdrop { + background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 600, color-stop(0%, #b1dfff), color-stop(100%, #4387fd)); + background-image: -webkit-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -moz-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -o-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -ms-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); +} +/* line 720, ../scss/default.scss */ +.with-notes.popup slide.next { + -webkit-transform: translate3d(570px, 80px, 0) scale(0.35); + -moz-transform: translate3d(570px, 80px, 0) scale(0.35); + -ms-transform: translate3d(570px, 80px, 0) scale(0.35); + -o-transform: translate3d(570px, 80px, 0) scale(0.35); + transform: translate3d(570px, 80px, 0) scale(0.35); + opacity: 1 !important; +} +/* line 724, ../scss/default.scss */ +.with-notes.popup slide.next .note { + display: none !important; +} +/* line 730, ../scss/default.scss */ +.with-notes.popup .note { + width: 109%; + height: 260px; + background: #e6e6e6; + padding: 0; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + -webkit-transform: translate3d(250px, 800px, 0) scale(1.5); + -moz-transform: translate3d(250px, 800px, 0) scale(1.5); + -ms-transform: translate3d(250px, 800px, 0) scale(1.5); + -o-transform: translate3d(250px, 800px, 0) scale(1.5); + transform: translate3d(250px, 800px, 0) scale(1.5); + -webkit-transition: opacity 400ms ease-in-out; + -moz-transition: opacity 400ms ease-in-out; + -ms-transition: opacity 400ms ease-in-out; + -o-transition: opacity 400ms ease-in-out; + transition: opacity 400ms ease-in-out; +} +/* line 741, ../scss/default.scss */ +.with-notes.popup .note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + height: 100%; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + overflow: auto; + padding: 1em; +} +/* line 754, ../scss/default.scss */ +.with-notes .note { + opacity: 1; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); + pointer-events: auto; +} + +/* line 761, ../scss/default.scss */ +.source { + font-size: 14px; + color: #a9a9a9; + position: absolute; + bottom: 70px; + left: 60px; +} + +/* line 769, ../scss/default.scss */ +.centered { + text-align: center; +} + +/* line 773, ../scss/default.scss */ +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255, 255, 255, 0) 85%, #ffffff 150%); +} + +/* line 781, ../scss/default.scss */ +.flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +/* line 785, ../scss/default.scss */ +.flexbox.vcenter { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 791, ../scss/default.scss */ +.flexbox.vleft { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: left; + -moz-box-align: left; + -ms-box-align: left; + box-align: left; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 797, ../scss/default.scss */ +.flexbox.vright { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: end; + -moz-box-align: end; + -ms-box-align: end; + box-align: end; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 803, ../scss/default.scss */ +.auto-fadein { + -webkit-transition: opacity 0.6s ease-in 1s; + -moz-transition: opacity 0.6s ease-in 1s; + -ms-transition: opacity 0.6s ease-in 1s; + -o-transition: opacity 0.6s ease-in 1s; + transition: opacity 0.6s ease-in 1s; + opacity: 0; +} + +/* Clickable/tappable areas */ +/* line 809, ../scss/default.scss */ +.slide-area { + z-index: 1000; + position: absolute; + left: 0; + top: 0; + width: 100px; + height: 700px; + left: 50%; + top: 50%; + cursor: pointer; + margin-top: -350px; +} + +/* line 826, ../scss/default.scss */ +#prev-slide-area { + margin-left: -550px; +} + +/* line 831, ../scss/default.scss */ +#next-slide-area { + margin-left: 450px; +} + +/* ===== SLIDE CONTENT ===== */ +/* line 839, ../scss/default.scss */ +.logoslide img { + width: 383px; + height: 92px; +} + +/* line 845, ../scss/default.scss */ +.segue { + padding: 60px 120px; +} +/* line 848, ../scss/default.scss */ +.segue h2 { + color: #e6e6e6; + font-size: 60px; +} +/* line 852, ../scss/default.scss */ +.segue h3 { + color: #e6e6e6; + line-height: 2.8; +} +/* line 856, ../scss/default.scss */ +.segue hgroup { + position: absolute; + bottom: 225px; +} + +/* line 862, ../scss/default.scss */ +.thank-you-slide { + background: #4387fd !important; + color: white; +} +/* line 866, ../scss/default.scss */ +.thank-you-slide h2 { + font-size: 60px; + color: inherit; +} +/* line 871, ../scss/default.scss */ +.thank-you-slide article > p { + margin-top: 2em; + font-size: 20pt; +} +/* line 876, ../scss/default.scss */ +.thank-you-slide > p { + position: absolute; + bottom: 80px; + font-size: 24pt; + line-height: 1.3; +} + +/* line 884, ../scss/default.scss */ +aside.gdbar { + height: 97px; + width: 215px; + position: absolute; + left: -1px; + top: 125px; + -webkit-border-radius: 0 10px 10px 0; + -moz-border-radius: 0 10px 10px 0; + -ms-border-radius: 0 10px 10px 0; + -o-border-radius: 0 10px 10px 0; + border-radius: 0 10px 10px 0; + background: -webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e6e6e6), color-stop(100%, #e6e6e6)) no-repeat; + background: -webkit-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -moz-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -o-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -ms-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + -webkit-background-size: 0% 100%; + -moz-background-size: 0% 100%; + -o-background-size: 0% 100%; + background-size: 0% 100%; + -webkit-transition: all 0.5s ease-out 0.5s; + -moz-transition: all 0.5s ease-out 0.5s; + -ms-transition: all 0.5s ease-out 0.5s; + -o-transition: all 0.5s ease-out 0.5s; + transition: all 0.5s ease-out 0.5s; + /* Better to transition only on background-size, but not sure how to do that with the mixin. */ +} +/* line 895, ../scss/default.scss */ +aside.gdbar.right { + right: 0; + left: -moz-initial; + left: initial; + top: 254px; + /* 96 is height of gray icon bar */ + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 902, ../scss/default.scss */ +aside.gdbar.right img { + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 907, ../scss/default.scss */ +aside.gdbar.bottom { + top: -moz-initial; + top: initial; + bottom: 60px; +} +/* line 913, ../scss/default.scss */ +aside.gdbar img { + width: 85px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; +} + +/* line 924, ../scss/default.scss */ +.title-slide hgroup { + bottom: 100px; +} +/* line 927, ../scss/default.scss */ +.title-slide hgroup h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: #515151; +} +/* line 934, ../scss/default.scss */ +.title-slide hgroup h2 { + font-size: 34px; + color: #a9a9a9; + font-weight: inherit; +} +/* line 940, ../scss/default.scss */ +.title-slide hgroup p { + font-size: 20px; + color: #797979; + line-height: 1.3; + margin-top: 2em; +} + +/* line 949, ../scss/default.scss */ +.quote { + color: #e6e6e6; +} +/* line 952, ../scss/default.scss */ +.quote .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; +} + +/* line 961, ../scss/default.scss */ +[data-config-contact] a { + color: white; + border-bottom: none; +} +/* line 965, ../scss/default.scss */ +[data-config-contact] span { + width: 115px; + display: inline-block; +} + +/* line 974, ../scss/default.scss */ +.overview.popup .note { + display: none !important; +} +/* line 980, ../scss/default.scss */ +.overview slides slide { + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 981, ../scss/default.scss */ +.overview slides slide.backdrop { + display: none !important; +} +/* line 996, ../scss/default.scss */ +.overview slides slide.far-past, .overview slides slide.past, .overview slides slide.next, .overview slides slide.far-next, .overview slides slide.far-past { + opacity: 0.5; + display: block; +} +/* line 1001, ../scss/default.scss */ +.overview slides slide.current { + opacity: 1; +} +/* line 1007, ../scss/default.scss */ +.overview .slide-area { + display: none; +} + +@media print { + /* line 1014, ../scss/default.scss */ + slides slide { + display: block !important; + position: relative; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + -o-transform: none !important; + transform: none !important; + width: 100%; + height: 100%; + page-break-after: always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + } + /* line 1034, ../scss/default.scss */ + slides slide.far-past, slides slide.past, slides slide.next, slides slide.far-next, slides slide.far-past, slides slide.current { + opacity: 1 !important; + display: block !important; + } + /* line 1040, ../scss/default.scss */ + slides slide .build > * { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + } + /* line 1045, ../scss/default.scss */ + slides slide .build .to-build, + slides slide .build .build-fade { + opacity: 1; + } + /* line 1050, ../scss/default.scss */ + slides slide .auto-fadein { + opacity: 1 !important; + } + /* line 1054, ../scss/default.scss */ + slides slide.backdrop { + display: none !important; + } + /* line 1058, ../scss/default.scss */ + slides slide table.rows { + border-right: 0; + } + /* line 1063, ../scss/default.scss */ + slides slide[hidden] { + display: none !important; + } + + /* line 1068, ../scss/default.scss */ + .slide-area { + display: none; + } + + /* line 1072, ../scss/default.scss */ + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + /* line 1080, ../scss/default.scss */ + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/theme/css/phone.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/theme/css/phone.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,27 @@ +/*Smartphones (portrait and landscape) ----------- */ +/*@media only screen +and (min-width : 320px) +and (max-width : 480px) { + +}*/ +/* Smartphones (portrait) ----------- */ +/* Styles */ +/* line 17, ../scss/phone.scss */ +slides > slide { + /* width: $slide-width !important; + height: $slide-height !important; + margin-left: -$slide-width / 2 !important; + margin-top: -$slide-height / 2 !important; + */ + -webkit-transition: none !important; + -webkit-transition: none !important; + -moz-transition: none !important; + -ms-transition: none !important; + -o-transition: none !important; + transition: none !important; +} + +/* iPhone 4 ----------- */ +@media only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5) { + /* Styles */ +} diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/theme/scss/_base.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/theme/scss/_base.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,135 @@ +@import "compass/reset"; +@import "compass/css3/border-radius"; +@import "compass/css3/box"; +@import "compass/css3/box-shadow"; +@import "compass/css3/box-sizing"; +@import "compass/css3/images"; +@import "compass/css3/text-shadow"; +@import "compass/css3/background-size"; +@import "compass/css3/transform"; +@import "compass/css3/transition"; + +@mixin font-smoothing($val: antialiased) { + -webkit-font-smoothing: $val; + -moz-font-smoothing: $val; + -ms-font-smoothing: $val; + -o-font-smoothing: $val; +} + +@mixin flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +@mixin flex-center-center { + @include box-orient(vertical); + @include box-align(center); + @include box-pack(center); +} + +@mixin flex-left-center { + @include box-orient(vertical); + @include box-align(left); + @include box-pack(center); +} + +@mixin flex-right-center { + @include box-orient(vertical); + @include box-align(end); + @include box-pack(center); +} + +/** + * Base SlideDeck Styles + */ +html { + height: 100%; + overflow: hidden; +} + +body { + margin: 0; + padding: 0; + + opacity: 0; + + height: 100%; + min-height: 740px; + width: 100%; + + overflow: hidden; + + color: #fff; + @include font-smoothing(antialiased); + @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank. + + &.loaded { + opacity: 1 !important; + } +} + +input, button { + vertical-align: middle; +} + +slides > slide[hidden] { + display: none !important; +} + +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + @include transform(translate3d(0, 0, 0)); + @include perspective(1000); + @include transform-style(preserve-3d); + @include transition(opacity 800ms ease-in 100ms); // Add small delay to prevent jank. +} + +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + @include box-sizing(border-box); +} + +/* Slide styles */ + + +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/theme/scss/default.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/theme/scss/default.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1083 @@ +@import "base"; +@import "compass/css3/columns"; +@import "compass/css3/user-interface"; + +$social-tags: '#yourhashtag'; +$brand-small-icon-size: 30px; + +$gray-1: #e6e6e6; +$gray-2: #a9a9a9; +$gray-3: #797979; +$gray-4: #515151; + +$brand-blue: rgb(67, 135, 253); +$brand-blue-secondary: #3c8ef3; +$brand-blue-secondary2: #2a7cdf; + +$brand-red: rgb(244, 74, 63); +$brand-red-secondary: #e0543e; +$brand-red-secondary2: #d94d3a; + +$brand-yellow: rgb(255, 209, 77); +$brand-yellow-secondary: #f9cc46; +$brand-yellow-secondary2: #f6c000; + +$brand-green: rgb(13, 168, 97); +$brand-green-secondary: #00a86d; +$brand-green-secondary2: #009f5d; + +$slide-width: 900px; +$slide-height: 700px; +$slide-width-widescreen: 1100px; +$slide-top-bottom-padding: 40px; +$slide-left-right-padding: 60px; +$slide-border-radius: 5px; + +$slide-tap-area-width: 100px; + +$article-content-top-padding: 45px; + +@mixin highlight-color($color: $brand-yellow) { + -webkit-tap-highlight-color: $color; + -moz-tap-highlight-color: $color; + -ms-tap-highlight-color: $color; + -o-tap-highlight-color: $color; + tap-highlight-color: $color; +} + +@mixin backdrop { + @include background(linear-gradient(white, white 85%, $gray-1)); + background-color: white; +} + + + +/** + * Theme Styles + */ +::selection { + color: white; + background-color: $brand-yellow; + @include text-shadow(none); +} + +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, .1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + @include box-shadow(inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)); + border-width: 1px 1px 1px 6px; +} +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} +::-webkit-scrollbar-button { + height: 0; + width: 0; +} +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} +::-webkit-scrollbar-corner { + background: transparent; +} + +body { + background: black; +} + +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: $gray-3; + //@include background(linear-gradient(white, white 85%, $gray-1)); + //background-color: white; + width: $slide-width; + height: $slide-height; + margin-left: -$slide-width / 2; + margin-top: -$slide-height / 2; + padding: $slide-top-bottom-padding $slide-left-right-padding; + + @include border-radius($slide-border-radius); + //@include box-shadow(5px 5px 20px $gray-4); + @include transition(all 0.6s ease-in-out); + + //$translateX: 1020px; + //$rotateY: 30deg; + //$rotateX: 45deg; + + &.far-past { + //display: block; + display: none; + //@include transform(translate(-$translateX * 2)); + //@include transform(translate3d(-$translateX * 2, 0, 0)); + } + + &.past { + display: block; + //@include transform(translate(-$translateX) rotateY($rotateY) rotateX($rotateX)); + //@include transform(translate3d(-$translateX, 0, 0) rotateY($rotateY) rotateX($rotateX)); + opacity: 0; + } + + &.current { + display: block; + //@include transform(translate(0)); + //@include transform(translate3d(0, 0, 0)); + opacity: 1; + + .auto-fadein { + opacity: 1; + } + + .gdbar { + @include background-size(100% 100%); + } + } + + &.next { + display: block; + //@include transform(translate($translateX) rotateY(-$rotateY) rotateX($rotateX)); + //@include transform(translate3d($translateX, 0, 0) rotateY(-$rotateY) rotateX($rotateX)); + opacity: 0; + pointer-events: none; + } + + &.far-next { + //display: block; + display: none; + //@include transform(translate($translateX * 2)); + //@include transform(translate3d($translateX * 2, 0, 0)); + } + + &.dark { + background: $gray-4 !important; + } + + &:not(.nobackground) { + //background: white url(../../images/google_developers_icon_128.png) ($brand-small-icon-size * 2) 98% no-repeat; + //@include background-size($brand-small-icon-size $brand-small-icon-size); + + &:before { + font-size: 12pt; + content: $social-tags; + position: absolute; + bottom: $slide-top-bottom-padding / 2; + left: $slide-left-right-padding; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + @include background-size($brand-small-icon-size $brand-small-icon-size); + padding-left: $brand-small-icon-size + 10; + height: $brand-small-icon-size; + line-height: 1.9; + } + &:after { + font-size: 12pt; + content: attr(data-slide-num) '/' attr(data-total-slides); + position: absolute; + bottom: $slide-top-bottom-padding / 2; + right: $slide-left-right-padding; + line-height: 1.9; + } + } + + &.title-slide { + &:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + @include background-size(contain); + position: absolute; + bottom: $slide-top-bottom-padding; + right: $slide-top-bottom-padding; + width: 100%; + height: 60px; + } + } + + &.backdrop { + z-index: -10; + display: block !important; + @include backdrop; + + &:after, &:before { + display: none; // Prevent double set of slide nums and footer icons. + } + } + + > hgroup + article { + margin-top: $article-content-top-padding; + + &.flexbox { + &.vcenter, &.vleft, &.vright { + height: 80%; + } + } + + p { + margin-bottom: 1em; + } + } + + > article:only-child { + height: 100%; + + > iframe { + height: 98%; + } + } +} + +slides.layout-faux-widescreen > slide { + padding: $slide-top-bottom-padding 160px; +} + +slides.layout-widescreen, +slides.layout-faux-widescreen { + + $translateX: 1130px; + + > slide { + margin-left: -$slide-width-widescreen / 2; + width: $slide-width-widescreen; + } + + > slide.far-past { + display: block; + display: none; + @include transform(translate(-$translateX * 2)); + @include transform(translate3d(-$translateX * 2, 0, 0)); + } + + > slide.past { + display: block; + //@include transform(translate(-$translateX)); + //@include transform(translate3d(-$translateX, 0, 0)); + opacity: 0; + } + + > slide.current { + display: block; + //@include transform(translate(0)); + //@include transform(translate3d(0, 0, 0)); + opacity: 1; + } + + > slide.next { + display: block; + //@include transform(translate($translateX)); + //@include transform(translate3d($translateX, 0, 0)); + opacity: 0; + pointer-events: none; + } + + > slide.far-next { + display: block; + display: none; + @include transform(translate($translateX * 2)); + @include transform(translate3d($translateX * 2, 0, 0)); + } + + #prev-slide-area { + margin-left: -$slide-width-widescreen / 2 - $slide-tap-area-width; + } + + #next-slide-area { + margin-left: $slide-width-widescreen / 2; + } +} + +b { + font-weight: 600; +} + +a { + color: $brand-blue-secondary2; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); + + &:hover { + color: black !important; + } +} + +h1, h2, h3 { + font-weight: 600; +} + +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: $gray-4; +} + +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: $gray-3; +} + +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; + + li { + margin-bottom: 0.5em; + + ul { + margin-left: 2em; + margin-bottom: 0; + + li:before { + content: '-'; + font-weight: 600; + } + } + } + + > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; + } + + ul { + margin-top: .5em; + } +} + +// Code highlighting only effects the current slide. +.highlight-code slide.current { + pre > * { + opacity: 0.25; + @include transition(opacity 0.5s ease-in); + } + b { + opacity: 1; + } +} + +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px $slide-left-right-padding; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: $gray-1; + left: -$slide-left-right-padding; + position: relative; + @include box-sizing(border-box); + /*overflow: hidden;*/ + + &[data-lang]:after { + content: attr(data-lang); + background-color: $gray-2; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; + } +} + +pre[data-lang="go"] { + color: #333; +} + +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +iframe { + width: 100%; + height: $slide-height - ($slide-top-bottom-padding * 2) - ($article-content-top-padding * 2); + background: white; + border: 1px solid $gray-1; + @include box-sizing(border-box); +} + +dt { + font-weight: bold; +} + +button { + display: inline-block; + @include background(linear-gradient(#F9F9F9 40%, #E3E3E3 70%)); + border: 1px solid $gray-2; + @include border-radius(3px); + padding: 5px 8px; + outline: none; + white-space: nowrap; + @include user-select(none); + cursor: pointer; + @include text-shadow(1px 1px #fff); + font-size: 10pt; +} + +button:not(:disabled):hover { + border-color: $gray-4; +} + +button:not(:disabled):active { + @include background(linear-gradient(#E3E3E3 40%, #F9F9F9 70%)); +} + +:disabled { + color: $gray-2; +} + +.blue { + color: $brand-blue; +} +.blue2 { + color: $brand-blue-secondary; +} +.blue3 { + color: $brand-blue-secondary2; +} +.yellow { + color: $brand-yellow; +} +.yellow2 { + color: $brand-yellow-secondary; +} +.yellow3 { + color: $brand-yellow-secondary2; +} +.green { + color: $brand-green; +} +.green2 { + color: $brand-green-secondary; +} +.green3 { + color: $brand-green-secondary2; +} +.red { + color: $brand-red; +} +.red2 { + color: $brand-red-secondary; +} +.red3 { + color: $brand-red-secondary2; +} +.gray { + color: $gray-1; +} +.gray2 { + color: $gray-2; +} +.gray3 { + color: $gray-3; +} +.gray4 { + color: $gray-4; +} + +.white { + color: white !important; +} +.black { + color: black !important; +} + +.columns-2 { + @include column-count(2); +} + +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid $gray-3; + + tr > td:first-child, th { + font-weight: 600; + color: $gray-4; + } + + tr:nth-child(odd) { + background-color: $gray-1; + } + + th { + color: white; + font-size: 18px; + @include background(linear-gradient(top, $brand-blue 40%, $brand-blue-secondary2 80%) no-repeat); + } + + td, th { + font-size: 18px; + padding: 1em 0.5em; + } + + td.highlight { + color: $gray-4; + @include background(linear-gradient(top, $brand-yellow 40%, $brand-yellow-secondary2 80%) no-repeat); + } + + &.rows { + border-bottom: none; + border-right: 1px solid $gray-3; + } +} + +q { + font-size: 45px; + line-height: 72px; + + &:before { + content: '“'; + position: absolute; + margin-left: -0.5em; + } + &:after { + content: '”'; + position: absolute; + margin-left: 0.1em; + } +} + +slide.fill { + background-repeat: no-repeat; + @include border-radius($slide-border-radius); + @include background-size(cover); +} + +/* Size variants */ + +article.smaller { + p, ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; + } + table { + td, th { + font-size: 14px; + } + } + pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; + } + q { + font-size: 40px; + line-height: 48px; + + &:before, &:after { + font-size: 60px; + } + } +} + +/* Builds */ + +.build { + > * { + @include transition(opacity 0.5s ease-in-out 0.2s); + } + + .to-build { + opacity: 0; + } + + .build-fade { + opacity: 0.3; + + &:hover { + opacity: 1.0; + } + } +} + +.popup .next .build { + .to-build { + opacity: 1; + } + + .build-fade { + opacity: 1; + } +} + +/* Pretty print */ + +.prettyprint .str, /* string content */ +.prettyprint .atv { /* a markup attribute value */ + color: $brand-green-secondary2; //rgb(0, 138, 53); +} +.prettyprint .kwd, /* a keyword */ +.prettyprint .tag { /* a markup tag name */ + color: rgb(0, 102, 204); +} +.prettyprint .com { /* a comment */ + color: $gray-3; //rgb(127, 127, 127); + font-style: italic; +} +.prettyprint .lit { /* a literal value */ + color: rgb(127, 0, 0); +} +.prettyprint .pun, /* punctuation, lisp open bracket, lisp close bracket */ +.prettyprint .opn, +.prettyprint .clo { + color: $gray-4; //rgb(127, 127, 127); +} +.prettyprint .typ, /* a type name */ +.prettyprint .atn, /* a markup attribute name */ +.prettyprint .dec, +.prettyprint .var { /* a declaration; a variable name */ + color: $brand-red-secondary2; //rgb(127, 0, 127); +} +.prettyprint .pln { + color: $gray-4; +} + +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + @include flexbox; + @include flex-center-center; + @include border-radius($slide-border-radius); + + @include box-sizing(border-box); + @include transform(translateY($slide-height / 2));@include transition(all 0.4s ease-in-out); + + > section { + background: #fff; + @include border-radius($slide-border-radius); + @include box-shadow(0 0 10px $gray-3); + width: 60%; + padding: 2em; + } +} + +// Speaker notes only show the current slide. +.with-notes { + + &.popup { + + slides.layout-widescreen, + slides.layout-faux-widescreen { + slide { + &.next { + @include transform(translate3d($slide-width-widescreen / 2 + 140, 80px, 0) scale(0.35)); + } + .note { + @include transform(translate3d(300px, $slide-height + 100, 0) scale(1.5)); + } + } + } + + slide { + overflow: visible; + background: white; + @include transition(none); // No slide transition goodies when in presenter mode. + pointer-events: none; + @include transform-origin(0, 0); // For speaker note transition. + + &:not(.backdrop) { + @include transform(scale(0.6) translate3d(0.5em, 0.5em, 0)); + @include box-shadow(0 0 10px $gray-3); + } + + &.backdrop { + //@include background(linear-gradient($gray-1, white 30%, white 60%, $gray-1)); + @include background-image(radial-gradient(50% 50%, #b1dfff 0%, + $brand-blue 600px)); + } + + &.next { + @include transform(translate3d($slide-width / 2 + 120, 80px, 0) scale(0.35)); + opacity: 1 !important; + + .note { + display: none !important; // Prevents seeing notes if we go to previous slide. + } + } + } + + .note { + width: 109%; + height: $slide-height / 2 - 90; + background: $gray-1; + padding: 0; + + @include box-shadow(0 0 10px $gray-3); + + @include transform(translate3d(250px, $slide-height + 100, 0) scale(1.5)); + @include transition(opacity 400ms ease-in-out); + + > section { + background: #fff; + @include border-radius($slide-border-radius); + height: 100%; + width: 100%; + @include box-sizing(border-box); + @include box-shadow(none); + overflow: auto; + padding: 1em; + } + } + } + + .note { + opacity: 1; + @include transform(translateY(0)); + pointer-events: auto; // Allow people to do things like open links embedded in the speaker notes. + } +} + +.source { + font-size: 14px; + color: $gray-2; + position: absolute; + bottom: $slide-top-bottom-padding + 30px; + left: $slide-left-right-padding; +} + +.centered { + text-align: center; +} + +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255,255,255,0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255,255,255,0) 85%, white 150%); +} + +.flexbox { + @include flexbox; +} + +.flexbox.vcenter { + @include flex-center-center; + height: 100%; + width: 100%; +} + +.flexbox.vleft { + @include flex-left-center; + height: 100%; + width: 100%; +} + +.flexbox.vright { + @include flex-right-center; + height: 100%; + width: 100%; +} + +.auto-fadein { + @include transition(opacity 0.6s ease-in 1s); + opacity: 0; +} + +/* Clickable/tappable areas */ +.slide-area { + z-index: 1000; + + position: absolute; + left: 0; + top: 0; + width: $slide-tap-area-width; + height: $slide-height; + + left: 50%; + top: 50%; + + cursor: pointer; + margin-top: -$slide-height / 2; + + //@include highlight-color(rgba(51, 51, 51, 0.5)); +} +#prev-slide-area { + margin-left: -$slide-width-widescreen / 2; + //@include border-radius(10px 0 0 10px); + //@include box-shadow(-5px 0 10px #222 inset); +} +#next-slide-area { + margin-left: $slide-width / 2; + //@include border-radius(0 10px 10px 0); + //@include box-shadow(5px 0 10px #222 inset); +} + +/* ===== SLIDE CONTENT ===== */ +.logoslide { + img { + width: 383px; + height: 92px; + } +} + +.segue { + padding: $slide-left-right-padding $slide-left-right-padding * 2; + + h2 { + color: $gray-1; + font-size: 60px; + } + h3 { + color: $gray-1; + line-height: 2.8; + } + hgroup { + position: absolute; + bottom: 225px; + } +} + +.thank-you-slide { + background: $brand-blue !important; + color: white; + + h2 { + font-size: 60px; + color: inherit; + } + + article > p { + margin-top: 2em; + font-size: 20pt; + } + + > p { + position: absolute; + bottom: $slide-top-bottom-padding * 2; + font-size: 24pt; + line-height: 1.3; + } +} + +aside.gdbar { + height: 97px; + width: 215px; + position: absolute; + left: -1px; + top: 125px; + @include border-radius(0 10px 10px 0); + @include background(linear-gradient(left, $gray-1, $gray-1) no-repeat); + @include background-size(0% 100%); + @include transition(all 0.5s ease-out 0.5s); /* Better to transition only on background-size, but not sure how to do that with the mixin. */ + + &.right { + right: 0; + left: -moz-initial; + left: initial; + top: ($slide-height / 2) - 96; /* 96 is height of gray icon bar */ + @include transform(rotateZ(180deg)); + + img { + @include transform(rotateZ(180deg)); + } + } + + &.bottom { + top: -moz-initial; + top: initial; + bottom: $slide-left-right-padding; + } + + img { + width: 85px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; + } +} + +.title-slide { + + hgroup { + bottom: 100px; + + h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: $gray-4; + } + + h2 { + font-size: 34px; + color: $gray-2; + font-weight: inherit; + } + + p { + font-size: 20px; + color: $gray-3; + line-height: 1.3; + margin-top: 2em; + } + } +} + +.quote { + color: $gray-1; + + .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; + } +} + +[data-config-contact] { + a { + color: rgb(255, 255, 255); + border-bottom: none; + } + span { + width: 115px; + display: inline-block; + } +} + +.overview { + + &.popup { + .note { + display: none !important; + } + } + + slides { + slide { + &.backdrop { + display: none !important; + } + + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + + @include backdrop(); + + &.far-past, + &.past, + &.next, + &.far-next, + &.far-past { + opacity: 0.5; + display: block; + } + + &.current { + opacity: 1; + } + } + } + + .slide-area { + display: none; + } +} + +@media print { + slides { + slide { + display: block !important; + position: relative; + @include backdrop(); + @include transform(none !important); + width: 100%; + height: 100%; + page-break-after:always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + + &.far-past, + &.past, + &.next, + &.far-next, + &.far-past, + &.current { + opacity: 1 !important; + display: block !important; + } + + .build { + > * { + @include transition(none); + } + + .to-build, + .build-fade { + opacity: 1; + } + } + + .auto-fadein { + opacity: 1 !important; + } + + &.backdrop { + display: none !important; + } + + table.rows { + border-right: 0; + } + } + + slide[hidden] { + display: none !important; + } + } + + .slide-area { + display: none; + } + + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 seminar/io2012slides/theme/scss/phone.scss --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/io2012slides/theme/scss/phone.scss Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,35 @@ +@import "compass/css3/transition"; + + +/*Smartphones (portrait and landscape) ----------- */ +/*@media only screen +and (min-width : 320px) +and (max-width : 480px) { + +}*/ + +/* Smartphones (portrait) ----------- */ +//@media only screen and (max-device-width: 480px) { +/* Styles */ +//$slide-width: 350px; +//$slide-height: 500px; + +slides > slide { +/* width: $slide-width !important; + height: $slide-height !important; + margin-left: -$slide-width / 2 !important; + margin-top: -$slide-height / 2 !important; +*/ + // Don't do full slide transitions on mobile. + -webkit-transition: none !important; // Bug in compass? Not sure why the below is not working + @include transition(none !important); +} + +//} + +/* iPhone 4 ----------- */ +@media +only screen and (-webkit-min-device-pixel-ratio : 1.5), +only screen and (min-device-pixel-ratio : 1.5) { +/* Styles */ +} \ No newline at end of file diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120605.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120605.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,523 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装(仮)

                          +

                          Taiki Taira / 05,Jun,2012

                          +
                          + +
                          +

                          研究目標

                          +

                          + 複雑化、多様化した BIOS を書き換え改良した仕様の(U)EFI に準拠した、GRUB2 で起動する。64bit のメモリを有効に扱う。
                          + shared library を減らす。
                          + 故障や部品交換等でOSそのものが止まるような箇所をなくす。
                          + OS を構成する CPU 等の機器に多少の障害が起きてもすぐに切られることがないようにする。
                          + CbC で動作し、Cerium の Task Manager をのせる。 + +

                          +
                          +
                          +

                          + 設計 +

                          + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 + CbC のコンパイラを載せ、実行可能にする。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2011/06/12 ] +

                          +

                          + 64bit へ移行するソースの理解と作業
                          + コンパイラについて +

                          +
                          + +
                          +

                          compiler

                          +

                          gcc

                          +
                            binutils +
                          • as
                          • +
                          • ld
                          • +
                          +
                          + +
                          +

                          + MSR (Model Specific Register) +

                          +

                          + モデル固有レジスタ
                          + CPU 内部制御用のレジスタ群
                          + RDMSR WRMSR 命令を使用して読み書き
                          +

                          +

                          + 機能 +

                          +
                            +
                          • メモリキャッシュ制御
                          • +
                          • 拡張機能の有効/無効
                          • +
                          • Microcode の更新(Intel Only)
                          • +
                          • パフォーマンスモニタの制御
                          • +
                          • 温度測定
                          • +
                          • デバッグ制御
                          • +
                          • マシンチェック
                          • +
                          + +
                          + +
                          +

                          + MSR を操作する命令 +

                          +

                          + RDMSR +

                          +

                          + ecx レジスタに MSR のアドレスを指定すると edx:eax レジスタに MSR の内容を読み込む。
                          + 上位32bit が edx , 下位 32bit が eax へ入る。 +

                          +

                          + RDMSR +

                          +

                          + ecx レジスタに指定したMSR のアドレスに、 edx:eax レジスタの内容を書き込む。
                          +

                          + +
                          +
                          +
                          +
                          +#define MSR_EFER      0xc0000080 /* extended feature register */
                          +#define _EFER_LME     8  /* Long mode enable */
                          +
                          +/* Enable Long mode in EFER (Extended Feature Enable Register) */
                          +movl    $MSR_EFER, %ecx
                          +rdmsr
                          +btsl    $_EFER_LME, %eax
                          +wrmsr
                          +      
                          +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • Task Manager のソースと論文を読む
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          +
                          + +
                          +
                          + +
                          +

                          Multiboot Specification

                          + Multiboot Specification で規定された少量の規定を満たせばこの企画に準拠したブートローダー(ex. grub) から起動できる。
                          + Multiboot Specification2 が作られており、grub2 (gurb の最新 grub1.99 )が対応しているため、Multiboot Specification2 に対応させる必要がある。
                          +

                          +
                          + +
                          +

                          Physical Address Extension (PAE)

                          +

                          + 物理アドレス拡張。
                          + 32bit CPU で 4GiB以上のメモリを扱う技術。
                          + AMD の AMD 64 アーキテクチャと Interl 64 アーキテクチャでは PAE のページテーブルエントリ構造を保ったまま512エントリをもった4段のページテーブル構造にすることで仮想アドレス空間を48、物理アドレス空間を52bit まで拡張。
                          + IA-32 の PAE 互換を使用する場合物理アドレス空間の範囲は64bit mode で使った場合と同様。
                          +

                          +
                          + +
                          +

                          Intel x86 architectures --- Segment Descripter

                          +
                            +
                          • Interrupt Descriptor Table --- 割り込みの設定に使われる
                          • +
                          • Global Descripter Table --- すべてのプログラムから共通にアクセスするセグメントを定義する
                          • +
                          • Local Descriptor Table --- タスク単位に存在する
                          • +
                          +
                          + +
                          +

                          + Enable long mode +

                          +

                          最初にCPUのIDを確認し、Long mode が使用可能かチェックする。 +

                            +
                          • ページングを不許可にする
                          • +
                          • CR4 レジスタへ PAE を許可するためのbit をセットする
                          • +
                          • CR3 を PML4 と一緒にロードする
                          • +
                          • long mode を MSR の 0xC0000080 の EEER.LME フラグを + セットすることによって許可する
                          • +
                          • +
                          • ページングを許可する
                          • +
                          + +
                          +
                          +

                          + linux kernel 3.3 +

                          +

                          + arch/x86/boot/compressed/head_64.S で protect mode からlong mode へ移行するアセンブラが記述してある。
                          + 64bit の GDT (Global Descripter Table) や PAE (Physical Address Extension) などもこのソースで用意している。
                          +

                          + +
                          + + +
                          +

                          + END +

                          +
                          + +
                          + +
                          + +
                          +

                          + UEFI【Unified Extensible Firmware Interface】 +

                          +

                          + OS とプラットフォームファームウェアとの間のソフトウェアインターフェースを定義する「仕様」
                          + BIOS との置き換えになる。特定のプロセッサやアーキテクチャに限定されない。
                          + 2005 年に EFI から標準化され、 UEFI へ名前が変更された。 +

                          + +
                          +
                          +

                          + UEFI 特徴 +

                          +

                          + 2TiB を超える大きなディスクからブート可能
                          + CPU に依存しないアーキテクチャ
                          + CPU に依存しないドライバ
                          + ネットワークも使用可能な柔軟なプレOS環境
                          + MBR GUID サポート->2TB 以上のシリアルATA HDD から起動可能
                          + BIOS -> 16 bit プロセッサモード 1MB アドレス空間
                          + UEFI -> 32 bit ,64 bit のプロセッサモード
                          + -> ブート前に 64bit アドレッシングの全メモリに直接アクセス可能 +

                          +
                          + +
                          +

                          サポート

                          +

                          + VMware Fusion
                          + QEMU
                          + ViertualBox 3.1 〜(Unix/Linux) + +

                          +

                          引用

                          +

                          + wikipedia UEFI +

                          +
                          + +
                          +

                          xv6

                          +

                          + MIT が operating systems Engineering という授業で使うために開発した OS 。
                          + Sixth Edition Unix が元になっている。 +

                          +

                          + VMware Fusion で動かすことに成功。 +

                          + +
                          + + +
                          +

                          +

                          +
                            +
                          • + This is an example of a list +
                          • +
                          • + The list items fade in +
                          • +
                          • + Last one! +
                          • +
                          + +
                          +

                          Any element with child nodes can build.

                          +

                          It doesn't have to be a list.

                          +
                          +
                          + +
                          +

                          + Slide with bullet points (small font) +

                          +
                            +
                          • + Use this template to create your presentation +
                          • + Use the provided color palette, box and arrow graphics, and + chart styles +
                          • + Instructions are provided to assist you in using this + presentation template effectively +
                          • + At all times strive to maintain Google's corporate look and feel +
                          +
                          + +
                          +

                          + Slide with a table +

                          + + + + + +
                          + Name + + Occupation +
                          + Luke Mahé + + V.P. of Keepin’ It Real +
                          + Marcin Wichary + + The Michael Bay of Doodles +
                          +
                          + +
                          +

                          + Slide with a table (smaller text) +

                          + + + + + +
                          + Name + + Occupation +
                          + Luke Mahé + + V.P. of Keepin’ It Real +
                          + Marcin Wichary + + The Michael Bay of Doodles +
                          +
                          + +
                          +

                          + Styles +

                          +
                            +
                          • + class="red" +
                          • + class="blue" +
                          • + class="green" +
                          • + class="yellow" +
                          • + class="black" +
                          • + class="white" +
                          • + bold and italic +
                          +
                          + +
                          +

                          + Segue slide +

                          +
                          + +
                          +

                          + Slide with an image +

                          +

                          + +

                          +
                          + Source: Sergey Brin +
                          +
                          + +
                          +

                          + Slide with an image (centered) +

                          +

                          + +

                          +
                          + Source: Larry Page +
                          +
                          + +
                          +

                          + Image filling the slide (with optional header) +

                          +

                          + +

                          +
                          + Source: Eric Schmidt +
                          +
                          + +
                          +

                          + This slide has some code +

                          +
                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +  u { color: 'umber' }
                          +</style>
                          +
                          +
                          +
                          + +
                          +

                          + This slide has some code (small font) +

                          +
                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +  u { color: 'umber' }
                          +</style>
                          +
                          +
                          +
                          + +
                          + + The best way to predict the future is to invent it. + +
                          + Alan Kay +
                          +
                          + +
                          + + A distributed system is one in which the failure of a computer + you didn’t even know existed can render your own computer unusable. + +
                          + Leslie Lamport +
                          +
                          + +
                          +

                          + A slide with an embed + title +

                          + + +
                          + +
                          + +
                          + +
                          +

                          + Full-slide embed with (optional) slide title on top +

                          + +
                          + + + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120619.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120619.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,256 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装(仮)

                          +

                          Taiki Taira / 19,Jun,2012

                          +
                          + +
                          +

                          研究目標

                          +

                          + 複雑化、多様化した BIOS を書き換え改良した仕様の(U)EFI に準拠した、GRUB2 で起動する。64bit のメモリを有効に扱う。
                          + shared library を減らす。
                          + 故障や部品交換等でOSそのものが止まるような箇所をなくす。
                          + OS を構成する CPU 等の機器に多少の障害が起きてもすぐに切られることがないようにする。
                          + CbC で動作し、Cerium の Task Manager をのせる。 + +

                          +
                          +
                          +

                          + 設計 +

                          + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 + CbC のコンパイラを載せ、実行可能にする。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2011/06/19 ] +

                          +

                          + 64bit へ移行するソースの理解と作業
                          + Mach-O と ELF について
                          +

                          +
                          + +
                          +

                          Mach-O による開発1/2

                          +

                          cbc-gcc-4.6.0

                          +
                            Mac OS X 付属 +
                          • as
                            + Mach-O 形式を出力
                            + 吐くELFは 32bit 用
                          • +
                          • ld
                            + Mach-O 形式を受け入れる、出力する
                            + 吐くELFは 32bit 用
                            +
                              +
                            • linker script が使用できない
                            • +
                            • -Ttext org が使用できない
                              + segment の開始アドレスを指定する
                            • +
                            • 64bit 形式のELF が吐けない
                            • +
                            • -O binary or -O ELF64-x86-64 が使用できない
                            • +
                            +
                          • +
                          +
                          + +
                          +

                          Mach-O による開発2/2

                          +

                          + binutils の objcopy
                          + fd で起動する場合に、.img へ純粋なバイナリに変換してコピーするプログラム。 +

                          +
                            Mac OS X binutils +
                          • gobjcopy
                            + Mach-O 形式を受けつけ、Mach-O を吐く。
                          • +
                          +
                            binutils +
                          • as
                          • +
                          • ld
                          • +
                          • objcopy
                            + Mach-O 形式受け付けない。ELFを吐く。
                          • +
                          +

                          Mach-O には GRUB2 非対応

                          +
                          + +
                          +

                          Linux 上で作ろうと考えていますが……。

                          +
                          + +
                          +

                          END

                          +
                          + +
                          +

                          + MSR (Model Specific Register) +

                          +

                          + モデル固有レジスタ
                          + CPU 内部制御用のレジスタ群
                          + RDMSR WRMSR 命令を使用して読み書き
                          +

                          +

                          + 機能 +

                          +
                            +
                          • メモリキャッシュ制御
                          • +
                          • 拡張機能の有効/無効
                          • +
                          • Microcode の更新(Intel Only)
                          • +
                          • パフォーマンスモニタの制御
                          • +
                          • 温度測定
                          • +
                          • デバッグ制御
                          • +
                          • マシンチェック
                          • +
                          + +
                          + +
                          +

                          + MSR を操作する命令 +

                          +

                          + RDMSR +

                          +

                          + ecx レジスタに MSR のアドレスを指定すると edx:eax レジスタに MSR の内容を読み込む。
                          + 上位32bit が edx , 下位 32bit が eax へ入る。 +

                          +

                          + RDMSR +

                          +

                          + ecx レジスタに指定したMSR のアドレスに、 edx:eax レジスタの内容を書き込む。
                          +

                          + +
                          +
                          +
                          +
                          +#define MSR_EFER      0xc0000080 /* extended feature register */
                          +#define _EFER_LME     8  /* Long mode enable */
                          +
                          +/* Enable Long mode in EFER (Extended Feature Enable Register) */
                          +movl    $MSR_EFER, %ecx
                          +rdmsr
                          +btsl    $_EFER_LME, %eax
                          +wrmsr
                          +      
                          +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • Task Manager のソースと論文を読む
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          +
                          + +
                          +
                          + +
                          +

                          Multiboot Specification

                          + Multiboot Specification で規定された少量の規定を満たせばこの企画に準拠したブートローダー(ex. grub) から起動できる。
                          + Multiboot Specification2 が作られており、grub2 (gurb の最新 grub1.99 )が対応しているため、Multiboot Specification2 に対応させる必要がある。
                          +

                          +
                          + +
                          +

                          Physical Address Extension (PAE)

                          +

                          + 物理アドレス拡張。
                          + 32bit CPU で 4GiB以上のメモリを扱う技術。
                          + AMD の AMD 64 アーキテクチャと Interl 64 アーキテクチャでは PAE のページテーブルエントリ構造を保ったまま512エントリをもった4段のページテーブル構造にすることで仮想アドレス空間を48、物理アドレス空間を52bit まで拡張。
                          + IA-32 の PAE 互換を使用する場合物理アドレス空間の範囲は64bit mode で使った場合と同様。
                          +

                          +
                          + +
                          +

                          Intel x86 architectures --- Segment Descripter

                          +
                            +
                          • Interrupt Descriptor Table --- 割り込みの設定に使われる
                          • +
                          • Global Descripter Table --- すべてのプログラムから共通にアクセスするセグメントを定義する
                          • +
                          • Local Descriptor Table --- タスク単位に存在する
                          • +
                          +
                          + +
                          +

                          + Enable long mode +

                          +

                          最初にCPUのIDを確認し、Long mode が使用可能かチェックする。 +

                            +
                          • ページングを不許可にする
                          • +
                          • CR4 レジスタへ PAE を許可するためのbit をセットする
                          • +
                          • CR3 を PML4 と一緒にロードする
                          • +
                          • long mode を MSR の 0xC0000080 の EEER.LME フラグを + セットすることによって許可する
                          • +
                          • +
                          • ページングを許可する
                          • +
                          + +
                          +
                          +

                          + linux kernel 3.3 +

                          +

                          + arch/x86/boot/compressed/head_64.S で protect mode からlong mode へ移行するアセンブラが記述してある。
                          + 64bit の GDT (Global Descripter Table) や PAE (Physical Address Extension) などもこのソースで用意している。
                          +

                          + +
                          + + +
                          +

                          + END +

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120626.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120626.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,182 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装(仮)

                          +

                          Taiki Taira / 26,Jun,2012

                          +
                          + +
                          +

                          研究目標

                          +

                          + 複雑化、多様化した BIOS を書き換え改良した仕様の(U)EFI に準拠した、GRUB2 で起動する。64bit のメモリを有効に扱う。
                          + CbC で動作し、Cerium の Task Manager をのせる。 + code segment, data segment を意識した設計にする。
                          + shared library を減らす。
                          + 故障や部品交換等でOSそのものが止まるような箇所をなくす。
                          + OS を構成する CPU 等の機器に多少の障害が起きてもすぐに切られることがないようにする。
                          + +

                          +
                          +
                          +

                          + 設計 +

                          + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 + CbC のコンパイラを載せ、実行可能にする。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/06/26 ] +

                          +
                            +
                          • Mac OS X によるELF 実行形式をコンパイルするための環境構築
                          • +
                          +
                          + +
                          +

                          cbc-gcc と binutils

                          +

                          + 両方共、再度 + --target=x86_64-elf + オプションを付けて再度 configure し、make し直すと以下の形式の実行ファイルを出力するようになった。
                          + 64bit で書き、かつGRUB2(GRUB1.99) で起動するためにこの形式にした。 +

                          +a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), 
                          +statically linked, not stripped
                          +      
                          +

                          + executable とあるので、再配置、シンボル解決ともに完了している。 +

                          +
                          + +
                          +

                          ELF(Executable and Linking Format)

                          +

                          + コンパイラが生成するオブジェクト、及びライブラリとリンクされた実行ファイルのフォーマット。多くの Linux ディストリビューションが採用している形式。 +

                          +
                          + +
                          +

                          malloc

                          +

                          + glibc の、malloc/malloc.c を読もうと考えています。 +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • Task Manager のソースと論文を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          +

                          Multiboot Specification

                          + Multiboot Specification で規定された少量の規定を満たせばこの企画に準拠したブートローダー(ex. grub) から起動できる。
                          + Multiboot Specification2 が作られており、grub2 (gurb の最新 grub1.99 )が対応しているため、Multiboot Specification2 に対応させる必要がある。
                          +

                          +
                          + +
                          +

                          Physical Address Extension (PAE)

                          +

                          + 物理アドレス拡張。
                          + 32bit CPU で 4GiB以上のメモリを扱う技術。
                          + AMD の AMD 64 アーキテクチャと Interl 64 アーキテクチャでは PAE のページテーブルエントリ構造を保ったまま512エントリをもった4段のページテーブル構造にすることで仮想アドレス空間を48、物理アドレス空間を52bit まで拡張。
                          + IA-32 の PAE 互換を使用する場合物理アドレス空間の範囲は64bit mode で使った場合と同様。
                          +

                          +
                          + +
                          +

                          Intel x86 architectures --- Segment Descripter

                          +
                            +
                          • Interrupt Descriptor Table --- 割り込みの設定に使われる
                          • +
                          • Global Descripter Table --- すべてのプログラムから共通にアクセスするセグメントを定義する
                          • +
                          • Local Descriptor Table --- タスク単位に存在する
                          • +
                          +
                          + +
                          +

                          + Enable long mode +

                          +

                          最初にCPUのIDを確認し、Long mode が使用可能かチェックする。 +

                            +
                          • ページングを不許可にする
                          • +
                          • CR4 レジスタへ PAE を許可するためのbit をセットする
                          • +
                          • CR3 を PML4 と一緒にロードする
                          • +
                          • long mode を MSR の 0xC0000080 の EEER.LME フラグを + セットすることによって許可する
                          • +
                          • +
                          • ページングを許可する
                          • +
                          + +
                          +
                          +

                          + linux kernel 3.3 +

                          +

                          + arch/x86/boot/compressed/head_64.S で protect mode からlong mode へ移行するアセンブラが記述してある。
                          + 64bit の GDT (Global Descripter Table) や PAE (Physical Address Extension) などもこのソースで用意している。
                          +

                          + +
                          + + +
                          +

                          + END +

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120703.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120703.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,179 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装(仮)

                          +

                          Taiki Taira / 03,July,2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + OS を構成する CPU 等の機器に多少の障害が起きてもすぐに切られることがないようにする。
                          + 故障や部品交換等でOSそのものが止まるような箇所をなくす。
                          + CbC で動作し、Cerium の Task Manager をのせる。 + code segment, data segment を意識した設計にする。
                          + shared library を減らす。
                          +

                          +

                          その他現行OSへの不満

                          +

                          + CPU 消費によって硬直する、重くなる
                          + 起動、停止が遅い
                          + multi task とは
                          +

                          + +
                          +
                          +

                          + 設計 +

                          + + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          compiler を OS に載せるのかどうか

                          +

                          InCompiler

                          +
                            利点 +
                          • OSに新しいプログラムを追加しやすい
                          • +
                          • machine に最適なプログラムになる
                          • +
                          • プログラムを管理しやすい
                          • +
                          +
                            欠点 +
                          • サイズによってはメモリに入りきらない
                          • +
                          +

                          小さいサイズを実装するのが最善

                          + +
                          + +
                          +

                          + 今週の作業 [~ 2012/07/03 ] +

                          +
                            +
                          • grubでソースを動かす
                          • +
                          +
                          + +
                          +

                          + Multiboot specifiction version 1.6 を読んで、grub2 でのプログラムの動かし方を学ぶ。 +

                          + +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • Task Manager のソースと論文を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          +

                          Multiboot Specification

                          + Multiboot Specification で規定された少量の規定を満たせばこの企画に準拠したブートローダー(ex. grub) から起動できる。
                          + Multiboot Specification2 が作られており、grub2 (gurb の最新 grub1.99 )が対応しているため、Multiboot Specification2 に対応させる必要がある。
                          +

                          +
                          + +
                          +

                          Physical Address Extension (PAE)

                          +

                          + 物理アドレス拡張。
                          + 32bit CPU で 4GiB以上のメモリを扱う技術。
                          + AMD の AMD 64 アーキテクチャと Interl 64 アーキテクチャでは PAE のページテーブルエントリ構造を保ったまま512エントリをもった4段のページテーブル構造にすることで仮想アドレス空間を48、物理アドレス空間を52bit まで拡張。
                          + IA-32 の PAE 互換を使用する場合物理アドレス空間の範囲は64bit mode で使った場合と同様。
                          +

                          +
                          + +
                          +

                          Intel x86 architectures --- Segment Descripter

                          +
                            +
                          • Interrupt Descriptor Table --- 割り込みの設定に使われる
                          • +
                          • Global Descripter Table --- すべてのプログラムから共通にアクセスするセグメントを定義する
                          • +
                          • Local Descriptor Table --- タスク単位に存在する
                          • +
                          +
                          + +
                          +

                          + Enable long mode +

                          +

                          最初にCPUのIDを確認し、Long mode が使用可能かチェックする。 +

                            +
                          • ページングを不許可にする
                          • +
                          • CR4 レジスタへ PAE を許可するためのbit をセットする
                          • +
                          • CR3 を PML4 と一緒にロードする
                          • +
                          • long mode を MSR の 0xC0000080 の EEER.LME フラグを + セットすることによって許可する
                          • +
                          • +
                          • ページングを許可する
                          • +
                          + +
                          +
                          +

                          + linux kernel 3.3 +

                          +

                          + arch/x86/boot/compressed/head_64.S で protect mode からlong mode へ移行するアセンブラが記述してある。
                          + 64bit の GDT (Global Descripter Table) や PAE (Physical Address Extension) などもこのソースで用意している。
                          +

                          + +
                          + + +
                          +

                          + END +

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120717.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120717.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,206 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / 17,July,2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + OS を構成する CPU 等の機器に多少の障害が起きてもすぐに切られることがないようにする。
                          + 故障や部品交換等でOSそのものが止まるような箇所をなくす。
                          + CbC で動作し、Cerium の Task Manager をのせる。 + code segment, data segment を意識した設計にする。
                          + shared library を減らす。
                          +

                          +

                          その他現行OSへの不満

                          +

                          + CPU 消費によって硬直する、重くなる
                          + 起動、停止が遅い
                          + multi task とは
                          +

                          + +
                          +
                          +

                          + 設計 +

                          + + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          memory management

                          +

                          基本的に code segment ごとに管理

                          +

                          メモリ全体を保持
                          + get_segment では list

                          +

                          使われているメモリの管理
                          + get_segment では hash

                          + +

                          malloc 読む

                          + +
                          + +
                          +

                          compiler を OS に載せるのかどうか

                          +

                          In Core Compiler

                          +
                            利点 +
                          • OSに新しいプログラムを追加しやすい
                          • +
                          • プラットフォームに最適なプログラムになる
                          • +
                          • プログラムを管理しやすい
                          • +
                          +
                            欠点 +
                          • サイズによってはメモリに入りきらない
                          • +
                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/07/17 ] +

                          +
                            +
                          • grubでソースを動かす
                          • +
                          +
                          + +
                          +

                          grub2

                          +
                            +
                          • OS選択画面でc
                          • +
                          • grub>が表示される
                          • +
                          • halt で停止
                          • +
                          • reboot で再起動
                          • +
                          • ls で接続されている device の一覧
                          • +
                          • set root=(device name)
                          • +
                          • ls / でいま root に指定されている device の root directory
                          • +
                          • multiboot2 [ELF executeble file](Linux なら linux という command がある)
                          • +
                          • 何も問題がなければ boot
                          • +
                          +

                          + [multiboot2] で error . +

                          +
                          + +
                          +

                          起動について

                          +

                          最新のもので起動するのがいい考えて GRUB2 で試してきたが多少不安定なので、そろそろ GRUB や普通の BIOS での起動方法も視野に入れていく。

                          +
                          + + +
                          +

                          + 今後やること +

                          +
                            +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • Task Manager のソースと論文を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          +

                          Multiboot Specification

                          + Multiboot Specification で規定された少量の規定を満たせばこの企画に準拠したブートローダー(ex. grub) から起動できる。
                          + Multiboot Specification2 が作られており、grub2 (gurb の最新 grub1.99 )が対応しているため、Multiboot Specification2 に対応させる必要がある。
                          +

                          +
                          + +
                          +

                          Physical Address Extension (PAE)

                          +

                          + 物理アドレス拡張。
                          + 32bit CPU で 4GiB以上のメモリを扱う技術。
                          + AMD の AMD 64 アーキテクチャと Interl 64 アーキテクチャでは PAE のページテーブルエントリ構造を保ったまま512エントリをもった4段のページテーブル構造にすることで仮想アドレス空間を48、物理アドレス空間を52bit まで拡張。
                          + IA-32 の PAE 互換を使用する場合物理アドレス空間の範囲は64bit mode で使った場合と同様。
                          +

                          +
                          + +
                          +

                          Intel x86 architectures --- Segment Descripter

                          +
                            +
                          • Interrupt Descriptor Table --- 割り込みの設定に使われる
                          • +
                          • Global Descripter Table --- すべてのプログラムから共通にアクセスするセグメントを定義する
                          • +
                          • Local Descriptor Table --- タスク単位に存在する
                          • +
                          +
                          + +
                          +

                          + Enable long mode +

                          +

                          最初にCPUのIDを確認し、Long mode が使用可能かチェックする。 +

                            +
                          • ページングを不許可にする
                          • +
                          • CR4 レジスタへ PAE を許可するためのbit をセットする
                          • +
                          • CR3 を PML4 と一緒にロードする
                          • +
                          • long mode を MSR の 0xC0000080 の EEER.LME フラグを + セットすることによって許可する
                          • +
                          • +
                          • ページングを許可する
                          • +
                          + +
                          +
                          +

                          + linux kernel 3.3 +

                          +

                          + arch/x86/boot/compressed/head_64.S で protect mode からlong mode へ移行するアセンブラが記述してある。
                          + 64bit の GDT (Global Descripter Table) や PAE (Physical Address Extension) などもこのソースで用意している。
                          +

                          + +
                          + + +
                          +

                          + END +

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120724.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120724.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,108 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / 17,July,2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 + 本研究ではそれに沿った構成のOSを実装することを目的とする。 + その実装には、本研究室で開発された Continution based C (CbC)を用いる。 + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + Cerium の Task Manager をのせる。 + shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計 +

                          + + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/07/17 ] +

                          +
                            +
                          • grubでソースを動かす
                          • +
                          +
                          + +
                          +

                          grub2

                          +

                          + multiboot2 header error が消え、エラーメッセージを吐かなくなった。
                          + しかし、本当に実行されているのかどうかがわからずデバッグ方法をさがす必要がある。
                          +

                          +
                          + +
                          +

                          malloc

                          +

                          glibc のソースを読む準備として調べてみた。

                          + +
                          + + +
                          +

                          + 今後やること +

                          +
                            +
                          • デバッグ方法確立
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • Task Manager のソースと論文を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120731.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120731.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,107 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / 17,July,2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 + 本研究ではそれに沿った構成のOSを実装することを目的とする。 + その実装には、本研究室で開発された Continution based C (CbC)を用いる。 + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + Cerium の Task Manager をのせる。 + shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計 +

                          + + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/07/31 ] +

                          +
                            +
                          • Mountain Lion での開発環境
                          • +
                          +
                          + +
                          +

                          Mountain Lion

                          +

                          + CbC の開発環境の作りなおしと、ELF を吐くクロス開発環境を構築。作成した grub2 もエラーを吐かなかったので、正しく作られています。 +

                          +
                          + +
                          +

                          malloc

                          +

                          glibc のソースを読む準備として調べてみた。

                          + +
                          + + +
                          +

                          + 今後やること +

                          +
                            +
                          • デバッグ方法確立
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • Task Manager のソースと論文を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120807.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120807.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,124 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / 17,July,2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 + 本研究ではそれに沿った構成のOSを実装することを目的とする。 + その実装には、本研究室で開発された Continution based C (CbC)を用いる。 + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + Cerium の Task Manager をのせる。 + shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計 +

                          + + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/08/07 ] +

                          +
                            +
                          • Mountain Lion での開発環境
                          • +
                          • 文字の表示
                          • +
                          +
                          + +
                          +

                          Mountain Lion

                          +

                          + CbC の開発環境の作りなおしと、ELF を吐くクロス開発環境を構築。作成した grub2 もエラーを吐かなかったので、正しく作られています。 +

                          +
                          + +
                          +

                          VRAM

                          +

                          + メインメモリと同じアドレス空間にあり、同様に操作可能。
                          + video controller と呼ばれるチップが搭載されており、 VRAM から必要な情報を取り出してディスプレイへ信号を送り、 VRAM の操作をディスプレイへ反映させている。
                          +

                          +
                            video conroller のモード +
                          • グラフィックモード メモリのディスプレイとピクセルを対応
                          • +
                          • テキストモード メモリ上の ASCII コードとディスプレイの文字を対応
                          • +
                          +

                          今回はテキストモードで表示

                          +
                          + +
                          +

                          テキストモード

                          +

                          + video conroller は初期設定でテキストモードになっている。
                          + テキストモードで使われる VRAM はメインメモリの0xB8000 。
                          + 画面上の1文字は2バイト。色の指定に1バイト、ASCII コードの指定に1バイト使われている。
                          + 0xB8000 へ入れた文字一文字目が、画面左上に対応している。 +

                          +

                          Mac OS X で生成した CbC のソースが実行できた

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • GDT / LDT について学ぶ
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120814.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120814.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,135 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira
                          + August 10,2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 + 本研究ではそれに沿った構成のOSを実装することを目的とする。 + その実装には、本研究室で開発された Continution based C (CbC)を用いる。 + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + Cerium の Task Manager をのせる。 + shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計 +

                          + + +

                          + Cerium の Task Mangaer を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/08/14] +

                          +
                            +
                          • GDT/LDT
                          • +
                          +
                          + +
                          +

                          GDT 1/3

                          +

                          + Global Descripter Table --- すべてのプログラムから共通にアクセスするセグメントを定義する +

                          +
                          + +
                          +

                          GDT 2/3

                          +

                          + +

                          +
                          + +
                          +

                          GDT 3/3

                          +
                          +gdt:
                          +.word   gdt_end - gdt
                          +.long   gdt
                          +.word   0
                          +.quad   0x0000000000000000  /* NULL descriptor */
                          +.quad   0x00af9a000000ffff  /* __KERNEL_CS */
                          +.quad   0x00cf92000000ffff  /* __KERNEL_DS */ 
                          +.quad   0x0080890000000000  /* TS descriptor */
                          +.quad   0x0000000000000000  /* TS continued */ 
                          +gdt_end:
                          +      
                          +

                          ブート前に CS DS まとめて設定。
                          + 上記のコードと、新しくGDT を作成するコードを入れてみると、前回表示されたhelloworld は表示された。

                          +
                          + +
                          +

                          ……なんていうデバッグは辞めたいので。

                          +

                          debug

                          +

                          + gdb だとデバッグするためにはカーネル側からシリアルポートに出力するなにかが必要?
                          + じゃあシリアルポートに出力方法を考えてみるか、GRUB2 になにか機能がないのかアプローチ
                          +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • デバッグ方法確立
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • Task Manager のソースと論文を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120828.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120828.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,140 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / September 4, 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 + 本研究ではそれに沿った構成のOSを実装することを目的とする。 + その実装には、本研究室で開発された Continution based C (CbC)を用いる。 + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + Cerium の Task Manager をのせる。 + shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計 +

                          + + +

                          + Cerium の Task Manager を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/08/28 ] +

                          +
                            +
                          • Mountain Lion での開発環境
                          • +
                          • 文字の表示
                          • +
                          +
                          + +
                          +

                          VRAM

                          +

                          + メインメモリと同じアドレス空間にあり、同様に操作可能。
                          + video controller と呼ばれるチップが搭載されており、 VRAM から必要な情報を取り出してディスプレイへ信号を送り、 VRAM の操作をディスプレイへ反映させている。
                          +

                          +
                            video conroller のモード +
                          • グラフィックモード メモリのディスプレイとピクセルを対応
                          • +
                          • テキストモード メモリ上の ASCII コードとディスプレイの文字を対応
                          • +
                          +

                          今回はテキストモードで表示

                          +
                          + +
                          +

                          テキストモード

                          +

                          + video conroller は初期設定でテキストモードになっている。
                          + テキストモードで使われる VRAM はメインメモリの0xB8000 。
                          + 画面上の1文字は2バイト。色の指定に1バイト、ASCII コードの指定に1バイト使われている。
                          + 0xB8000 へ入れた文字一文字目が、画面左上に対応している。 +

                          +

                          Mac OS X で生成した CbC のソースが実行できた

                          +
                          + +
                          +

                          VirtualBox

                          +

                          command line で

                          +
                          +VirtualBox --debug-commandline --startvm Fedora
                          +      
                          +

                          GDB のコマンドとかなりずれてる。

                          +
                          + + +
                          +

                          Example

                          +
                            +
                          • g:continue
                          • +
                          • t:single step an instruction
                          • +
                          • stop:stop VM
                          • +
                          • dg:show GDT
                          • +
                          • di:show IDT
                          • +
                          • rg:print VM register
                          • +
                          • harakiri:kill debug process
                          • +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • GDT / LDT について学ぶ
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120904.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120904.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,169 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / September 4, 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 + 本研究ではそれに沿った構成のOSを実装することを目的とする。 + その実装には、本研究室で開発された Continution based C (CbC)を用いる。 + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + Cerium の Task Manager をのせる。 + shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計1/2 +

                          + + +

                          + Cerium の Task Manager を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 設計2/2 +

                          + +

                          + code segment のグループに分ける。 +

                          + +

                          + data segment と code segment の整合性をチェックする。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/09/04 ] +

                          +
                            +
                          • Alice を読む
                          • +
                          • 文字の表示
                          • +
                          • VirtualBox
                          • +
                          +
                          + +
                          +

                          Alice

                          +

                          code segment と data segment の部分を読みました。もっと読み進める予定です。

                          +
                          + +
                          +

                          問題

                          +

                          x86_64 で動かしたい使いたいけれど、grub2 は i386 の実行形式しかサポートしていない。

                          +
                            +
                          • x86_64 の実行形式に i386 の実行形式を入れる方法
                          • +
                          • i386 の実行形式とx86_64 の実行形式をgrub2
                          • +
                          +
                          + +
                          +

                          VRAM

                          +

                          + メインメモリと同じアドレス空間にあり、同様に操作可能。
                          + video controller と呼ばれるチップが搭載されており、 VRAM から必要な情報を取り出してディスプレイへ信号を送り、 VRAM の操作をディスプレイへ反映させている。
                          +

                          +
                            video conroller のモード +
                          • グラフィックモード メモリのディスプレイとピクセルを対応
                          • +
                          • テキストモード メモリ上の ASCII コードとディスプレイの文字を対応
                          • +
                          +

                          今回はテキストモードで表示

                          +
                          + +
                          +

                          テキストモード

                          +

                          + video conroller は初期設定でテキストモードになっている。
                          + テキストモードで使われる VRAM はメインメモリの0xB8000 。
                          + 画面上の1文字は2バイト。色の指定に1バイト、ASCII コードの指定に1バイト使われている。
                          + 0xB8000 へ入れた文字一文字目が、画面左上に対応している。 +

                          +

                          Mac OS X で生成した CbC のソースが実行できた

                          +
                          + +
                          +

                          VirtualBox

                          +

                          command line で

                          +
                          +VirtualBox --debug --startvm Fedora
                          +      
                          +

                          GDB のコマンドとかなりずれてる。

                          +
                          + + +
                          +

                          Example

                          +
                            +
                          • g: continue
                          • +
                          • t: single step an instruction
                          • +
                          • stop: stop VM
                          • +
                          • dg: show GDT
                          • +
                          • di: show IDT
                          • +
                          • rg: print VM register
                          • +
                          • harakiri: kill debug process
                          • +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • GDT / LDT について学ぶ
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120911.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120911.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,147 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / September 11, 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。 + 本研究ではそれに沿った構成のOSを実装することを目的とする。 + その実装には、本研究室で開発された Continution based C (CbC)を用いる。 + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の使用からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。 + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + Cerium の Task Manager をのせる。 + shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計1/2 +

                          + + +

                          + Cerium の Task Manager を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 設計2/2 +

                          + +

                          + code segment のグループに分ける。 +

                          + +

                          + data segment と code segment の整合性をチェックする。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/09/11 ] +

                          +
                            +
                          • EFI についての調査
                          • +
                          • VirtualBox
                          • +
                          +
                          + +
                          +

                          UEFI

                          +

                          + PE32 という実行形式で UEFI image を書く。 +

                          +

                          VMware Fusion

                          +
                            +
                          • machinename.vmx
                          • +
                          +

                          の中に

                          +
                          +firmware = "efi"
                          +        
                          +

                          EFI shell が起動

                          +
                          + +
                          +

                          VirtualBox

                          +

                          command line で

                          +
                          +VirtualBox --debug --startvm Fedora
                          +      
                          +

                          GDB のコマンドとかなりずれてる。

                          +
                          + +
                          +

                          Example

                          +
                            +
                          • g: continue
                          • +
                          • t: single step an instruction
                          • +
                          • stop: stop VM
                          • +
                          • dg: show GDT
                          • +
                          • di: show IDT
                          • +
                          • rg: print VM register
                          • +
                          • harakiri: kill debug process
                          • +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • UEFI からの OS の起動方法について学ぶ。
                          • +
                          • qemu からの gdb 利用の仕方を調べる。
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120918.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120918.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,125 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Sep 18, 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continution based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の使用からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          + Cerium の Task Manager をのせる。 shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計1/2 +

                          + + +

                          + Cerium の Task Manager を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 設計2/2 +

                          + +

                          + code segment のグループに分ける。 +

                          + +

                          + data segment と code segment の整合性をチェックする。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/09/18 ] +

                          +
                            +
                          • UDK2010
                          • +
                          +
                          + +
                          +

                          UDK2010(EDK II)

                          +

                          + 動きません。
                          + EDKII のスクリプトで使われていた binutils のバージョンが binutils のサイトから消えていたので入れ替えましたが、今度は GCC-4.3.0 のmake で止まっています。
                          + 内蔵されている GCC-4.3.0 の make を通そうとしています。
                          + もしくは代わりに GCC-4.3.6 を使ってみます。
                          +

                          +
                          + +
                          +

                          gnu-efi

                          +

                          + 初代EDK を移植したもの。Mac OS X のboot.efi とか elilo とかにも使われているので、これを使うのも手かな、と思っています。 +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • UEFI からの OS の起動方法について学ぶ。
                          • +
                          • qemu からの gdb 利用の仕方を調べる。
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20120925.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20120925.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,130 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Sep 18, 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continution based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の使用からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          + Cerium の Task Manager をのせる。 shared library を減らす。
                          +

                          +
                          + +
                          +

                          + 設計1/2 +

                          + + +

                          + Cerium の Task Manager を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 設計2/2 +

                          + +

                          + code segment のグループに分ける。 +

                          + +

                          + data segment と code segment の整合性をチェックする。 +

                          +
                          + +
                          +

                          + 今週の作業 [~ 2012/09/18 ] +

                          +
                            +
                          • grub2 での 64bit 起動
                          • +
                          +
                          + +
                          +

                          grub2 での 64bit 起動

                          +

                          + 64bit の実行形式は、grub2 では直接起動できないので +

                          +
                            +
                          1. 二つ実行ファイルを作って elf32 から elf64 を起動
                          2. +
                          3. elf64 に elf32 を 結合する
                          4. +
                          +

                          + の二つの方法を試す。
                          + いまは 1 を試す準備中。 +

                          +
                          + +
                          +

                          grub2

                          +

                          + + module
                          +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • qemu からの gdb 利用の仕方を調べる。
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          +

                          END

                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121002.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121002.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,127 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Sep 18, 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continution based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の使用からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計1/2 +

                          + + +

                          + Cerium の Task Manager を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 設計2/2 +

                          + +

                          + code segment のグループに分ける。 +

                          + +

                          + data segment と code segment の整合性をチェックする。 +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/10/02 ] +

                          +
                            +
                          • grub2 での 64bit 起動
                          • +
                          +
                          + +
                          +

                          grub2 での 64bit 起動[1/2]

                          +

                          + 64bit の実行形式は、grub2 では直接起動できない。ELF64 だと GRUB2 が起動に必要なマジックナンバーを読んでくれないので、 +

                          +
                            +
                          1. 二つ実行ファイルを作って elf32 から elf64 を起動
                          2. +
                          3. elf64 に elf32 を 結合する
                          4. +
                          +

                          + の二つの方法を試している。
                          +

                          +
                          + +
                          +

                          grub2 での 64bit 起動[2/2]

                          +

                          + 下の図のように、32bit boot 部分と 64bit の kernel 開始前の繋ぎを、メモリの番地で指定しようとしている。
                          +

                          + +

                          + アセンブラの org とかで指定しようとしたが、できなかったので linker script で書く必要がある。リンクしていない他のコードへ、メモリ番地を指定してジャンプする方法を探す必要もある。「ljmpl *」ではメモリの即値指定はできなかったので他の方法を探してみる。要するに試行錯誤中。
                          +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • qemu からの gdb 利用の仕方を調べる。
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121009.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121009.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,103 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Oct 16 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の使用からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager がメインで動く。Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + + +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/10/02 ] +

                          +
                            +
                          • boot をそのまま書く
                          • +
                          +
                          + +
                          +
                          +

                          + 今後やること +

                          +
                            +
                          • grub2/EFI での 64bit 起動
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121016.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121016.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,127 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Sep 18, 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continution based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の使用からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計1/2 +

                          + + +

                          + Cerium の Task Manager を載せ、OS に渡される処理を並列化する。 +

                          +
                          + +
                          +

                          + 設計2/2 +

                          + +

                          + code segment のグループに分ける。 +

                          + +

                          + data segment と code segment の整合性をチェックする。 +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/10/02 ] +

                          +
                            +
                          • grub2 での 64bit 起動
                          • +
                          +
                          + +
                          +

                          grub2 での 64bit 起動[1/2]

                          +

                          + 64bit の実行形式は、grub2 では直接起動できない。ELF64 だと GRUB2 が起動に必要なマジックナンバーを読んでくれないので、 +

                          +
                            +
                          1. 二つ実行ファイルを作って elf32 から elf64 を起動
                          2. +
                          3. elf64 に elf32 を 結合する
                          4. +
                          +

                          + の二つの方法を試している。
                          +

                          +
                          + +
                          +

                          grub2 での 64bit 起動[2/2]

                          +

                          + 下の図のように、32bit boot 部分と 64bit の kernel 開始前の繋ぎを、メモリの番地で指定しようとしている。
                          +

                          + +

                          + アセンブラの org とかで指定しようとしたが、できなかったので linker script で書く必要がある。リンクしていない他のコードへ、メモリ番地を指定してジャンプする方法を探す必要もある。「ljmpl *」ではメモリの即値指定はできなかったので他の方法を探してみる。要するに試行錯誤中。
                          +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • qemu からの gdb 利用の仕方を調べる。
                          • +
                          • 32bit mode から 64bit mode (long mode) へ。
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121023.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121023.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,131 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Oct 23 2012

                          +
                          + +
                          +

                          研究目的

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上とプログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +
                          Task Manager も必要? +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/10/23 ] +

                          +
                            +
                          • boot をそのままアセンブラで書く
                          • +
                          +
                          + +
                          +

                          boot loader

                          +

                          32 bit までの起動を確認した。grub に近い。

                          +
                            +
                          • A20 ゲートを ON に
                          • +
                          • 32 bit protected mode
                          • +
                          +
                          +

                          MBR

                          +

                          MBR の領域が 512byte しかないので、別の領域へカーネルコードをロードする必要がある。

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 64 bit mode へ移行、そのままカーネルへ
                          • +
                          • grub2/EFI での 64bit 起動
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121106.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121106.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,153 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Oct 23 2012

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +
                          Task Manager も必要? +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/11/06 ] +

                          +
                            +
                          • UEFI のマニュアルを読む
                          • +
                          • boot をそのままアセンブラで書く
                          • +
                          +
                          + +
                          +

                          UEFI から実行するために必要な実行形式

                          +

                          PE32+ (Portable Executable)

                          +

                          + 32bit / 64bit の Windows 上で使用されるファイルのフォーマット。UEFI でも メインのフォーマットになる。
                          + UEFI で OS を boot する場合は、OS の loader でも UEFI shell から起動できるアプリケーションになる。そのアプリケーションは PE32 / PE32+ になっている必要がある。
                          + その為に binutils のインストールをした。 +

                            +
                          +
                          +        
                          + + +
                          + +
                          +

                          boot loader

                          +

                          32 bit までの起動を確認した。grub に近い。

                          +
                            +
                          • A20 ゲートを ON に
                          • +
                          • 32 bit protected mode
                          • +
                          +
                          +

                          MBR

                          +

                          MBR の領域が 512byte しかないので、別の領域へカーネルコードをロードする必要がある。

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 64 bit mode へ移行、そのままカーネルへ
                          • +
                          • grub2/EFI での 64bit 起動
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121113.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121113.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,166 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Nov 13 2012

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +
                          Task Manager も必要? +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/11/06 ] +

                          +
                            +
                          • UEFI のマニュアルを読む
                          • +
                          +
                          + +
                          +

                          UEFI から実行するために必要な実行形式

                          +

                          PE32+ (Portable Executable)

                          +

                          + 32bit / 64bit の Windows 上で使用されるファイルのフォーマット。UEFI でも メインのフォーマットになる。
                          + UEFI で OS を boot する場合は、OS の loader でも UEFI shell から起動できるアプリケーションになる。そのアプリケーションは PE32 / PE32+ になっている必要がある。
                          + その為に binutils のインストールをした。 +

                            +
                          + +
                          +

                          QEMU

                          +

                          + linux kernel を qemu を実行 +

                          +
                          +qemu-system-x86_64 -s -kernel arch/x86/boot/bzImage -hda disk.img \
                          +-apppend "root=/dev/hda"
                          +        
                          +

                          + port 1234 は qemu の -s オプションで自動的に決まる + gdb を vmlinux シンボルを使って +

                          +
                          +gdb vmlinux
                          +(gdb) target remote localhost:1234
                          +        
                          +

                          + とすると接続できる。 +

                          +
                          + +
                          +

                          QEMU

                          +

                          原因

                          +
                            + そもそも make menuconfig のオプションがおかしい

                            + debug オプションが悪い +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 64 bit mode へ移行、そのままカーネルへ
                          • +
                          • EFI での 64bit 起動
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121120.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121120.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,200 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Nov 13 2012

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +
                          Task Manager も必要? +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/11/20 ] +

                          +
                            +
                          • UEFI のマニュアルを読む
                          • +
                          • EFI のテストコードを実行
                          • +
                          +
                          + +
                          +

                          UEFI から実行するために必要な実行形式

                          +

                          PE32+ (Portable Executable)

                          +

                          + 32bit / 64bit の Windows 上で使用されるファイルのフォーマット。UEFI でも メインのフォーマットになる。
                          + UEFI で OS をブートする場合は、OS の loader でも UEFI shell から起動できるアプリケーションになる。そのアプリケーションは PE32 / PE32+ になっている必要がある。
                          + そのアプリケーションは、FAT32/16/12 でフォーマットされたデバイス上の、/EFI/BOOT/BOOT{ARCH}.efi へ置くとブートされる。 +

                            +
                          + +
                          +

                          EFI Shell

                          +

                          + PE32+(64bit 対応) の文字を表示するだけのテストコードを動かそうとしている。
                          + 残念ながら動かない。起動すると、テストコードがある場所でエラーで落ちる。コードを読みに行って落ちているのでコードそのものに問題がある。 +

                          +
                          + +
                          +

                          QEMU

                          +

                          + linux kernel で qemu を実行 +

                          +
                          +qemu-system-x86_64 -s -kernel arch/x86/boot/bzImage -hda disk.img \
                          +-apppend "root=/dev/hda"
                          +        
                          +

                          + port 1234 は qemu の -s オプションで自動的に決まる。localhost の部分にはIP アドレスが入る。
                          + linux のソースコードのトップで gdb を vmlinux シンボルを使って +

                          +
                          +gdb vmlinux
                          +(gdb) target remote localhost:1234
                          +        
                          +

                          + とすると接続できる。
                          +

                          +
                          + +
                          +

                          KVM の XML に追加

                          +
                          +<qemu:commandline>
                          +<qemu:arg value='-s'/>
                          +</qemu:commandline>
                          +        
                          +

                          + 追加後は再起動必須。 +

                          +
                          + +
                          +

                          VMware Fusion

                          +
                          +debugStub.listen.guest64 = "TRUE"
                          +debugStub.listen.guest64.remote = "TRUE"
                          +monitor.debugOnStartGuest64 = "TRUE"
                          +debugStub.hideBreakpoints = "TRUE"
                          +        
                          +

                          + 上を .vmx に追加すると、gdb から +

                          +
                          +gdb vmlinux
                          +(gdb) target remote localhost:8864
                          +        
                          +

                          + でアクセスできる。 +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 64 bit mode へ移行、そのままカーネルへ
                          • +
                          • EFI での 64bit 起動
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • elilo のソース読む
                          • +
                          • 引き続き UEFI のマニュアル読む
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121127.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121127.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,157 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Nov 13 2012

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +
                          Task Manager も必要? +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/11/27 ] +

                          +
                            +
                          • Mach-O について調査
                          • +
                          • kernel をコンパイルした時に現れる bzimage について
                          • +
                          +
                          + +
                          +
                          +#include <mach-o/loader.h>
                          +        
                          +

                          + に Mach-O の構造体やヘッダー、ヘッダーコマンドがあるのでそれを使用する。 +

                          +
                          + +
                          +

                          bzImage

                          +

                          vmlinux を圧縮した形式のファイル。/boot/vmlinuz-xxx として置いてある。
                          + 3つのファイルから成る。

                          +
                            +
                          • bootsect.o
                            + フロッピーからのブート時に使われるブートセクタ用ファイル
                          • +
                          • setup.o
                            + 低レベルの初期化を行うコードを含む。初期化が終わると 0x100000 へジャンプし、ロード済みの vmlinux のエントリルーチンへ処理を移す
                          • +
                          • vmlinux
                            + bzImage に含まれるカーネルイメージの他に、カーネルイメージを展開するコードを含む
                          • +
                          +
                          + + +
                          +

                          + 今後やること +

                          +
                            +
                          • 64 bit mode へ移行、そのままカーネルへ
                          • +
                          • EFI での 64bit 起動
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • elilo のソース読む
                          • +
                          • 引き続き UEFI のマニュアル読む
                          • +
                          • Mach-O のローダを書く
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20121204.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20121204.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,158 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Nov 13 2012

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +
                          Task Manager も必要? +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          code segment / data segment

                          + +
                          + +
                          +

                          + 今週の作業 [ ~ 2012/11/27 ] +

                          +
                            +
                          • Mach-O について調査
                          • +
                          • kernel をコンパイルした時に現れる bzimage について
                          • +
                          +
                          + +
                          +
                          +#include <mach-o/loader.h>
                          +        
                          +

                          + に Mach-O の構造体やヘッダー、ヘッダーコマンドがあるのでそれを使用する。 +

                          +
                          + +
                          +

                          bzImage

                          +

                          vmlinux を圧縮した形式のファイル。/boot/vmlinuz-xxx として置いてある。
                          + 3つのファイルから成る。

                          +
                            +
                          • bootsect.o
                            + フロッピーからのブート時に使われるブートセクタ用ファイル
                          • +
                          • setup.o
                            + 低レベルの初期化を行うコードを含む。初期化が終わると 0x100000 へジャンプし、ロード済みの vmlinux のエントリルーチンへ処理を移す
                          • +
                          • vmlinux
                            + bzImage に含まれるカーネルイメージの他に、カーネルイメージを展開するコードを含む
                          • +
                          +
                          + + +
                          +

                          + 今後やること +

                          +
                            +
                          • 64 bit mode へ移行、そのままカーネルへ
                          • +
                          • EFI での 64bit 起動
                          • +
                          • malloc のソース/メモリ管理関係の資料を読む
                          • +
                          • elilo のソース読む
                          • +
                          • 引き続き UEFI のマニュアル読む
                          • +
                          • Mach-O のローダを書く
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20130115.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20130115.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,155 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Dec 11 2012

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + code segment, data segment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2013/01/15 ] +

                          +
                            +
                          • elilo のソース読み
                          • +
                          • Mach-O について調査
                          • +
                          +
                          + +
                          +

                          elilo[1/2]

                          +

                          Linux 用の bootloader。EFI の API を利用して、EFI からメモリの allocate や kernel のロード、kernel の実行などを行う。

                          +
                          + +
                          +

                          elilo[2/2]

                          + +
                          + +
                          +

                          efi application

                          +
                            +
                          • hello world の表示
                          • +
                          • 64bit 用の実行形式 PE+ で表示できた
                          • +
                          • boot へ、まだ firmware 上での実行
                          • +
                          • realmode / protected mode を経由しなくても直接 boot できる……はず
                          • +
                          +
                          + +
                          +

                          Mach-O

                          +
                          +#include <mach-o/loader.h>
                          +        
                          +

                          + に Mach-O の構造体やヘッダー、ヘッダーコマンドがあるのでそれを使用する。 +

                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 引き続き elilo のソース読む
                          • +
                          • Mach-O / ELF のローダを書く
                          • +
                          • 特権/ユーザーモードについて
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/20130122.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/20130122.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,181 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira / Jan 22 2013

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + Codesegment, Datasegment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          + 故障が発生した際に、機能を完全に喪失するのではなく、 可能な範囲で機能が維持されるようにすることを Graceful Degradation という。
                          + この Graceful Degradation を目指して実装をすすめる。
                          +

                          +
                          + +
                          +

                          + 設計[1/3] +

                          + + +

                          + Datasegment Manager から Codesegment / Task / Datasegment を取り出して、Codesegment Manager へ投げる。 +

                          +
                          + +
                          +

                          + 設計[2/3] CodeSegment +

                          + +

                          Task で Codesegment に対応している Datasegment を InputDatasegment を通して Codesegment で実行する。 +
                          OutputDatasegment で Datasegment が正しいか確認する。 +
                          InputDatasegment と OutputDatasegment を CodeSegment で実行する結果が、Hoare Logic で証明できる? +

                          +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          + + +
                          + +
                          +

                          + 設計[3/3] DataSegment +

                          +

                          + Persistent Datasegment から key を参照してデータを取ってくることが基本になる。 +
                          PDS からコピーして Datasegment は Temporary Datasegment に。使い終わったら、さらに TDS をコピーして PDS へ戻す。 +
                          基本的には PDS から Task を参照して、CS と CS に必要な DS をコピーし、CS を CS Manager で実行。 +

                          +
                          + +
                          +

                          論文目次[1/2]

                          +
                            +
                          • 研究目的/背景
                          • +
                          • CbC
                            + CbC で実装することの利点
                          • +
                          • UEFI
                            + UEFI でロードすることの利点
                          • +
                          • 64bit OS
                          • +
                          • Page Table Entry
                            + 特権モード/ユーザーモード
                          • +
                          + +
                          +

                          論文目次[2/2]

                          +
                            +
                          • Codesegment
                            + Codesegment Manager
                          • +
                          • Datasegment
                          • + Datasegment Manager +
                          • Protocol
                            + Protocol Manager
                          • +
                          • 今後の課題
                            + device driver
                          • +
                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2013/01/22 ] +

                          +
                            +
                          • Mach-O loader を書いている最中
                          • +
                          • Linux のメモリ管理を読む
                          • +
                          +
                          + +
                          +

                          elilo

                          +

                          Linux 用の bootloader。EFI の API を利用して、EFI からメモリの allocate や kernel のロード、kernel の実行などを行う。

                          +
                            elilo の使う filesystem +
                          • ・Local filesystem
                          • +
                          • ・Net filesystem
                          • +
                          • ・Ext2 filesystem
                          • +
                          +

                          今回は Local filesystem を使う。

                          +
                          + +
                          +

                          efi application

                          +
                            +
                          • 0x100000 へロードしboot へ、まだ firmware 上での実行
                          • +
                          • Read, Open, Close
                          • +
                          • realmode / protected mode を経由しなくても直接 boot できる……はず
                          • +
                          +
                          + +
                          +

                          Linux memory management

                          +
                            arch/x86/mm 以下の +
                          • tlb.c
                          • +
                          • init.c / init_64.c
                          • +
                          • pgtable.c
                          • +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 引き続き elilo のソース読む
                          • +
                          • Mach-O / ELF のローダを書く
                          • +
                          • 特権/ユーザーモードについて
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/CodeSegment.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/CodeSegment.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,616 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-12 00:57:32 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{231.42648592283624, 104}, {141.89781021897812, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 38 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CodeSegment Processing} + VerticalPad + 0 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 37 + Points + + {355.07352044908521, 169.01209519285123} + {397.50000771382821, 169.02183285551897} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 32 + + ID + 36 + Points + + {207.25078690329471, 169.00001799114307} + {249.67727435029531, 169.00001799114307} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 9 + + + + Class + LineGraphic + ID + 39 + Points + + {484.59703645874362, 146.65224462410862} + {518, 129.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 10 + + + + Class + LineGraphic + ID + 30 + Points + + {484.60263175578706, 189.98651889224914} + {523, 208.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 10 + + + + Bounds + {{275.51616903788351, 155.5}, {70.948905109489061, 45}} + Class + ShapedGraphic + ID + 26 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Data\ +segment} + + + + Bounds + {{266.39416695237787, 146.5}, {70.948905109489061, 45}} + Class + ShapedGraphic + ID + 25 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Data\ +Segment} + + + + Bounds + {{257.27216486687212, 137.5}, {70.948905109489061, 45}} + Class + ShapedGraphic + ID + 24 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Data\ +Segment} + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 15 + Points + + {84, 129.5} + {120.15057528568232, 147.42223044762736} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 14 + Points + + {76, 208.5} + {120.14267455758122, 188.61243468836309} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + + + Class + LineGraphic + ID + 13 + Points + + {484.65224262086804, 169.22953190480055} + {536.00000000000023, 169.5} + {536.00000000000023, 169.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 10 + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 11 + Points + + {76, 167} + {120.09867500087454, 168.00596163165068} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + + + Bounds + {{398.00000762939453, 129.5}, {86.152241918665268, 79}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Output\ +data segment} + + + + Bounds + {{120.59854497899607, 129.5}, {86.152241918665268, 79}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Input\ +data segment} + + + + Bounds + {{250.17727435592306, 129.5}, {104.39624608967672, 79}} + Class + ShapedGraphic + ID + 32 + Shape + Rectangle + + + Bounds + {{223.3753961069865, 95.5}, {158.00001525878906, 129}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-29 06:35:05 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{640, 141}, {770, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-38, 0}, {635, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/CodeSegment.png Binary file seminar/seminar2012/CodeSegment.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/DataSegment.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/DataSegment.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,432 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-16 10:17:32 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{79.908975768199241, 308}, {343.68202764976951, 27}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Data} + + + + Bounds + {{77.500000000000057, 294}, {143.46850998463901, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 13 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Temporary DataSegment} + VerticalPad + 0 + + + + Bounds + {{176.26843803159653, 234.61756896972656}, {247.32258064516125, 27}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Data} + + + + Bounds + {{79.908991026988247, 234.61756896972656}, {96.359447004608271, 27}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Key} + + + + Bounds + {{77.499994444956997, 220.61756896972656}, {143.46850998463901, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 10 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Persistent Data Segment} + VerticalPad + 0 + + + + Bounds + {{273.20615671641769, 97.027054620883746}, {136.53917910447763, 77.208081493061499}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 PDS} + + + + Bounds + {{98.956156716417809, 97.027054620883746}, {136.53917910447763, 77.208081493061499}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 TDS} + + + + Bounds + {{98.463621452673038, 54}, {124.51119402985078, 27}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DataSegment} + + + + Bounds + {{77.499999999999886, 67.163551401869185}, {348.5, 131.83644104003909}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-16 10:43:51 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{658, 100}, {693, 938}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/DataSegment.png Binary file seminar/seminar2012/DataSegment.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/EFI.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/EFI.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,370 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-29 21:37:09 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 3 + + ID + 8 + Points + + {145.49999127068222, 95.5} + {145.49999127068222, 75.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 5 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 7 + Points + + {145.50001608766675, 142.5} + {145.50001608766675, 162.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 5 + + + + Bounds + {{54, 213}, {183, 29}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Hardware} + + + + Bounds + {{54, 96}, {183, 46}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 EFI} + + + + Bounds + {{54, 163}, {183, 29}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Firmware} + + + + Bounds + {{54, 46}, {183, 29}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Operating System} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-29 21:43:17 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSPrinter + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAlOU1ByaW50ZXIAhIQITlNPYmplY3QAhZKEhIQITlNTdHJpbmcBlIQBKx1jaW5uYW1vbi5jci5pZS51LXJ5dWt5dS5hYy5qcIaG + + NSPrinterName + + string + cinnamon.cr.ie.u-ryukyu.ac.jp + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{579, 80}, {693, 938}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/Moving_DS_pointer.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/Moving_DS_pointer.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1490 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-14 08:55:00 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{96.5, 68}, {108, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 57 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Thread or CPU core} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 40 + + ID + 53 + Points + + {438.49200582002618, 237.87632701909826} + {472.50670911995627, 244.03292721043064} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 8 + + + + Class + LineGraphic + Head + + ID + 39 + + ID + 52 + Points + + {438.49476157663753, 226.8194585856148} + {472.50638880049428, 221.85706960533201} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 8 + + + + Class + LineGraphic + Head + + ID + 38 + + ID + 51 + Points + + {438.4944942622501, 177.31432142524554} + {472.50566393718702, 182.40196389718696} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 10 + + + + Class + LineGraphic + Head + + ID + 36 + + ID + 50 + Points + + {438.49149953427911, 112.94468497360894} + {472.50903306630443, 119.29867766106085} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 13 + + + + Class + LineGraphic + Head + + ID + 37 + + ID + 49 + Points + + {438.49231683298132, 166.2574461946987} + {472.50749228762737, 160.2261154301537} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 10 + + + + Class + LineGraphic + Head + + ID + 35 + + ID + 47 + Points + + {438.49516304588491, 101.88786171712037} + {472.50444208370436, 97.122638662186105} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 13 + + + + Class + LineGraphic + Head + + ID + 7 + + ID + 46 + Points + + {70.493714821750658, 244.17907900035274} + {108.50855827159016, 238.09399080684628} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 34 + + + + Class + LineGraphic + Head + + ID + 7 + + ID + 45 + Points + + {70.494204291817709, 221.64624112444531} + {108.50393703624691, 227.48443940324756} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 33 + + + + Class + LineGraphic + Head + + ID + 6 + + ID + 44 + Points + + {70.494446550205296, 182.44279541519077} + {108.50431967193813, 176.72999699901655} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 32 + + + + Class + LineGraphic + Head + + ID + 6 + + ID + 43 + Points + + {70.493458062368873, 159.9099786691107} + {108.50802572591007, 166.12049945990157} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 31 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 42 + Points + + {70.491684137675705, 119.5147810174914} + {108.50735481314555, 112.49349097432528} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 29 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 41 + Points + + {84.15549761330017, 98.616882566614706} + {108.50470302548234, 101.95487526356} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 27 + + + + Bounds + {{473, 237}, {53, 23}} + Class + ShapedGraphic + ID + 40 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{473, 206}, {53, 23}} + Class + ShapedGraphic + ID + 39 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{473, 175}, {53, 23}} + Class + ShapedGraphic + ID + 38 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{473, 144}, {53, 23}} + Class + ShapedGraphic + ID + 37 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{473, 113}, {53, 23}} + Class + ShapedGraphic + ID + 36 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{473, 82}, {53, 23}} + Class + ShapedGraphic + ID + 35 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{17, 237}, {53, 23}} + Class + ShapedGraphic + ID + 34 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{17, 206}, {53, 23}} + Class + ShapedGraphic + ID + 33 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{17, 175}, {53, 23}} + Class + ShapedGraphic + ID + 32 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{17, 144}, {53, 23}} + Class + ShapedGraphic + ID + 31 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{17, 113}, {53, 23}} + Class + ShapedGraphic + ID + 29 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS p} + + + + Bounds + {{9.9999973571378007, 82}, {73.660133361816406, 23}} + Class + ShapedGraphic + ID + 27 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DS pointer} + + + + Bounds + {{9.9999971389770508, 45.872703552246094}, {235, 14}} + Class + ShapedGraphic + FitText + Vertical + Flow + Resize + ID + 26 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Data move between each CodeSegment } + VerticalPad + 0 + + + + Class + LineGraphic + Head + + ID + 13 + + ID + 25 + Points + + {291.14911465979355, 214.9093728650405} + {386.95032225982885, 123.47178790314722} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 9 + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 22 + Points + + {176.11564759060767, 187.54587052611078} + {239.71509170317202, 216.33083419564764} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 6 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 21 + Points + + {307.33006533280042, 172.2425619826428} + {370.83986571631021, 172.21997612988221} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 11 + + + + Class + LineGraphic + Head + + ID + 11 + + ID + 20 + Points + + {176.16012853626697, 172.15498943855729} + {239.66995260923241, 171.96800196546482} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 6 + + + + Class + LineGraphic + Head + + ID + 13 + + ID + 19 + Points + + {306.75846556963916, 155.52996163737862} + {370.89140397682161, 123.27953372408403} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 11 + + + + Class + LineGraphic + Head + + ID + 8 + + ID + 18 + Points + + {291.1600816907976, 123.4724030590617} + {387.02081998072947, 214.9093728650405} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 12 + + + + Class + LineGraphic + Head + + ID + 8 + + ID + 17 + Points + + {307.28558223113043, 187.54587052610259} + {370.88502634369502, 216.33083419562411} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 11 + + + + Class + LineGraphic + Head + + ID + 11 + + ID + 16 + Points + + {176.11497365630524, 216.3308341956492} + {239.71315695169335, 187.29647884741985} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 7 + + + + Class + LineGraphic + Head + + ID + 12 + + ID + 15 + Points + + {175.58853092911613, 155.52996163737859} + {239.72146933629855, 123.27953372408371} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 6 + + + + Class + LineGraphic + Head + + ID + 11 + + ID + 14 + Points + + {175.83048251888525, 123.3506159446606} + {240.29210232921429, 155.52968578270657} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{371.33986928104594, 90.127296447753906}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{240.16993464052291, 90.127296447753906}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{240.16993464052291, 155.75459289550781}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{371.33986546634867, 155.75459289550781}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{240.16993464052291, 215.25459289550781}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{371.33986928104594, 215.25459289550781}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{109.00000000000013, 215.25459289550781}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{109.00000000000013, 155.75459289550781}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{109.00000000000013, 90.127296447753906}, {66.660130718954207, 33}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CS} + + + + Bounds + {{96.5, 210.74540804110367}, {350, 49.254592895507812}} + Class + ShapedGraphic + ID + 54 + Shape + Rectangle + + + Bounds + {{96.5, 145.2545938321193}, {350, 54}} + Class + ShapedGraphic + ID + 55 + Shape + Rectangle + + + Bounds + {{96.5, 82.000000936611485}, {350, 49.254592895507812}} + Class + ShapedGraphic + ID + 56 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-14 10:02:51 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSPrinter + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAlOU1ByaW50ZXIAhIQITlNPYmplY3QAhZKEhIQITlNTdHJpbmcBlIQBKx1jaW5uYW1vbi5jci5pZS51LXJ5dWt5dS5hYy5qcIaG + + NSPrinterName + + string + cinnamon.cr.ie.u-ryukyu.ac.jp + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{170, -0}, {837, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-72, 0}, {702, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/Moving_DS_pointer.png Binary file seminar/seminar2012/Moving_DS_pointer.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/PDS.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/PDS.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,360 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-16 10:59:41 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{97.993667602539062, 150.60788154602051}, {39.006332397460938, 25}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 key} + + + + Bounds + {{97.993667602539062, 115.00000190734863}, {39.006332397460938, 25}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 key} + + + + Bounds + {{97.993667602539062, 79.392122268676758}, {39.006332397460938, 25}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 key} + + + + Bounds + {{97.993666153919833, 150.60788291083236}, {177.00633239746094, 25}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DataSegment} + + + + Bounds + {{97.993666153919833, 79.392122101463201}, {177.00633239746094, 25}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Task} + + + + Bounds + {{97.993666153919833, 115}, {177.00633239746094, 25}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CodeSegment} + + + + Bounds + {{71.000000000000014, 25}, {166.84177215189877, 25}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 PDS DataBase} + + + + Bounds + {{60.000000000000028, 35.964877584264343}, {242, 158.03512573242188}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-16 13:55:50 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{216, 49}, {693, 938}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/PDS.png Binary file seminar/seminar2012/PDS.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/ac_elilo_movement.png Binary file seminar/seminar2012/ac_elilo_movement.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/ban_how_to_accsess.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/ban_how_to_accsess.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,442 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-14 12:02:25 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 10 + + ID + 12 + Points + + {200.21731449749961, 196.19567194485629} + {222.78268550250047, 196.19567194485629} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 5 + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 11 + Points + + {200.21731449749959, 60.804362854203802} + {222.78268550250047, 60.804362854203802} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{223.28268551236755, 177.39130434782612}, {111.71731448763252, 37.608695652173921}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CodeSegment} + + + + Bounds + {{223.28268551236755, 41.999999999999964}, {111.71731448763252, 37.608695652173921}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CodeSegment} + + + + Class + LineGraphic + Head + + ID + 3 + + ID + 7 + Points + + {164.45308235464964, 177.0508746745902} + {196.08544978218256, 147.64511884903027} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 5 + + + + Class + LineGraphic + Head + + ID + 3 + + ID + 6 + Points + + {164.45308464643352, 79.949125297859126} + {196.08544749173495, 109.35487354909181} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{88, 177.39130434782612}, {111.71731448763252, 37.608695652173921}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CodeSegment} + + + + Bounds + {{88, 41.999999999999964}, {111.71731448763252, 37.608695652173921}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CodeSegment} + + + + Bounds + {{172.56537102473487, 109.69564835921577}, {88.151943462897634, 37.608695652173921}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 DataSegment} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-15 10:56:54 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{298, 94}, {693, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/boot_process.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/boot_process.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,388 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-11-20 09:18:12 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{176.5, 69}, {69, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 8 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 boot process} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 5 + + ID + 7 + Points + + {211.00000892306329, 219.5} + {211.00000892306329, 249.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 4 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 6 + Points + + {210.99999019268193, 145.5} + {210.99999019268193, 175.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 3 + + + + Bounds + {{123, 250}, {176, 43}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 kernel} + + + + Bounds + {{123, 176}, {176, 43}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 bootstrap} + + + + Bounds + {{123, 102}, {176, 43}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 EFI} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-11-20 09:20:37 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{588, 120}, {693, 938}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/boot_process.png Binary file seminar/seminar2012/boot_process.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/check code.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/check code.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,370 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-09-04 04:58:56 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 6 + + ID + 10 + Points + + {156.48751522509218, 121.49999997135259} + {156.46443730769732, 182.50000029106801} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 3 + + + + Class + LineGraphic + Head + + ID + 3 + + ID + 8 + Points + + {308.52104089895624, 134.12305299473823} + {204.47876721791977, 102.94667311811308} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 4 + + + + Class + LineGraphic + Head + + ID + 6 + + ID + 7 + Points + + {308.52594577241803, 164.58804157861431} + {204.47426172276403, 199.48164909768116} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{109, 183}, {95, 65}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 data segment} + + + + Bounds + {{309, 116}, {95, 65}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 check +\f1 code} + + + + Bounds + {{109, 56}, {95, 65}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 code segment} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-09-04 05:19:15 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{334, 0}, {693, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/check code.png Binary file seminar/seminar2012/check code.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/curry.JPG Binary file seminar/seminar2012/curry.JPG has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/data_segment_manager.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/data_segment_manager.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,620 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-29 08:20:37 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 38 + + ID + 39 + Points + + {337.6895788293188, 378.60813784370305} + {375.90059105359393, 330.39291550944199} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 44 + + + + Bounds + {{265, 379}, {98, 59}} + Class + ShapedGraphic + ID + 44 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Code segment} + + + + Bounds + {{256, 370}, {98, 59}} + Class + ShapedGraphic + ID + 43 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Code segment} + + + + Bounds + {{247, 361}, {98, 59}} + Class + ShapedGraphic + ID + 42 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Code segment} + + + + Bounds + {{224.5, 242}, {91.5, 42}} + Class + ShapedGraphic + ID + 41 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Persistant data segment} + + + + Class + LineGraphic + Head + + ID + 41 + + ID + 40 + Points + + {360.51747561331609, 287.50649979500486} + {316.48254202411044, 275.54830156566919} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 38 + + + + Bounds + {{361, 267}, {80, 63}} + Class + ShapedGraphic + ID + 38 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Temporary data segment} + + + + Class + LineGraphic + Head + + ID + 16 + + ID + 36 + Points + + {181.75, 381.49998004658261} + {237.5, 381.49998004658261} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 4 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 35 + Points + + {116.43118263357286, 297.54547403501459} + {64, 319} + {70, 352} + {100.78803106267405, 364.74732514173871} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 11 + + + + Bounds + {{238, 352}, {98, 59}} + Class + ShapedGraphic + ID + 16 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Code segment} + + + + Bounds + {{116.89393939393933, 257}, {94.606060606060595, 42}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Persistant data segment} + + + + Bounds + {{108.40909090909089, 246}, {94.606060606060595, 42}} + Class + ShapedGraphic + ID + 15 + Shape + Rectangle + + + Bounds + {{100.77272727272727, 237}, {94.606060606060595, 42}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + + + Bounds + {{93.136363636363669, 228}, {94.606060606060595, 42}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + + + Bounds + {{85.500000000000071, 219}, {94.606060606060595, 42}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + + + Bounds + {{85.5, 201}, {52, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 8 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Database} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{75, 192}, {255, 122}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + + + Bounds + {{101.25, 350}, {80, 63}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Temporary data segment} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-29 21:36:51 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSPrinter + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAlOU1ByaW50ZXIAhIQITlNPYmplY3QAhZKEhIQITlNTdHJpbmcBlIQBKx1jaW5uYW1vbi5jci5pZS51LXJ5dWt5dS5hYy5qcIaG + + NSPrinterName + + string + cinnamon.cr.ie.u-ryukyu.ac.jp + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{558, 280}, {693, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/elilo_movement.asta Binary file seminar/seminar2012/elilo_movement.asta has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/how_move_CSDS.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/how_move_CSDS.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,772 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-09-04 04:13:31 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 20 + + ID + 25 + Points + + {457.78747490937639, 147.49998479392718} + {457.2961318749966, 210.50002952351551} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 8 + + + + Class + LineGraphic + Head + + ID + 19 + + ID + 24 + Points + + {360.78747490937639, 147.49998479392718} + {360.2961318749966, 210.50002952351551} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 7 + + + + Class + LineGraphic + Head + + ID + 18 + + ID + 23 + Points + + {264.01938982692189, 147.49999986069597} + {264.06421768497034, 210.50000138186837} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 6 + + + + Class + LineGraphic + Head + + ID + 17 + + ID + 22 + Points + + {166.78747490937636, 147.49998479392718} + {166.29613187499666, 210.50002952351551} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 5 + + + + Class + LineGraphic + Head + + ID + 16 + + ID + 21 + Points + + {71.787474909376357, 147.49998479392718} + {71.296131874996647, 210.50002952351551} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{426, 211}, {62, 53.5}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 20 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 data} + + + + Bounds + {{329, 211}, {62, 53.5}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 19 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 data} + + + + Bounds + {{233, 211}, {62, 53.5}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 18 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 data} + + + + Bounds + {{135, 211}, {62, 53.5}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 17 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 data} + + + + Bounds + {{40, 211}, {62, 53.5}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 16 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 data} + + + + Class + LineGraphic + Head + + ID + 8 + + ID + 15 + Points + + {392.5, 120.25} + {426.5, 120.25} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 7 + + + + Class + LineGraphic + Head + + ID + 7 + + ID + 13 + Points + + {295.5, 120.25} + {329.5, 120.25} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 6 + + + + Class + LineGraphic + Head + + ID + 6 + + ID + 12 + Points + + {198.5, 120.25} + {232.5, 120.25} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 5 + + + + Class + LineGraphic + Head + + ID + 5 + + ID + 10 + Points + + {103.5, 120.25} + {135.5, 120.25} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{41, 52}, {95, 32}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 code group} + + + + Bounds + {{427, 93.5}, {62, 53.5}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 code} + + + + Bounds + {{330, 93.5}, {62, 53.5}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 code} + + + + Bounds + {{233, 93.5}, {62, 53.5}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 code} + + + + Bounds + {{136, 93.5}, {62, 53.5}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 code} + + + + Bounds + {{41, 93.5}, {62, 53.5}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 code} + + + + Bounds + {{22, 69.875}, {484, 100.75}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-09-04 04:55:08 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{314, 0}, {693, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/how_move_CSDS.png Binary file seminar/seminar2012/how_move_CSDS.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/how_use_memory.png Binary file seminar/seminar2012/how_use_memory.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/index.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,160 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          河野研 研究室紹介

                          +
                          + +
                          +

                          + Q 週にどれくらい研究室に行きますか? +

                          +
                            +
                          • ほぼ毎日
                          • +
                          +
                          + +
                          + +

                          + Q 夏休みはありましたか? +

                          +
                            +
                          • ないです。ごく普通に毎週ゼミはあります
                          • +
                          +
                          + +
                          + +

                          + Q 進学、就職、退学、留年の割合は? +

                          +
                            +
                          • 進学率100%(ここ近年調べ)
                          • +
                          +
                            +
                          • M2 +
                              +
                            • 玉城将士
                            • +
                            +
                          • +
                          • M1 +
                              +
                            • 當眞大千
                            • +
                            • 大城信康
                            • +
                            • 谷成雄
                            • +
                            +
                          • +
                          • B4 +
                              +
                            • 渡真利勇飛
                            • +
                            • 杉本優
                            • +
                            • 平良太貴
                            • +
                            +
                          • +
                          +
                          + +
                          + +

                          + Q どれくらいの人数が留学に行きますか? +

                          +
                            +
                          • 留学0%(ここ近年調べ)
                          • +
                          +
                          + +
                          +

                          + Q 備品はどのような機材がありますか? +

                          +
                            +
                          • Mac Pro
                          • +
                          • Displayは1人1台以上
                          • +
                          • keyBoard,mouse
                          • +
                          • 河野先生の意向次第で好きな備品を買ってもらえます。Maybe
                          • +
                          +
                          + +
                          +

                          + Q 先生にはどのくらいの頻度で食事に連れて行ってもらえますか? +

                          +
                            +
                          • 週1以上(ゼミのあとはご飯です)
                          • + 頻度は、ハリーズ>>>>>>>>>大戸屋>その他
                            + 先生がほとんど毎日研究室に来るので先生とご飯食べに行く機会は多いかもしれません。 +
                          +
                          + +
                          +

                          ハリーーーーーーーーーーーーーズ

                          + +
                          + +
                          +

                          + Q ルールはある? +

                          +
                            +
                          • なるべく研究室に来るように、先生が寂しがります。
                          • +
                          • 配属された方はもれなくカレーパーティに参加できます。(河野先生の自宅で)今年は12月に予定
                          • +
                          +
                          + +
                          +

                          + Q 研究室の特徴は? +

                          +
                            +
                          • @homeな研究室です。
                          +
                          + +
                          +

                          + Q 一週間のゼミの回数は? +

                          +
                            +
                          • 週1です。ソース読み会が突然発生します。
                          • +
                          • ゼミの内容は各自1週間の成果、進捗状況を報告します。
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/kernel.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/kernel.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,348 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-10-23 08:50:29 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{98, 274}, {155, 101}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Temporary Datasegment} + + + + Bounds + {{279.5, 274}, {143.5, 101}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Persistent Datasegment} + + + + Bounds + {{68, 99}, {35, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 6 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Kernel} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{85, 218}, {338, 165}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Datasegment Manager} + + + + Bounds + {{98, 145}, {326, 41}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Codesegment Manager} + + + + Bounds + {{68, 117}, {384, 287}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-10-29 05:19:39 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{597, 194}, {693, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/kernel.png Binary file seminar/seminar2012/kernel.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/malloc.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/malloc.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,672 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.7.0.167456 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2012-07-24 07:50:38 +0000 + Creator + taira + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 31 + + ID + 38 + Points + + {217.40531171279619, 382.71638373911395} + {286.29335196984323, 415.78606665433006} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 35 + + + + Class + LineGraphic + Head + + ID + 34 + + ID + 37 + Points + + {195.81743126642397, 382.87971262729423} + {223.86812544959807, 415.62269297874832} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 35 + + + + Class + LineGraphic + Head + + ID + 33 + + ID + 36 + Points + + {179.5457326709851, 382.99929880946496} + {177.82260867550102, 415.50069829936848} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + Tail + + ID + 35 + + + + Bounds + {{137, 347.5}, {87, 35}} + Class + ShapedGraphic + ID + 35 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 request memory size} + + + + Bounds + {{216, 416}, {59, 49}} + Class + ShapedGraphic + ID + 34 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 shotage} + + + + Bounds + {{137, 416}, {79, 49}} + Class + ShapedGraphic + ID + 33 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 used} + + + + Bounds + {{403, 416}, {102, 49}} + Class + ShapedGraphic + ID + 32 + Shape + Rectangle + + + Bounds + {{274, 416}, {129, 49}} + Class + ShapedGraphic + ID + 31 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 enough space} + + + + Bounds + {{214, 208}, {59, 49}} + Class + ShapedGraphic + ID + 28 + Shape + Rectangle + + + Bounds + {{177.5, 300}, {111, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 25 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 return head address.} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + ID + 22 + Points + + {137, 267} + {206, 302} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + TailArrow + 0 + + + + + Bounds + {{135, 165}, {79, 35}} + Class + ShapedGraphic + ID + 20 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 request memory size} + + + + Bounds + {{78.5, 143}, {123, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 19 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 malloc() quarry chunk. } + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{135, 208}, {79, 49}} + Class + ShapedGraphic + ID + 18 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 chunk} + + + + Bounds + {{401, 208}, {102, 49}} + Class + ShapedGraphic + ID + 17 + Shape + Rectangle + + + Bounds + {{78.5, 35}, {196, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 16 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 sbk() get and extend heap segment. } + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{272, 208}, {129, 49}} + Class + ShapedGraphic + ID + 15 + Shape + Rectangle + + + Bounds + {{135, 70}, {368, 49}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 heap segment} + + + + GridInfo + + GridSpacing + 9.6000003814697266 + MajorGridColor + + a + 0.3 + b + 0.49364 + g + 0.378667 + r + 0.570143 + + MajorGridSpacing + 90 + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2012-07-24 08:57:21 +0000 + Modifier + taira + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{99, 0}, {927, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{-117, 0}, {792, 623}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/malloc.png Binary file seminar/seminar2012/malloc.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2012/set_filename.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2012/set_filename.py Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,20 @@ +#!/usr/local/bin/python3.3 +# -*- coding:utf-8 -*- + +import sys +import os +import re +def pickup_changefile(files): + pattern = re.compile(r'^[0-9]') + for cur_file in files: + state = pattern.match(cur_file) + if None != state: + new_file = "2012"+ cur_file + os.system('mv ' + cur_file + ' ' + new_file) + + +argvs = sys.argv +files = os.listdir('.') + +pickup_changefile(files) + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0122.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0122.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,145 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira

                          +

                          Feb 5 2013

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + Codesegment, Datasegment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          +

                          + +
                          +

                          + 今週の作業 [ ~ 2013/02/05 ] +

                          +
                            +
                          • CbC で Mach-O を読む
                          • +
                          +
                          + +
                          +

                          + Mach-O +

                          +
                            +
                          • OS X 標準のバイナリファイルフォーマット
                          • +
                          • 複数のアーキテクチャのバイナリを保持できる
                          • +
                          + +
                          + +
                          +

                          + 配置 +

                          + +
                            +
                          • 左が実際のファイル上での並び方
                          • +
                          • segment command ごとに配置されるメモリアドレスをもつ
                          • +
                          • segment command に属する section にも
                          • +
                          • これ以外にも command はあるが、共有ライブラリ関係
                          • +
                          +
                          + +
                          +

                          + EFI 上でのファイル操作 +

                          +
                          ディスクを開く
                          +
                          +uefi_call_wrapper(
                          +    EFI_FILE_IO_INTERFACE volume->OpenVolume,
                          +    2,
                          +    EFI_FILE_IO_INTERFACE *volume,
                          +    EFI_FILE_HANDLE fh)
                          +        
                          +
                          + +
                          +
                          file open
                          +
                          +uefi_call_wrapper(
                          +    EFI_FILE_IO_INTERFACE volume->Open,
                          +    5,
                          +    EFI_FILE_IO_INTERFACE volume,
                          +    EFI_FILE_HANDLE fh,
                          +    filename,
                          +    EFI_MODE_READ,
                          +    (UINT64)0)
                          +        
                          +
                          + +
                          +
                          file read
                          +
                          +uefi_call_wrapper(
                          +    EFI_FILE_IO_INTERFACE volume->Read,
                          +    3,
                          +    EFI_FILE_HANDLE fh,
                          +    size,
                          +    buf)
                          +        
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 引き続き elilo のソース読む
                          • +
                          • Mach-O / ELF のローダを書く
                          • +
                          • 特権/ユーザーモードについて
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0212.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0212.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,99 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          CbC による OS の実装

                          +

                          Taiki Taira

                          +

                          Feb 12 2013

                          +
                          + +
                          +

                          研究目的[1/2]

                          +

                          + 本研究では code segment ,datasegment に沿った OS を実装することを目的とする。
                          + その実装には、本研究室で開発された Continuation based C (CbC)を用いる。
                          + CbC は C 言語よりも低くアセンブラより高い層で記述できる言語である。C の仕様からループ制御や関数コールを取り除いている。これによりスタックの操作やループ、関数呼び出しなどのより低レベルでの最適化をソースコードレベルで行うことができる。
                          +

                          +
                          + +
                          +

                          研究目的[2/2]

                          +

                          + OS の起動には、既存の BIOS に置き換えを意図している UEFI を利用する。UEFI上でのローダは UEFI が管理するアプリケーションとして動作し、OS をロードすることが可能となっている。 + Codesegment, Datasegment を意識した設計にし、メモリ外へのアクセスを制限しセキュリティの向上と、malloc/free などのメモリ管理を OS に行わせ、プログラマの負担を減らす。
                          +

                          + +
                          +

                          + 今週の作業 [ ~ 2013/02/05 ] +

                          +
                            +
                          • EFI によるローダの実装
                          • +
                          +
                          + +
                          +

                          + 実装 +

                          +

                            終了

                            +
                          • UEFI 標準の SIMPLE_FILE_SYSTEM_PROTOCOL によるファイルの open と read, seek, close
                          • +
                          • アプリケーション用の alloc/free と、kernel 用の alloc/free
                          • +
                          • ELF のローダ
                          • +
                          + +

                            これから

                            +
                          • kernel のロード
                          • +
                          • kernel
                          • +
                          • 動くことを確認しながら実装
                          • +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • 引き続き elilo のソース読む
                          • +
                          • Mach-O / ELF のローダを書く
                          • +
                          • 特権/ユーザーモードについて
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0226.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0226.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,90 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          ELILO へのマイクロカーネルの実装

                          +

                          Taiki Taira

                          +

                          Feb 5 2013

                          +
                          + +
                          +

                          研究目的[1/2]

                          +
                            +
                          • ブートが速く、シンプルなマイクロカーネルを ELILO に実装する
                          • +
                          • Codesegment と Datasegment を、カーネルのメモリ管理にどう実装するのかを検証する
                          • +
                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2013/02/26 ] +

                          +
                            +
                          • ページングのデバッグ
                          • +
                          +
                          + +
                          +

                          落ちる場所

                          +
                            +
                          • CR3 への書き込み
                          • +
                          • CR0 の PG ビットをゼロに
                          • +
                          • lgt gdt の初期化
                          • +
                          +
                          + +
                          +

                          解決するには

                          +
                            +
                          • GetMemoryMap()
                          • +
                          • ExitBootServices()
                          • +
                          • をして権限を移す
                          • +
                          +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • セグメンテーションの実装とページングのデバッグ
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0226plus.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0226plus.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,411 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +

                          ,. list where items build:

                          +
                            +
                          • Pressing 'h' highlights code snippets
                          • +
                          • Pressing 'p' toggles speaker notes (if they're on the current slide)
                          • +
                          • Pressing 'f' toggles fullscreen viewing
                          • +
                          • Pressing 'w' toggles widescreen
                          • +
                          • Pressing 'o' toggles overview mode
                          • +
                          • Pressing 'ESC' toggles off these goodies
                          • +
                          +

                          Another list, but items fade as they build:

                          +
                            +
                          • Hover over me!
                          • +
                          • Hover over me!
                          • +
                          • Hover over me!
                          • +
                          +
                          +
                          + + +
                          +

                          Slide with (Smaller Font)

                          +
                          +
                          +
                            +
                          • All links open in new tabs.
                          • +
                          • To change that this, add target="_self" to the link.
                          • +
                          +
                          +
                          + + + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +

                          Subtitle Placeholder

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0305.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0305.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,96 @@ + + + + + + + Presentation + + + + + + + + +
                          + + + +
                          +

                          ELILO によるメモリ管理の実験

                          +

                          Taiki Taira

                          +

                          Mar 5 2013

                          +
                          + +
                          +

                          研究目的[1/2]

                          +
                            +
                          • ブートが速く、シンプルなマイクロカーネルを ELILO に実装する
                          • +
                          • Codesegment と Datasegment を、カーネルのメモリ管理にどう実装するのかを検証する
                          • +
                          +
                          + +
                          +

                          + 今週の作業 [ ~ 2013/03/05 ] +

                          +
                            +
                          • ページングのデバッグ
                          • +
                          +
                          + +
                          +

                          落ちる場所

                          +
                            +
                          • CR3 への書き込み
                          • +
                          • CR0 の PG ビットをゼロに
                          • +
                          • lgt gdt の初期化
                          • +
                          +
                          + +
                          +

                          解決するには

                          +
                            +
                          • GetMemoryMap()
                          • +
                          • ExitBootServices()
                          • +
                          • をして権限を移す
                          • +
                          +
                          + +
                          +

                          GetMemoryMap

                          +

                          GetMemoryMap を実行すると、メモリのディスクリプタの配列と、そのサイズが取れる

                          + +
                          + +
                          +

                          + 今後やること +

                          +
                            +
                          • セグメンテーションの実装とページングのデバッグ
                          • +
                          +
                          + +
                          + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0312.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0312.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,411 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • メモリ初期化のデバッグ
                          • +
                          +
                          +
                          + + +
                          +

                          メモリ初期化のデバッグ

                          +
                          +
                          +

                          落ちる場所

                          +
                            +
                          • CR3 への書き込み
                          • +
                          • CR0 の PG ビットをゼロに
                          • +
                          • lgt gdt の初期化
                          • +
                          +
                          +
                          + + +
                          +

                          解決方法

                          +
                          +
                          +
                            +
                          • device を close すると書き込めた
                          • +
                          • GDT / IDT / CR0 は書き込める
                          • +
                          • CR3 は、元の CR3 の値なら書き込める。しかし paging のために設定した値は書き込めない
                          • +
                          +

                          今後は、CR3 の値が正しいかの確認と sysenter sysexit で戻ってこれるか実験します。

                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0319.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0319.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,405 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • メモリ初期化のデバッグ
                          • +
                          +
                          +
                          + + +
                          +

                          メモリ初期化のデバッグ

                          +
                          +
                          +
                            +
                          • GetMemoryMap は成功
                          • +
                          • EFI の処理を終わらせる、
                            + ExitBootServices がうまくいかない
                          • +
                          • ELILO ではない、EFIアプリケーションでは成功する
                          • +
                          +
                          +
                          + + +
                          +

                          +
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0326.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0326.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,417 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Linux 3.7.7 を読む
                          • +
                          • メモリ初期化のデバッグ
                          • +
                          • Fedora 18 で環境構築
                          • +
                          +
                          +
                          + + +
                          +

                          Linux kernel

                          +
                          +
                          +

                          初期化

                          + +
                          +
                          + + +
                          +

                          メモリ初期化のデバッグ

                          +
                          +
                          +
                            +
                          • GetMemoryMap は成功
                          • +
                          • EFI の処理を終わらせる、
                            + ExitBootServices がうまくいかない
                          • +
                          • ELILO ではない、EFIアプリケーションでは成功する
                          • +
                          +
                          +
                          + + +
                          +

                          +
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0402.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0402.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,434 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Linux 3.7.7 を読む
                          • +
                          • メモリ初期化のデバッグ
                          • +
                          • Fedora 18 で環境構築
                          • +
                          +
                          +
                          + + +
                          +

                          Paging 初期化のデバッグ

                          +
                          +
                          +
                            +
                          • Memory の状態を知るための GetMemoryMap は成功
                          • +
                          • EFI の処理を終わらせる、
                            + ExitBootServices がうまくいかない
                          • +
                          • ELILO ではない、EFIアプリケーションでは成功する
                          • +
                          • GDT LDT の登録はできる
                          • +
                          +
                          +
                          + + +
                          +

                          いままでの Paging の設定

                          +
                          +
                          + +

                          これだと許可されず、ページテーブルの最初のアドレスを格納する cr3 がいじれない。

                          +
                          +
                          + + + +
                          +

                          これから試す Paging の設定

                          +
                          +
                          + +

                          こうすれば、UEFI の制限なくページテーブルが設定できるのでは……?
                          + Linux の EFI stub という起動の仕方ではこうしていた。

                          +
                          +
                          + + +
                          +

                          これからやること

                          +
                          +
                            +
                          • 引き続き Paging の設定
                          • +
                          • うまくいったら User/特権 mode の切り替え
                          • +
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0409.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0409.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,422 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Linux 3.7.7 を読む
                          • +
                          • メモリ初期化のデバッグ
                          • +
                          • Fedora 18 で環境構築
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          ELILO の中でのカーネル、という方針

                          +

                          + 1.ExitBootServices
                          + 2.GDT/LDT を設定
                          + 3.別セグメントに飛ぶ
                          + 4.メモリの初期化 +

                          +
                          +
                          + + +
                          +

                          エラーメッセージ

                          +
                          +
                          + + +
                          +
                          + + +
                          +

                          これからやること

                          +
                          +
                            +
                          • 引き続き Paging の設定
                          • +
                          • うまくいったら User/特権 mode の切り替え
                          • +
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0416.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0416.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,423 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Linux 3.7.7 を読む
                          • +
                          • メモリ初期化のデバッグ
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          ELILO の中でのカーネル、という方針

                          +

                          「ELILOアプリケーションの中」だったら ExitBootServices を実行しないで書くべき

                          +
                            +
                          1. 1.GDT/LDT を設定
                          2. +
                          3. 2.別セグメントに飛ぶ
                          4. +
                          5. 3.メモリの初期化
                          6. +
                          +
                          +
                          + + +
                          +

                          エラーメッセージ

                          +
                          +
                          +

                          cr0 の PE bit を無効にした時

                          + +

                          cr3 に値を入れた時

                          + +
                          +
                          + + +
                          +

                          これからやること

                          +
                          +
                          +
                            +
                          • 引き続き Paging の設定
                          • +
                          • うまくいったら User/特権 mode の切り替え
                          • +
                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0430.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0430.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,445 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Linux 3.8.9 を読む
                          • +
                          • メモリ初期化のデバッグ
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          ELILO の中でのカーネル、という方針

                          +

                          「ELILOアプリケーションの中」だったら ExitBootServices を実行しないで書くべき

                          +
                            +
                          1. 1.GDT/LDT を設定
                          2. +
                          3. 2.別セグメントに飛ぶ
                          4. +
                          5. 3.メモリの初期化
                          6. +
                          +
                          +
                          + + +
                          +

                          エラーメッセージ

                          +
                          +
                          +

                          cr0 の PE bit を無効にした時

                          + +

                          cr3 に値を入れた時

                          + +
                          +
                          + + +
                          +

                          PostgreSQL

                          +
                          +
                          +

                          手順

                          +
                            +
                          1. ./initdb -D $PGDATA
                            + データベースの初期化
                          2. +
                          3. ./pg_ctl -D $PGDATA -l [logfile_name] start
                            + PostgreSQL の起動
                          4. +
                          5. ./psql user
                            + 対話プロンプトが開く
                          6. +
                          7. + ps -ef | grep postgres
                            + PostgreSQL のプロセスを探し出す
                          8. +
                          9. gdb $DIR/bin/postgres [process number]
                            + で読む
                          10. +
                          +
                          +
                          + + +
                          +

                          これからやること

                          +
                          +
                          +
                            +
                          • 引き続き Paging の設定
                          • +
                          • うまくいったら User/特権 mode の切り替え
                          • +
                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0507.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0507.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,461 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • 動作が軽く、落ちにくいカーネルを実装する
                          • +
                          • ブートが最速で、コンパクトなカーネルを実装する
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Linux 3.8.9 を読む
                          • +
                          • メモリ初期化のデバッグ
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          ELILO の中でのカーネル、という方針

                          +

                          「ELILOアプリケーションの中」だったら ExitBootServices を実行しないで書くべき

                          +
                            +
                          1. GDT/LDT を設定
                          2. +
                          3. 別セグメントに飛ぶ
                          4. +
                          5. メモリの初期化
                          6. +
                          7. Call Gate と TSS
                          8. +
                          9. CPL (current privilege level)
                          10. +
                          11. 64 bit mode(32bit と互換性なし)/compatibility mode
                          12. +
                          +
                          +
                          + + +
                          +

                          エラーメッセージ

                          +
                          +
                          +

                          cr0 の PE bit を無効にした時

                          + +

                          cr3 に値を入れた時

                          + +
                          +
                          + + +
                          +

                          Fedora Linux

                          +
                          +
                          +
                            +
                          • Linux kernel 3.8.9
                          • +
                          • EFI 経由の GRUB2 で動いている
                          • +
                          • gdb で追いながら追っている途中
                          • +
                          +
                          +
                          + + +
                          +

                          PostgreSQL

                          +
                          +
                          +

                          手順

                          +
                            +
                          1. ./initdb -D $PGDATA
                            + データベースの初期化
                          2. +
                          3. ./pg_ctl -D $PGDATA -l [logfile_name] start
                            + PostgreSQL の起動
                          4. +
                          5. ./psql user
                            + 対話プロンプトが開く
                          6. +
                          7. + ps -ef | grep postgres
                            + PostgreSQL のプロセスを探し出す
                          8. +
                          9. gdb $DIR/bin/postgres [process number]
                            + で読む
                          10. +
                          +
                          +
                          + + +
                          +

                          これからやること

                          +
                          +
                          +
                            +
                          • 引き続き Paging の設定
                          • +
                          • うまくいったら User/特権 mode の切り替え
                          • +
                          +
                          +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0509.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0509.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,166 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Linux 3.8.9 を読む
                          • +
                          • メモリ初期化のデバッグ
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          ELILO の中でのカーネル、という方針

                          +

                          「ELILOアプリケーションの中」だったら ExitBootServices を実行しないで書くべき

                          +
                            +
                          1. GDT/LDT を設定
                          2. +
                          3. 別セグメントに飛ぶ
                          4. +
                          5. メモリの初期化
                          6. +
                          7. Call Gate と TSS
                          8. +
                          9. CPL (current privilege level) を調べる
                          10. +
                          11. 64 bit mode(32bit と互換性なし)/compatibility mode
                          12. +
                          13. UEFI のマニュアルには
                            + Paging mode is enabled and any memory space defined by the UEFI memory map is identity mapped (virtual address equals physical address).
                          14. +
                          +
                          +
                          + + +
                          +

                          エラーメッセージ

                          +
                          +
                          +

                          cr0 の PE bit を無効にした時

                          + +

                          cr3 に値を入れた時

                          + +
                          +
                          + + +
                          +

                          Fedora Linux

                          +
                          +
                          +
                            +
                          • Linux kernel 3.8.9
                          • +
                          • gdb で追いながら追っている途中
                          • +
                          +
                          +
                          + + +
                          +

                          PostgreSQL

                          +
                          +
                          +

                          手順

                          +
                            +
                          1. ./initdb -D $PGDATA
                            + データベースの初期化
                          2. +
                          3. ./pg_ctl -D $PGDATA -l [logfile_name] start
                            + PostgreSQL の起動
                          4. +
                          5. ./psql user
                            + 対話プロンプトが開く
                          6. +
                          7. + ps -ef | grep postgres
                            + PostgreSQL のプロセスを探し出す
                          8. +
                          9. gdb $DIR/bin/postgres [process number]
                            + で読む
                          10. +
                          +
                          +
                          + + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0514.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0514.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,142 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を EFI でロードし、64bit でロードできるようにする
                          • +
                          +
                          +
                          + + +
                          +

                          今週の作業

                          +
                          +
                          +
                            +
                          • Qemu を使えるかどうかの調査
                          • +
                          +
                          +
                          + + +
                          +

                          Qemu [Q]

                          +
                          +
                          +
                            +
                          • OS X での Qemu は Q として書かれる
                          • +
                          • Qemu で EFI を使うツール OVMF のインストール
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO で Mach-O

                          +
                          +
                          +
                            +
                          • ELILO は x86-64 ように bzImaze と plain loader を持っている
                          • +
                          • Mach-O 用ローダを追加
                          • +
                          • 一度使用するローダを登録して、使用するか決める
                          • +
                          • 登録したローダを使う
                          • +
                          • Makefile を書き換えて Mach-O ローダを使えるように
                          • +
                          +
                          +
                          + + +
                          +

                          これからすること

                          +
                          +
                          +
                            +
                          • Linux 3.8.9 を読む
                          • +
                          • メモリ初期化
                          • +
                          +
                          +
                          + + + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0521.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0521.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,156 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO のレジスタの状態

                          +
                          +
                          +

                          CR0

                          +
                            +
                          • PGbit ON : ページングが enable されている
                          • +
                          • PEbit ON : Protect mode (32 bit mode) が enable
                          • +
                          +

                          CR4

                          +
                            +
                          • PAEbit ON : ページングが 32bit 以上を使用
                          • +
                          • PSEbit ON : 32bit ページングでの 4Mbyte page を enable
                          • +
                          +

                          CR3

                          +
                            +
                          • Page directory base にアドレス
                          • +
                          +

                          CS

                          +
                            +
                          • GDT のセグメントの番号
                          • +
                          • requested privirege level は最大(全権限をもつ)
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO のレジスタの状態[2]

                          +
                          +
                          +

                          現在の状態

                          +
                            +
                          • GDT は動いている
                          • +
                          • long mode(compatibility mode/64bit mode)
                          • +
                          • EFI の仕様でレジスタへの書き込みを許してないのではないか
                          • +
                          • 4M byte のページテーブル
                          • +
                          • ページングは enable だが、EFI のマニュアルには physical address = virtual address とある
                          • +
                          +
                          +
                          + + + +
                          +

                          ELILO で Mach-O するためにするべきこと

                          +
                          +
                          +
                            +
                          • ELILO は x86-64 ように bzImaze と plain loader を持っている
                          • +
                          • Mach-O 用ローダを追加
                          • +
                          • 一度使用するローダを登録して、使用するか決める
                          • +
                          • 登録したローダを使う
                          • +
                          +
                          +
                          + + +
                          +
                          +
                          +
                          +
                          + + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0604.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0604.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,107 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +

                          89

                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          Macbook でロードする

                          +
                          +
                          +
                            +
                          • ELILO の実行ファイルを bootx.efi に改名したら Macbook 上でも動いた
                          • +
                          • ELILO で Linux Kernel のロードも成功
                          • +
                          • Mac OS X に付属している
                            + /System/Library/CoreServices/bootx.efi
                            + と、 +
                            /mach_kernel +
                            のみをコピーすると Apple のマークが一度出て、消える
                          • +
                          • file /mach_kernel
                            + /mach_kernel: Mach-O 64-bit executable x86_64
                          • +
                          • なので、Mac OS X の bootx.efi が Mach-O 形式を読み込めるはず
                          • +
                          • Mac OS forge
                          • +
                          • Mac OS X のカーネル xnu があるところ
                          • +
                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0611.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0611.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,106 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          確認したこと

                          +
                            +
                          • 基本は bzImage で読み込む
                          • +
                          • localfs という独自のファイルシステムを使用してデータを読み書き
                          • +
                          • ExitBootServices して start_kernel() の実行
                          • +
                          • start_kernel の中では gdt/idt に関する操作を行なうことができている
                          • +
                          +

                          これから

                          +
                            +
                          • Mach-O に切り替える場合は、mach-o.c みたいなファイルを作るのか、#ifdef を使って bzImage を読んでいるものの中に書くのか
                          • +
                          • 実際に、ExitBootServices が動いているところがあるのでそこを見る
                          • +
                          • zlib を使って ELF で圧縮したファイル読み込むのかを試す
                          • +
                          • mach-o も
                          • +
                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0618.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0618.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,139 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          作業

                          +
                            +
                          • 結局 ExitBootService を通して成功したのは GDT/IDT の操作のみ
                          • +
                          • paging を enable するために cr0.pg を disable すると落ちる
                          • +
                          • cr4.pcide を disable にするだけなら通る
                          • +
                          • CR0.PG は 32bit paging と、IA-32e paging を切り替えるために必要
                          • +
                          • ということは CR0.PG の初期化はいらない
                          • +
                          • なのでそのまま、page table を初期化して CR3 に入れてみる
                          • +
                          • 落ちる
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          メッセージ

                          + +

                          VMWare のメッセージ

                          +

                          ELILO の権限から離れているため、画面に文字を出力するには ELILO と同じ方法ではダメなので、デバッグ方法がいる

                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0625.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0625.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,181 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          作業[1]

                          +
                            +
                          • 結局 ExitBootService を通して成功したのは GDT/IDT の操作のみ
                          • +
                          • CR3 へ PML4 の先頭アドレスを入れるために CR0.PG を disable すると落ちる
                          • +
                          • CR4.PCIDE を disable にするだけなら通る
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          作業[2]

                          +
                            +
                          • Intel CPU には Long mode があり、それには二通りの sub mode がある
                          • +
                          • Compatibility mode/64bit mode
                          • +
                          • UEFI のマニュアルに、UEFI は 64bit mode で起動している、という記述が
                          • +
                          • Intel マニュアルをみると、 +

                            64 bit mode では CR0.PG を clear すると #GP exception をはく

                          • +
                          • つまり、一度 64bit mode から、Compatibility mode にしてからページテーブルを初期化する必要がある
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          EFI Runtime Services[SetVirtualAddressMap]

                          +
                            +
                          • EFI から OS を Boot するためのサービスが Boot Services
                          • +
                          • OS が走っている状態で、EFI を操作するためのサービスが Runtime Services
                          • +
                          • SetVirtualAddressMap()
                          • +
                          • Changes the runtime addressing mode of EFI firmware from physical to virtual.
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          EFI Runtime Services[SetVirtualAddressMap] in Linux kernel

                          +
                          +static efi_status_t __init phys_efi_set_virtual_address_map(
                          +  unsigned long memory_map_size,
                          +  unsigned long descriptor_size,
                          +  u32 descriptor_version,
                          +  efi_memory_desc_t *virtual_map)
                          +{
                          +  efi_status_t status; 
                          +  efi_call_phys_prelog();
                          +  
                          +  status = efi_call_phys4(efi_phys.set_virtual_address_map,
                          +    memory_map_size, descriptor_size, descriptor_version, virtual_map);
                          +  
                          +  efi_call_phys_epilog();
                          +  return status;
                          +}
                          +    
                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0702.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0702.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,155 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          作業[1]

                          +
                            +
                          • 結局 ExitBootService を通して成功したのは GDT/IDT の操作のみ
                          • +
                          • CR3 へ PML4 の先頭アドレスを入れるために CR0.PG を disable すると落ちる
                          • +
                          • CR4.PCIDE を disable にするだけなら通る
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          EFI Runtime Services[SetVirtualAddressMap]

                          +
                            +
                          • EFI から OS を Boot するためのサービスが Boot Services
                          • +
                          • OS が走っている状態で、EFI を操作するためのサービスが Runtime Services
                          • +
                          • SetVirtualAddressMap()
                          • +
                          • Changes the runtime addressing mode of EFI firmware from physical to virtual.
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          EFI Runtime Services[SetVirtualAddressMap]

                          +
                            +
                          • x86_64_start_kernel
                          • +
                          • x86_64_start_reservations
                          • +
                          • start_kernel // カーネルの初期化
                          • +
                          • setup_arch // アーキテクチャごとの設定
                          • +
                          • efi_init // efi の初期化
                          • +
                          • efi_enter_virtual_mode
                          • +
                          +

                          0x4000 でブートローダから EFI その他の情報を受け取る

                          +
                          +
                          + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0709.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0709.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,135 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          EFI Runtime Services[SetVirtualAddressMap]

                          +
                            +
                          • x86_64_start_kernel
                          • +
                          • x86_64_start_reservations
                          • +
                          • start_kernel // カーネルの初期化
                          • +
                          • setup_arch // アーキテクチャごとの設定
                          • +
                          • efi_init // efi の初期化
                          • +
                          • efi_enter_virtual_mode
                          • +
                          +

                          0x4000 でブートローダから EFI その他の情報を受け取る
                          + ここで、UEFI 用に設定した memmap があるので、そこからページング用の memmap を作る

                          +
                          +
                          + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0716.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0716.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,163 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + + +
                          +

                          make GDB

                          +
                          +
                          +

                          Linux を debug するための GDB

                          +
                            +
                          • ./configure --target=x86_64-linux-gnu --prefix=[PATH]
                          • +
                          • 事前に libelf を install しておく必要が有る
                          • +
                          +
                          +
                          + + +
                          +

                          make Linux

                          +
                          +
                          +

                          Linux

                          +
                            +
                          • make menuconfig で設定
                          • +
                          • できなければ、エラー文に出たものを install
                          • +
                          • make menuconfig の中に、 +
                              +
                            • [*]Compile the kernel with debugging info
                            • +
                            + のチェックが付いているか確認
                          • +
                          • make
                          • +
                          +
                          +
                          + + +
                          +

                          efibootmgr

                          +
                          +
                          +
                            +
                          • make
                          • +
                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0723.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0723.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,168 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + + +
                          +

                          Linux カーネル内の 64bit ページング

                          +
                          +
                          +
                            +
                          • UEFI 関係の関数とは別に、paging_init() がある
                          • +
                          • +
                              +
                            • sparse_memory_present_with_active_regions()
                            • +
                            • sparse_init()
                            • +
                            • node_clear_state()
                            • +
                            • zone_size_init()
                            • +
                            +
                          • +
                          • ページそれぞれに、他と重複しないページフレーム番号(PFN)が割り振られる
                          • +
                          • ちなみに、page size は $pagesize コマンドで見ることができる(単位は byte)
                          • +
                          +
                          +
                          + + +
                          +

                          paging_init

                          +
                          +
                          +
                          +void __init paging_init(void)
                          +{
                          +    sparse_memory_present_with_active_regions(MAX_NUMNODES);
                          +    sparse_init(); 
                          +   /*
                          +    * clear the default setting with node 0
                          +    * note: don't use nodes_clear here, that is really clearing when
                          +    *       numa support is not compiled in, and later node_set_state
                          +    *       will not set it back.
                          +    */
                          +    
                          +    node_clear_state(0, N_MEMORY);
                          +    if (N_MEMORY != N_NORMAL_MEMORY)
                          +        node_clear_state(0, N_NORMAL_MEMORY);
                          +    zone_sizes_init();
                          +}
                          +    
                          +
                          +
                          + + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0730.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0730.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,172 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + + +
                          +

                          Page Table を登録する方法

                          +
                          +
                          +

                          Intel のマニュアルを参照

                          + +
                          +
                          + + +
                          +

                          Page Table を登録する方法

                          +
                          +
                          +

                          Intel のマニュアルを参照

                          +
                            +
                          • segment descriptor CS の L ビット をクリアして、64 bit mode から compatibility mode へ
                          • +
                          • CR0.PG をクリアして Paging を disable
                          • +
                          • CR3 に、初期化したページテーブルのアドレスを入れる
                          • +
                          • CR0.PG に 1 をセットして Paging を enable する
                          • +
                          • 64 bit mode に戻す
                          • +
                              +
                          +
                          + + +
                          +

                          Page Table を登録する方法

                          +
                          +
                          +

                          UEFI のマニュアルを参照

                          +
                            +
                          • ……っていうのを、SetVirtualAddressMap() がやってくれるんじゃないか
                          • +
                          • つまり、EFI用の Memory map を設定すれば、仮想メモリが作れるんじゃ?
                          • +
                              +
                          +
                          + + +
                          +

                          今週すること

                          +
                          +
                          +
                            +
                          • 以上の2つを試す
                          • +
                              +
                          +
                          + + + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0813.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0813.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,159 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + +
                          +

                          Page Table を登録する方法

                          +
                          +
                          +

                          SetVirtualMemoryMap を使った方法

                          + +
                          +
                          + + +
                          +

                          Page Table を登録する方法

                          +
                          +
                          +

                          実験

                          +
                            +
                          • ExitBootServices の前に GetMemoryMap で MemoryMap を取る
                          • +
                          • ExitBootServices する
                          • +
                          • SetVirtualAddressMap する
                          • +
                          • そうすると、 ExitBootServices でエラー
                          • +
                          • ELILO がすでに、kernel への jump 前に GetMemoryMap しており、
                            + その Map を使用して SetVirtualMemoryMap する必要がある
                          • +
                          +
                          +
                          + + +
                          +

                          今週すること

                          +
                          +
                          +
                            +
                          • ELILO の中で使われている MemoryMap を使って SetVirtualMemoryMap を試す
                          • +
                              +
                          +
                          + + + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0820.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0820.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,148 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + +
                          +

                          Page Table を登録する方法

                          +
                          +
                          +

                          SetVirtualMemoryMap を使った方法

                          + +
                            +
                          • create_boot_params という関数で、kernel が EFI を使うためのデータが入っている
                          • +
                          • ELILO の boot を利用するなら使う必要がある
                          • +
                          • ELILO の boot を利用するなら使う必要がある
                          • +
                          • +
                          +
                          +
                          + + +
                          +

                          今週すること

                          +
                          +
                          +
                            +
                          • ELILO の中で使われている MemoryMap を使って SetVirtualMemoryMap を試す
                          • +
                              +
                          +
                          + + + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0917.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0917.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,173 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + +
                          +

                          gnu-efi での SetVirtualAddressMap の呼び出し

                          +
                          +
                          +

                          直接呼び出してみる

                          +
                            +
                          • ExitBootService 後に、 uefi_call_wrapper(RT->SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)
                          • +
                          • 失敗,マシンが落ちる
                          • +
                          • 考えられる理由は、gnu-efi が対応していないか、Linux のように、呼び出し前と呼び出し後に必要な処理がないこと
                          • +
                          +
                          +
                          + + +
                          +

                          対策

                          +
                          +
                          +

                          SetVirtualAddressMap の呼び出し

                          +
                            +
                          • Linux に習って、SetVirtualAddressMap に処理を書く
                          • +
                          • 直接アセンブラを書いて EFI の API を呼び出す
                          • +
                          +

                          Linux での引数 4 つの場合の efi の呼び出し

                          +
                          +ENTRY(efi_call4)
                          +  SAVE_XMM
                          +  subq $32, %rsp
                          +  mov %r8, %r9
                          +  mov %rcx, %r8
                          +  mov %rsi, %rcx
                          +  call *%rdi
                          +  addq $32, %rsp
                          +  RESTORE_XMM
                          +  ret
                          +ENDPROC(efi_call4)
                          +      
                          +
                          +
                          + + +
                          +

                          今週すること

                          +
                          +
                          +
                            +
                          • ELILO の中で使われている MemoryMap を使って SetVirtualMemoryMap を試す
                          • +
                              +
                          +
                          + + + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/0924.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/0924.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,202 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + +
                          +

                          gnu-efi での SetVirtualAddressMap の呼び出し

                          +
                          +
                          +

                          直接呼び出してみる

                          +
                            +
                          • ExitBootService 後に、 uefi_call_wrapper(RT->SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)
                          • +
                          • 失敗,マシンが落ちる
                          • +
                          • 考えられる理由は、gnu-efi が対応していないか、Linux のように、呼び出し前と呼び出し後に必要な処理がないこと
                          • +
                          +
                          +
                          + + +
                          +

                          対策

                          +
                          +
                          +

                          SetVirtualAddressMap の呼び出し

                          +
                            +
                          • Linux に習って、SetVirtualAddressMap に処理を書く
                          • +
                          • 直接アセンブラを書いて EFI の API を呼び出す
                          • +
                          +

                          Linux での引数 4 つの場合の efi の呼び出し

                          +
                          +ENTRY(efi_call4)
                          +  SAVE_XMM
                          +  subq $32, %rsp
                          +  mov %r8, %r9
                          +  mov %rcx, %r8
                          +  mov %rsi, %rcx
                          +  call *%rdi
                          +  addq $32, %rsp
                          +  RESTORE_XMM
                          +  ret
                          +ENDPROC(efi_call4)
                          +      
                          +
                          +
                          + + +
                          +

                          Vagrant

                          +
                            +
                          • コマンドラインから VM をいろいろ操作できるツール
                          • +
                          • vagrant init: 設定ファイル Vagrantfile の作成
                          • +
                          • vagrant box add [vm name] [path / URL]: vagrant の仮想マシンを登録する
                          • +
                          • vagrant up: VM の開始
                          • +
                          • vagrant destroy: VM を止める
                          • +
                          • vagrant suspend: サスペンドする
                          • +
                          • vagrant package: 自前の VM を vagrant 用に package
                          • +
                          • vagrant ssh: vagrant で起動した VM に ssh する
                          • +
                          +
                          +
                          + + +
                          +

                          Vagrant の利点

                          +
                            +
                          • コマンドラインから気軽に操作
                          • +
                          • 開発環境の配布が容易
                          • +
                          • VirtualBox を起動しなくても動く
                          • +
                          • すぐホストと同期可能なディレクトリを持たせられる
                          • +
                          • 起動直後に実行する script を指定できる
                          • +
                          +
                          +
                          + + +
                          +

                          今週すること

                          +
                          +
                          +
                            +
                          • ELILO の中で使われている MemoryMap を使って SetVirtualMemoryMap を試す
                          • +
                              +
                          +
                          + + + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/1001.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/1001.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,163 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + +
                          +

                          gnu-efi での SetVirtualAddressMap の呼び出し

                          +
                          +
                          +

                          調べ物:Memory Map の設定

                          +
                            +
                          • ExitBootService 後に、 uefi_call_wrapper(RT->SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)
                          • +
                          • Memory Map を、SetVirtualAddressMap 用に設定しなおさないといけないらしい
                          • +
                          • そのまま入れたらマシンが落ちる
                          • +
                          • 下記のものが、ExitBootService 前にMemoryMapにラベルが付けられている
                          • +
                          • EFI_BOOT_SERVICES_CODE
                          • +
                          • EFI_BOOT_SERVICES_DATA
                          • +
                          • この辺りを使用して、VirtualAddressMap を生成する必要がある
                          • +
                          +
                          +
                          + + +
                          +

                          TLB

                          +
                          +
                          +

                          Linux kernel では

                          +
                            +
                          • アセンブラで呼び出し
                          • +
                          • hypervisor call を経て、割り込み扱い、int 命令で呼び出す
                          • +
                          • 必要なら SetVirtualAddressMap の前後に tlb flush を実装しないといけない
                          • +
                          +
                          +
                          + + +
                          +

                          Vagrant の問題

                          +
                            +
                          • Vagraint の開発者が作成したツール Packer を使用して、Fedora19 を Vagrant で起動できる形式にする
                          • +
                          • Chef で環境/構成を設定
                          • +
                          • 構成はどうしよう
                          • +
                          • Vagrant で起動し、それに ssh 接続ができることを明示
                          • +
                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/1008.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/1008.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,182 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + + +
                          +

                          ELILO

                          +
                          +
                          +

                          ExitBootService の前後の接続

                          +
                            +
                          • ExitBootService 後に、 uefi_call_wrapper(RT->SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)
                          • +
                          • Memory Map を、SetVirtualAddressMap 用に設定しなおさないといけないらしい
                          • +
                          • そのまま入れたらマシンが落ちる
                          • +
                          • 下記のものが、ExitBootService 前にMemoryMapにラベルが付けられている
                          • +
                          • EFI_BOOT_SERVICES_CODE
                          • +
                          • EFI_BOOT_SERVICES_DATA
                          • +
                          • この辺りを使用して、VirtualAddressMap を生成する必要がある
                          • +
                          +
                          +
                          + + +
                          +

                          Vagrant KVM

                          +
                          +
                          +

                          Bldsv09

                          +
                            +
                          • ExitBootService 後に、 uefi_call_wrapper(RT->SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)
                          • +
                          • Memory Map を、SetVirtualAddressMap 用に設定しなおさないといけないらしい
                          • +
                          • そのまま入れたらマシンが落ちる
                          • +
                          • 下記のものが、ExitBootService 前にMemoryMapにラベルが付けられている
                          • +
                          • EFI_BOOT_SERVICES_CODE
                          • +
                          • EFI_BOOT_SERVICES_DATA
                          • +
                          • この辺りを使用して、VirtualAddressMap を生成する必要がある
                          • +
                          +
                          +
                          + + +
                          +

                          TLB

                          +
                          +
                          +

                          Linux kernel では

                          +
                            +
                          • アセンブラで呼び出し
                          • +
                          • hypervisor call を経て、割り込み扱い、int 命令で呼び出す
                          • +
                          • 必要なら SetVirtualAddressMap の前後に tlb flush を実装しないといけない
                          • +
                          +
                          +
                          + + +
                          +

                          Vagrant の問題

                          +
                            +
                          • Vagraint の開発者が作成したツール Packer を使用して、Fedora19 を Vagrant で起動できる形式にする
                          • +
                          • Chef で環境/構成を設定
                          • +
                          • 構成はどうしよう
                          • +
                          • Vagrant で起動し、それに ssh 接続ができることを明示
                          • +
                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/1029.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/1029.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,182 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          研究目的

                          +
                          +
                          +
                            +
                          • ブートが高速で、コンパクトなカーネルを実装する。
                          • +
                          • Codesegment と Datasegment をカーネルに実装するにあたって、メモリ管理の役割とどう合致するのかを検証する。
                          • +
                          • 上記を確認したら CbC を用いて、動作が軽く落ちにくいカーネルを実装する。
                          • +
                          • モデル検証に対応し、エラー予測を可能にする
                          • +
                          • カーネルパニックをなくす
                          • +
                          • Mach-O を ELILO でロードし、64bit で動作可能にする
                          • +
                          +
                          +
                          + + +
                          +

                          ELILO

                          +
                          +
                          +

                          現状

                          + +
                          +
                          + + +
                          +

                          ELILO

                          +
                          + +
                          +

                          目標

                          +
                            +
                          • Page Table を初期化
                          • +
                          • 一度 Paging を disable
                          • +
                          • CR3 レジスタに初期化した Page Table を登録
                          • +
                          • 再度 Paging を enable
                          • +
                          +

                          目標 [EFI version]

                          +
                            +
                          • memmap を設定
                          • +
                          • 新しく仮想メモリ用に memmap を作る
                          • +
                          • irq をセーブして、pgd を作る[TLB をフラッシュ]
                          • +
                          • UEFI API SetVirtualAddressMap を call
                          • +
                          • pgd を登録して、irq をリストア[TLB をフラッシュ]
                          • +
                          +

                          どちらかの方法で、ELILO 内に Page table を作る

                          +
                          +
                          + + + +
                          +

                          ELILO

                          +
                          +
                          +

                          ExitBootService の前後の接続

                          +
                            +
                          • ExitBootService 後に、 uefi_call_wrapper(RT->SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)
                          • +
                          • Memory Map を、SetVirtualAddressMap 用に設定しなおさないといけないらしい
                          • +
                          • そのまま入れたらマシンが落ちる
                          • +
                          • 下記のものが、ExitBootService 前にMemoryMapにラベルが付けられている
                          • +
                          • EFI_BOOT_SERVICES_CODE
                          • +
                          • EFI_BOOT_SERVICES_DATA
                          • +
                          • この辺りを使用して、VirtualAddressMap を生成する必要がある
                          • +
                          +
                          +
                          + + +
                          +

                          Vagrant KVM

                          +
                          +
                          +

                          Bldsv09

                          +
                            +
                          • ExitBootService 後に、 uefi_call_wrapper(RT->SetVirtualAddressMap, 4, mem_map_size, efi_mem_desc_size, mem_desc_ver, mem_map)
                          • +
                          • Memory Map を、SetVirtualAddressMap 用に設定しなおさないといけないらしい
                          • +
                          • そのまま入れたらマシンが落ちる
                          • +
                          • 下記のものが、ExitBootService 前にMemoryMapにラベルが付けられている
                          • +
                          • EFI_BOOT_SERVICES_CODE
                          • +
                          • EFI_BOOT_SERVICES_DATA
                          • +
                          • この辺りを使用して、VirtualAddressMap を生成する必要がある
                          • +
                          +
                          +
                          + + +
                          +

                          TLB

                          +
                          +
                          +

                          Linux kernel では

                          +
                            +
                          • アセンブラで呼び出し
                          • +
                          • hypervisor call を経て、割り込み扱い、int 命令で呼び出す
                          • +
                          • 必要なら SetVirtualAddressMap の前後に tlb flush を実装しないといけない
                          • +
                          +
                          +
                          + + +
                          +

                          Vagrant の問題

                          +
                            +
                          • Vagraint の開発者が作成したツール Packer を使用して、Fedora19 を Vagrant で起動できる形式にする
                          • +
                          • Chef で環境/構成を設定
                          • +
                          • 構成はどうしよう
                          • +
                          • Vagrant で起動し、それに ssh 接続ができることを明示
                          • +
                          +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/css/default.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/css/default.css Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,1498 @@ +/* line 17, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +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; +} + +/* line 20, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +body { + line-height: 1; +} + +/* line 22, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +ol, ul { + list-style: none; +} + +/* line 24, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* line 26, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +caption, th, td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} + +/* line 28, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q, blockquote { + quotes: none; +} +/* line 101, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +q:before, q:after, blockquote:before, blockquote:after { + content: ""; + content: none; +} + +/* line 30, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +a img { + border: none; +} + +/* line 114, ../../../../../../Library/Ruby/Gems/1.8/gems/compass-0.12.1/frameworks/compass/stylesheets/compass/reset/_utilities.scss */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary { + display: block; +} + +/** + * Base SlideDeck Styles + */ +/* line 48, ../scss/_base.scss */ +html { + height: 100%; + overflow: hidden; +} + +/* line 53, ../scss/_base.scss */ +body { + margin: 0; + padding: 0; + opacity: 0; + height: 100%; + min-height: 740px; + width: 100%; + overflow: hidden; + color: #fff; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; + -ms-font-smoothing: antialiased; + -o-font-smoothing: antialiased; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} +/* line 69, ../scss/_base.scss */ +body.loaded { + opacity: 1 !important; +} + +/* line 74, ../scss/_base.scss */ +input, button { + vertical-align: middle; +} + +/* line 78, ../scss/_base.scss */ +slides > slide[hidden] { + display: none !important; +} + +/* line 82, ../scss/_base.scss */ +slides { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-perspective: 1000; + perspective: 1000; + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: opacity 800ms ease-in 100ms; + -moz-transition: opacity 800ms ease-in 100ms; + -ms-transition: opacity 800ms ease-in 100ms; + -o-transition: opacity 800ms ease-in 100ms; + transition: opacity 800ms ease-in 100ms; +} + +/* line 94, ../scss/_base.scss */ +slides > slide { + display: block; + position: absolute; + overflow: hidden; + left: 50%; + top: 50%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Slide styles */ +/*article.fill iframe { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + + border: 0; + margin: 0; + + @include border-radius(10px); + + z-index: -1; +} + +slide.fill { + background-repeat: no-repeat; + @include background-size(cover); +} + +slide.fill img { + position: absolute; + left: 0; + top: 0; + min-width: 100%; + min-height: 100%; + + z-index: -1; +} +*/ +/** + * Theme Styles + */ +/* line 58, ../scss/default.scss */ +::selection { + color: white; + background-color: #ffd14d; + text-shadow: none; +} + +/* line 64, ../scss/default.scss */ +::-webkit-scrollbar { + height: 16px; + overflow: visible; + width: 16px; +} + +/* line 69, ../scss/default.scss */ +::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.1); + background-clip: padding-box; + border: solid transparent; + min-height: 28px; + padding: 100px 0 0; + -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + -moz-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); + border-width: 1px 1px 1px 6px; +} + +/* line 78, ../scss/default.scss */ +::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.5); +} + +/* line 81, ../scss/default.scss */ +::-webkit-scrollbar-button { + height: 0; + width: 0; +} + +/* line 85, ../scss/default.scss */ +::-webkit-scrollbar-track { + background-clip: padding-box; + border: solid transparent; + border-width: 0 0 0 4px; +} + +/* line 90, ../scss/default.scss */ +::-webkit-scrollbar-corner { + background: transparent; +} + +/* line 94, ../scss/default.scss */ +body { + background: black; +} + +/* line 98, ../scss/default.scss */ +slides > slide { + display: none; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 26px; + color: #797979; + width: 900px; + height: 700px; + margin-left: -450px; + margin-top: -350px; + padding: 40px 60px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-transition: all 0.6s ease-in-out; + -moz-transition: all 0.6s ease-in-out; + -ms-transition: all 0.6s ease-in-out; + -o-transition: all 0.6s ease-in-out; + transition: all 0.6s ease-in-out; +} +/* line 119, ../scss/default.scss */ +slides > slide.far-past { + display: none; +} +/* line 126, ../scss/default.scss */ +slides > slide.past { + display: block; + opacity: 0; +} +/* line 133, ../scss/default.scss */ +slides > slide.current { + display: block; + opacity: 1; +} +/* line 139, ../scss/default.scss */ +slides > slide.current .auto-fadein { + opacity: 1; +} +/* line 143, ../scss/default.scss */ +slides > slide.current .gdbar { + -webkit-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -o-background-size: 100% 100%; + background-size: 100% 100%; +} +/* line 148, ../scss/default.scss */ +slides > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 156, ../scss/default.scss */ +slides > slide.far-next { + display: none; +} +/* line 163, ../scss/default.scss */ +slides > slide.dark { + background: #515151 !important; +} +/* line 171, ../scss/default.scss */ +slides > slide:not(.nobackground):before { + font-size: 12pt; + content: "#yourhashtag"; + position: absolute; + bottom: 20px; + left: 60px; + background: url(../../images/google_developers_icon_128.png) no-repeat 0 50%; + -webkit-background-size: 30px 30px; + -moz-background-size: 30px 30px; + -o-background-size: 30px 30px; + background-size: 30px 30px; + padding-left: 40px; + height: 30px; + line-height: 1.9; +} +/* line 183, ../scss/default.scss */ +slides > slide:not(.nobackground):after { + font-size: 12pt; + content: attr(data-slide-num) "/" attr(data-total-slides); + position: absolute; + bottom: 20px; + right: 60px; + line-height: 1.9; +} +/* line 194, ../scss/default.scss */ +slides > slide.title-slide:after { + content: ''; + background: url(../../images/io2012_logo.png) no-repeat 100% 50%; + -webkit-background-size: contain; + -moz-background-size: contain; + -o-background-size: contain; + background-size: contain; + position: absolute; + bottom: 40px; + right: 40px; + width: 100%; + height: 60px; +} +/* line 206, ../scss/default.scss */ +slides > slide.backdrop { + z-index: -10; + display: block !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 211, ../scss/default.scss */ +slides > slide.backdrop:after, slides > slide.backdrop:before { + display: none; +} +/* line 216, ../scss/default.scss */ +slides > slide > hgroup + article { + margin-top: 45px; +} +/* line 220, ../scss/default.scss */ +slides > slide > hgroup + article.flexbox.vcenter, slides > slide > hgroup + article.flexbox.vleft, slides > slide > hgroup + article.flexbox.vright { + height: 80%; +} +/* line 225, ../scss/default.scss */ +slides > slide > hgroup + article p { + margin-bottom: 1em; +} +/* line 230, ../scss/default.scss */ +slides > slide > article:only-child { + height: 100%; +} +/* line 233, ../scss/default.scss */ +slides > slide > article:only-child > iframe { + height: 98%; +} + +/* line 239, ../scss/default.scss */ +slides.layout-faux-widescreen > slide { + padding: 40px 160px; +} + +/* line 248, ../scss/default.scss */ +slides.layout-widescreen > slide, +slides.layout-faux-widescreen > slide { + margin-left: -550px; + width: 1100px; +} +/* line 253, ../scss/default.scss */ +slides.layout-widescreen > slide.far-past, +slides.layout-faux-widescreen > slide.far-past { + display: block; + display: none; + -webkit-transform: translate(-2260px); + -moz-transform: translate(-2260px); + -ms-transform: translate(-2260px); + -o-transform: translate(-2260px); + transform: translate(-2260px); + -webkit-transform: translate3d(-2260px, 0, 0); + -moz-transform: translate3d(-2260px, 0, 0); + -ms-transform: translate3d(-2260px, 0, 0); + -o-transform: translate3d(-2260px, 0, 0); + transform: translate3d(-2260px, 0, 0); +} +/* line 260, ../scss/default.scss */ +slides.layout-widescreen > slide.past, +slides.layout-faux-widescreen > slide.past { + display: block; + opacity: 0; +} +/* line 267, ../scss/default.scss */ +slides.layout-widescreen > slide.current, +slides.layout-faux-widescreen > slide.current { + display: block; + opacity: 1; +} +/* line 274, ../scss/default.scss */ +slides.layout-widescreen > slide.next, +slides.layout-faux-widescreen > slide.next { + display: block; + opacity: 0; + pointer-events: none; +} +/* line 282, ../scss/default.scss */ +slides.layout-widescreen > slide.far-next, +slides.layout-faux-widescreen > slide.far-next { + display: block; + display: none; + -webkit-transform: translate(2260px); + -moz-transform: translate(2260px); + -ms-transform: translate(2260px); + -o-transform: translate(2260px); + transform: translate(2260px); + -webkit-transform: translate3d(2260px, 0, 0); + -moz-transform: translate3d(2260px, 0, 0); + -ms-transform: translate3d(2260px, 0, 0); + -o-transform: translate3d(2260px, 0, 0); + transform: translate3d(2260px, 0, 0); +} +/* line 289, ../scss/default.scss */ +slides.layout-widescreen #prev-slide-area, +slides.layout-faux-widescreen #prev-slide-area { + margin-left: -650px; +} +/* line 293, ../scss/default.scss */ +slides.layout-widescreen #next-slide-area, +slides.layout-faux-widescreen #next-slide-area { + margin-left: 550px; +} + +/* line 298, ../scss/default.scss */ +b { + font-weight: 600; +} + +/* line 302, ../scss/default.scss */ +a { + color: #2a7cdf; + text-decoration: none; + border-bottom: 1px solid rgba(42, 124, 223, 0.5); +} +/* line 307, ../scss/default.scss */ +a:hover { + color: black !important; +} + +/* line 312, ../scss/default.scss */ +h1, h2, h3 { + font-weight: 600; +} + +/* line 316, ../scss/default.scss */ +h2 { + font-size: 45px; + line-height: 45px; + letter-spacing: -2px; + color: #515151; +} + +/* line 323, ../scss/default.scss */ +h3 { + font-size: 30px; + letter-spacing: -1px; + line-height: 2; + font-weight: inherit; + color: #797979; +} + +/* line 331, ../scss/default.scss */ +ul { + margin-left: 1.2em; + margin-bottom: 1em; + position: relative; +} +/* line 336, ../scss/default.scss */ +ul li { + margin-bottom: 0.5em; +} +/* line 339, ../scss/default.scss */ +ul li ul { + margin-left: 2em; + margin-bottom: 0; +} +/* line 343, ../scss/default.scss */ +ul li ul li:before { + content: '-'; + font-weight: 600; +} +/* line 350, ../scss/default.scss */ +ul > li:before { + content: '·'; + margin-left: -1em; + position: absolute; + font-weight: 600; +} +/* line 357, ../scss/default.scss */ +ul ul { + margin-top: .5em; +} + +/* line 364, ../scss/default.scss */ +.highlight-code slide.current pre > * { + opacity: 0.25; + -webkit-transition: opacity 0.5s ease-in; + -moz-transition: opacity 0.5s ease-in; + -ms-transition: opacity 0.5s ease-in; + -o-transition: opacity 0.5s ease-in; + transition: opacity 0.5s ease-in; +} +/* line 368, ../scss/default.scss */ +.highlight-code slide.current b { + opacity: 1; +} + +/* line 373, ../scss/default.scss */ +pre { + font-family: 'Source Code Pro', 'Courier New', monospace; + font-size: 20px; + line-height: 28px; + padding: 10px 0 10px 60px; + letter-spacing: -1px; + margin-bottom: 20px; + width: 106%; + background-color: #e6e6e6; + left: -60px; + position: relative; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + /*overflow: hidden;*/ +} +/* line 387, ../scss/default.scss */ +pre[data-lang]:after { + content: attr(data-lang); + background-color: #a9a9a9; + right: 0; + top: 0; + position: absolute; + font-size: 16pt; + color: white; + padding: 2px 25px; + text-transform: uppercase; +} + +/* line 400, ../scss/default.scss */ +pre[data-lang="go"] { + color: #333; +} + +/* line 404, ../scss/default.scss */ +code { + font-size: 95%; + font-family: 'Source Code Pro', 'Courier New', monospace; + color: black; +} + +/* line 410, ../scss/default.scss */ +iframe { + width: 100%; + height: 530px; + background: white; + border: 1px solid #e6e6e6; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 418, ../scss/default.scss */ +dt { + font-weight: bold; +} + +/* line 422, ../scss/default.scss */ +button { + display: inline-block; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #f9f9f9), color-stop(70%, #e3e3e3)); + background: -webkit-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -moz-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -o-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: -ms-linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + background: linear-gradient(#f9f9f9 40%, #e3e3e3 70%); + border: 1px solid #a9a9a9; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + padding: 5px 8px; + outline: none; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + cursor: pointer; + text-shadow: 1px 1px white; + font-size: 10pt; +} + +/* line 436, ../scss/default.scss */ +button:not(:disabled):hover { + border-color: #515151; +} + +/* line 440, ../scss/default.scss */ +button:not(:disabled):active { + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #e3e3e3), color-stop(70%, #f9f9f9)); + background: -webkit-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -moz-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -o-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: -ms-linear-gradient(#e3e3e3 40%, #f9f9f9 70%); + background: linear-gradient(#e3e3e3 40%, #f9f9f9 70%); +} + +/* line 444, ../scss/default.scss */ +:disabled { + color: #a9a9a9; +} + +/* line 448, ../scss/default.scss */ +.blue { + color: #4387fd; +} + +/* line 451, ../scss/default.scss */ +.blue2 { + color: #3c8ef3; +} + +/* line 454, ../scss/default.scss */ +.blue3 { + color: #2a7cdf; +} + +/* line 457, ../scss/default.scss */ +.yellow { + color: #ffd14d; +} + +/* line 460, ../scss/default.scss */ +.yellow2 { + color: #f9cc46; +} + +/* line 463, ../scss/default.scss */ +.yellow3 { + color: #f6c000; +} + +/* line 466, ../scss/default.scss */ +.green { + color: #0da861; +} + +/* line 469, ../scss/default.scss */ +.green2 { + color: #00a86d; +} + +/* line 472, ../scss/default.scss */ +.green3 { + color: #009f5d; +} + +/* line 475, ../scss/default.scss */ +.red { + color: #f44a3f; +} + +/* line 478, ../scss/default.scss */ +.red2 { + color: #e0543e; +} + +/* line 481, ../scss/default.scss */ +.red3 { + color: #d94d3a; +} + +/* line 484, ../scss/default.scss */ +.gray { + color: #e6e6e6; +} + +/* line 487, ../scss/default.scss */ +.gray2 { + color: #a9a9a9; +} + +/* line 490, ../scss/default.scss */ +.gray3 { + color: #797979; +} + +/* line 493, ../scss/default.scss */ +.gray4 { + color: #515151; +} + +/* line 497, ../scss/default.scss */ +.white { + color: white !important; +} + +/* line 500, ../scss/default.scss */ +.black { + color: black !important; +} + +/* line 504, ../scss/default.scss */ +.columns-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + -o-column-count: 2; + column-count: 2; +} + +/* line 508, ../scss/default.scss */ +table { + width: 100%; + border-collapse: -moz-initial; + border-collapse: initial; + border-spacing: 2px; + border-bottom: 1px solid #797979; +} +/* line 515, ../scss/default.scss */ +table tr > td:first-child, table th { + font-weight: 600; + color: #515151; +} +/* line 520, ../scss/default.scss */ +table tr:nth-child(odd) { + background-color: #e6e6e6; +} +/* line 524, ../scss/default.scss */ +table th { + color: white; + font-size: 18px; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #4387fd), color-stop(80%, #2a7cdf)) no-repeat; + background: -webkit-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -moz-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -o-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: -ms-linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; + background: linear-gradient(top, #4387fd 40%, #2a7cdf 80%) no-repeat; +} +/* line 530, ../scss/default.scss */ +table td, table th { + font-size: 18px; + padding: 1em 0.5em; +} +/* line 535, ../scss/default.scss */ +table td.highlight { + color: #515151; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(40%, #ffd14d), color-stop(80%, #f6c000)) no-repeat; + background: -webkit-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -moz-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -o-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: -ms-linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; + background: linear-gradient(top, #ffd14d 40%, #f6c000 80%) no-repeat; +} +/* line 540, ../scss/default.scss */ +table.rows { + border-bottom: none; + border-right: 1px solid #797979; +} + +/* line 546, ../scss/default.scss */ +q { + font-size: 45px; + line-height: 72px; +} +/* line 550, ../scss/default.scss */ +q:before { + content: '“'; + position: absolute; + margin-left: -0.5em; +} +/* line 555, ../scss/default.scss */ +q:after { + content: '”'; + position: absolute; + margin-left: 0.1em; +} + +/* line 562, ../scss/default.scss */ +slide.fill { + background-repeat: no-repeat; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-background-size: cover; + -moz-background-size: cover; + -o-background-size: cover; + background-size: cover; +} + +/* Size variants */ +/* line 571, ../scss/default.scss */ +article.smaller p, article.smaller ul { + font-size: 20px; + line-height: 24px; + letter-spacing: 0; +} +/* line 577, ../scss/default.scss */ +article.smaller table td, article.smaller table th { + font-size: 14px; +} +/* line 581, ../scss/default.scss */ +article.smaller pre { + font-size: 15px; + line-height: 20px; + letter-spacing: 0; +} +/* line 586, ../scss/default.scss */ +article.smaller q { + font-size: 40px; + line-height: 48px; +} +/* line 590, ../scss/default.scss */ +article.smaller q:before, article.smaller q:after { + font-size: 60px; +} + +/* Builds */ +/* line 599, ../scss/default.scss */ +.build > * { + -webkit-transition: opacity 0.5s ease-in-out 0.2s; + -moz-transition: opacity 0.5s ease-in-out 0.2s; + -ms-transition: opacity 0.5s ease-in-out 0.2s; + -o-transition: opacity 0.5s ease-in-out 0.2s; + transition: opacity 0.5s ease-in-out 0.2s; +} +/* line 603, ../scss/default.scss */ +.build .to-build { + opacity: 0; +} +/* line 607, ../scss/default.scss */ +.build .build-fade { + opacity: 0.3; +} +/* line 610, ../scss/default.scss */ +.build .build-fade:hover { + opacity: 1.0; +} + +/* line 617, ../scss/default.scss */ +.popup .next .build .to-build { + opacity: 1; +} +/* line 621, ../scss/default.scss */ +.popup .next .build .build-fade { + opacity: 1; +} + +/* Pretty print */ +/* line 629, ../scss/default.scss */ +.prettyprint .str, +.prettyprint .atv { + /* a markup attribute value */ + color: #009f5d; +} + +/* line 633, ../scss/default.scss */ +.prettyprint .kwd, +.prettyprint .tag { + /* a markup tag name */ + color: #0066cc; +} + +/* line 636, ../scss/default.scss */ +.prettyprint .com { + /* a comment */ + color: #797979; + font-style: italic; +} + +/* line 640, ../scss/default.scss */ +.prettyprint .lit { + /* a literal value */ + color: #7f0000; +} + +/* line 645, ../scss/default.scss */ +.prettyprint .pun, +.prettyprint .opn, +.prettyprint .clo { + color: #515151; +} + +/* line 651, ../scss/default.scss */ +.prettyprint .typ, +.prettyprint .atn, +.prettyprint .dec, +.prettyprint .var { + /* a declaration; a variable name */ + color: #d94d3a; +} + +/* line 654, ../scss/default.scss */ +.prettyprint .pln { + color: #515151; +} + +/* line 658, ../scss/default.scss */ +.note { + position: absolute; + z-index: 100; + width: 100%; + height: 100%; + top: 0; + left: 0; + padding: 1em; + background: rgba(0, 0, 0, 0.3); + opacity: 0; + pointer-events: none; + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transform: translateY(350px); + -moz-transform: translateY(350px); + -ms-transform: translateY(350px); + -o-transform: translateY(350px); + transform: translateY(350px); + -webkit-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + transition: all 0.4s ease-in-out; +} +/* line 676, ../scss/default.scss */ +.note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + width: 60%; + padding: 2em; +} + +/* line 693, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide.next, +.with-notes.popup slides.layout-faux-widescreen slide.next { + -webkit-transform: translate3d(690px, 80px, 0) scale(0.35); + -moz-transform: translate3d(690px, 80px, 0) scale(0.35); + -ms-transform: translate3d(690px, 80px, 0) scale(0.35); + -o-transform: translate3d(690px, 80px, 0) scale(0.35); + transform: translate3d(690px, 80px, 0) scale(0.35); +} +/* line 696, ../scss/default.scss */ +.with-notes.popup slides.layout-widescreen slide .note, +.with-notes.popup slides.layout-faux-widescreen slide .note { + -webkit-transform: translate3d(300px, 800px, 0) scale(1.5); + -moz-transform: translate3d(300px, 800px, 0) scale(1.5); + -ms-transform: translate3d(300px, 800px, 0) scale(1.5); + -o-transform: translate3d(300px, 800px, 0) scale(1.5); + transform: translate3d(300px, 800px, 0) scale(1.5); +} +/* line 702, ../scss/default.scss */ +.with-notes.popup slide { + overflow: visible; + background: white; + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + pointer-events: none; + -webkit-transform-origin: 0 0; + -moz-transform-origin: 0 0; + -ms-transform-origin: 0 0; + -o-transform-origin: 0 0; + transform-origin: 0 0; +} +/* line 709, ../scss/default.scss */ +.with-notes.popup slide:not(.backdrop) { + -webkit-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -moz-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -ms-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -o-transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + transform: scale(0.6) translate3d(0.5em, 0.5em, 0); + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; +} +/* line 714, ../scss/default.scss */ +.with-notes.popup slide.backdrop { + background-image: -webkit-gradient(radial, 50% 50%, 0, 50% 50%, 600, color-stop(0%, #b1dfff), color-stop(100%, #4387fd)); + background-image: -webkit-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -moz-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -o-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: -ms-radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); + background-image: radial-gradient(50% 50%, #b1dfff 0%, #4387fd 600px); +} +/* line 720, ../scss/default.scss */ +.with-notes.popup slide.next { + -webkit-transform: translate3d(570px, 80px, 0) scale(0.35); + -moz-transform: translate3d(570px, 80px, 0) scale(0.35); + -ms-transform: translate3d(570px, 80px, 0) scale(0.35); + -o-transform: translate3d(570px, 80px, 0) scale(0.35); + transform: translate3d(570px, 80px, 0) scale(0.35); + opacity: 1 !important; +} +/* line 724, ../scss/default.scss */ +.with-notes.popup slide.next .note { + display: none !important; +} +/* line 730, ../scss/default.scss */ +.with-notes.popup .note { + width: 109%; + height: 260px; + background: #e6e6e6; + padding: 0; + -webkit-box-shadow: 0 0 10px #797979; + -moz-box-shadow: 0 0 10px #797979; + box-shadow: 0 0 10px #797979; + -webkit-transform: translate3d(250px, 800px, 0) scale(1.5); + -moz-transform: translate3d(250px, 800px, 0) scale(1.5); + -ms-transform: translate3d(250px, 800px, 0) scale(1.5); + -o-transform: translate3d(250px, 800px, 0) scale(1.5); + transform: translate3d(250px, 800px, 0) scale(1.5); + -webkit-transition: opacity 400ms ease-in-out; + -moz-transition: opacity 400ms ease-in-out; + -ms-transition: opacity 400ms ease-in-out; + -o-transition: opacity 400ms ease-in-out; + transition: opacity 400ms ease-in-out; +} +/* line 741, ../scss/default.scss */ +.with-notes.popup .note > section { + background: #fff; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + height: 100%; + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + overflow: auto; + padding: 1em; +} +/* line 754, ../scss/default.scss */ +.with-notes .note { + opacity: 1; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); + pointer-events: auto; +} + +/* line 761, ../scss/default.scss */ +.source { + font-size: 14px; + color: #a9a9a9; + position: absolute; + bottom: 70px; + left: 60px; +} + +/* line 769, ../scss/default.scss */ +.centered { + text-align: center; +} + +/* line 773, ../scss/default.scss */ +.reflect { + -webkit-box-reflect: below 3px -webkit-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -moz-box-reflect: below 3px -moz-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -o-box-reflect: below 3px -o-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + -ms-box-reflect: below 3px -ms-linear-gradient(rgba(255, 255, 255, 0) 85%, white 150%); + box-reflect: below 3px linear-gradient(rgba(255, 255, 255, 0) 85%, #ffffff 150%); +} + +/* line 781, ../scss/default.scss */ +.flexbox { + display: -webkit-box !important; + display: -moz-box !important; + display: -ms-box !important; + display: -o-box !important; + display: box !important; +} + +/* line 785, ../scss/default.scss */ +.flexbox.vcenter { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + -ms-box-align: center; + box-align: center; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 791, ../scss/default.scss */ +.flexbox.vleft { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: left; + -moz-box-align: left; + -ms-box-align: left; + box-align: left; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 797, ../scss/default.scss */ +.flexbox.vright { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -ms-box-orient: vertical; + box-orient: vertical; + -webkit-box-align: end; + -moz-box-align: end; + -ms-box-align: end; + box-align: end; + -webkit-box-pack: center; + -moz-box-pack: center; + -ms-box-pack: center; + box-pack: center; + height: 100%; + width: 100%; +} + +/* line 803, ../scss/default.scss */ +.auto-fadein { + -webkit-transition: opacity 0.6s ease-in 1s; + -moz-transition: opacity 0.6s ease-in 1s; + -ms-transition: opacity 0.6s ease-in 1s; + -o-transition: opacity 0.6s ease-in 1s; + transition: opacity 0.6s ease-in 1s; + opacity: 0; +} + +/* Clickable/tappable areas */ +/* line 809, ../scss/default.scss */ +.slide-area { + z-index: 1000; + position: absolute; + left: 0; + top: 0; + width: 100px; + height: 700px; + left: 50%; + top: 50%; + cursor: pointer; + margin-top: -350px; +} + +/* line 826, ../scss/default.scss */ +#prev-slide-area { + margin-left: -550px; +} + +/* line 831, ../scss/default.scss */ +#next-slide-area { + margin-left: 450px; +} + +/* ===== SLIDE CONTENT ===== */ +/* line 839, ../scss/default.scss */ +.logoslide img { + width: 383px; + height: 92px; +} + +/* line 845, ../scss/default.scss */ +.segue { + padding: 60px 120px; +} +/* line 848, ../scss/default.scss */ +.segue h2 { + color: #e6e6e6; + font-size: 60px; +} +/* line 852, ../scss/default.scss */ +.segue h3 { + color: #e6e6e6; + line-height: 2.8; +} +/* line 856, ../scss/default.scss */ +.segue hgroup { + position: absolute; + bottom: 225px; +} + +/* line 862, ../scss/default.scss */ +.thank-you-slide { + background: #4387fd !important; + color: white; +} +/* line 866, ../scss/default.scss */ +.thank-you-slide h2 { + font-size: 60px; + color: inherit; +} +/* line 871, ../scss/default.scss */ +.thank-you-slide article > p { + margin-top: 2em; + font-size: 20pt; +} +/* line 876, ../scss/default.scss */ +.thank-you-slide > p { + position: absolute; + bottom: 80px; + font-size: 24pt; + line-height: 1.3; +} + +/* line 884, ../scss/default.scss */ +aside.gdbar { + height: 97px; + width: 415px; + position: absolute; + left: -1px; + top: 125px; + -webkit-border-radius: 0 10px 10px 0; + -moz-border-radius: 0 10px 10px 0; + -ms-border-radius: 0 10px 10px 0; + -o-border-radius: 0 10px 10px 0; + border-radius: 0 10px 10px 0; + background: -webkit-gradient(linear, 0% 50%, 100% 50%, color-stop(0%, #e6e6e6), color-stop(100%, #e6e6e6)) no-repeat; + background: -webkit-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -moz-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -o-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: -ms-linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + background: linear-gradient(left, #e6e6e6, #e6e6e6) no-repeat; + -webkit-background-size: 0% 100%; + -moz-background-size: 0% 100%; + -o-background-size: 0% 100%; + background-size: 0% 100%; + -webkit-transition: all 0.5s ease-out 0.5s; + -moz-transition: all 0.5s ease-out 0.5s; + -ms-transition: all 0.5s ease-out 0.5s; + -o-transition: all 0.5s ease-out 0.5s; + transition: all 0.5s ease-out 0.5s; + /* Better to transition only on background-size, but not sure how to do that with the mixin. */ +} +/* line 895, ../scss/default.scss */ +aside.gdbar.right { + right: 0; + left: -moz-initial; + left: initial; + top: 254px; + /* 96 is height of gray icon bar */ + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 902, ../scss/default.scss */ +aside.gdbar.right img { + -webkit-transform: rotateZ(180deg); + -moz-transform: rotateZ(180deg); + -ms-transform: rotateZ(180deg); + -o-transform: rotateZ(180deg); + transform: rotateZ(180deg); +} +/* line 907, ../scss/default.scss */ +aside.gdbar.bottom { + top: -moz-initial; + top: initial; + bottom: 60px; +} +/* line 913, ../scss/default.scss */ +aside.gdbar img { + width: 300px; + height: 85px; + position: absolute; + right: 0; + margin: 8px 15px; +} + +/* line 924, ../scss/default.scss */ +.title-slide hgroup { + bottom: 100px; +} +/* line 927, ../scss/default.scss */ +.title-slide hgroup h1 { + font-size: 65px; + line-height: 1.4; + letter-spacing: -3px; + color: #515151; +} +/* line 934, ../scss/default.scss */ +.title-slide hgroup h2 { + font-size: 34px; + color: #a9a9a9; + font-weight: inherit; +} +/* line 940, ../scss/default.scss */ +.title-slide hgroup p { + font-size: 20px; + color: #797979; + line-height: 1.3; + margin-top: 2em; +} + +/* line 949, ../scss/default.scss */ +.quote { + color: #e6e6e6; +} +/* line 952, ../scss/default.scss */ +.quote .author { + font-size: 24px; + position: absolute; + bottom: 80px; + line-height: 1.4; +} + +/* line 961, ../scss/default.scss */ +[data-config-contact] a { + color: white; + border-bottom: none; +} +/* line 965, ../scss/default.scss */ +[data-config-contact] span { + width: 115px; + display: inline-block; +} + +/* line 974, ../scss/default.scss */ +.overview.popup .note { + display: none !important; +} +/* line 980, ../scss/default.scss */ +.overview slides slide { + display: block; + cursor: pointer; + opacity: 0.5; + pointer-events: auto !important; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; +} +/* line 981, ../scss/default.scss */ +.overview slides slide.backdrop { + display: none !important; +} +/* line 996, ../scss/default.scss */ +.overview slides slide.far-past, .overview slides slide.past, .overview slides slide.next, .overview slides slide.far-next, .overview slides slide.far-past { + opacity: 0.5; + display: block; +} +/* line 1001, ../scss/default.scss */ +.overview slides slide.current { + opacity: 1; +} +/* line 1007, ../scss/default.scss */ +.overview .slide-area { + display: none; +} + +@media print { + /* line 1014, ../scss/default.scss */ + slides slide { + display: block !important; + position: relative; + background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(85%, #ffffff), color-stop(100%, #e6e6e6)); + background: -webkit-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -moz-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -o-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: -ms-linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background: linear-gradient(#ffffff, #ffffff 85%, #e6e6e6); + background-color: white; + -webkit-transform: none !important; + -moz-transform: none !important; + -ms-transform: none !important; + -o-transform: none !important; + transform: none !important; + width: 100%; + height: 100%; + page-break-after: always; + top: auto !important; + left: auto !important; + margin-top: 0 !important; + margin-left: 0 !important; + opacity: 1 !important; + color: #555; + } + /* line 1034, ../scss/default.scss */ + slides slide.far-past, slides slide.past, slides slide.next, slides slide.far-next, slides slide.far-past, slides slide.current { + opacity: 1 !important; + display: block !important; + } + /* line 1040, ../scss/default.scss */ + slides slide .build > * { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; + } + /* line 1045, ../scss/default.scss */ + slides slide .build .to-build, + slides slide .build .build-fade { + opacity: 1; + } + /* line 1050, ../scss/default.scss */ + slides slide .auto-fadein { + opacity: 1 !important; + } + /* line 1054, ../scss/default.scss */ + slides slide.backdrop { + display: none !important; + } + /* line 1058, ../scss/default.scss */ + slides slide table.rows { + border-right: 0; + } + /* line 1063, ../scss/default.scss */ + slides slide[hidden] { + display: none !important; + } + + /* line 1068, ../scss/default.scss */ + .slide-area { + display: none; + } + + /* line 1072, ../scss/default.scss */ + .reflect { + -webkit-box-reflect: none; + -moz-box-reflect: none; + -o-box-reflect: none; + -ms-box-reflect: none; + box-reflect: none; + } + + /* line 1080, ../scss/default.scss */ + pre, code { + font-family: monospace !important; + } +} diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/Mach-O_File_Format.png Binary file seminar/seminar2013/images/Mach-O_File_Format.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/Untitled.png Binary file seminar/seminar2013/images/Untitled.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/boot_flow_chart.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/images/boot_flow_chart.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,647 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.18.0.187838 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2013-08-20 09:38:11 +0000 + Creator + TaikiTAIRA + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 5 + + ID + 19 + Points + + {176.31226441933558, 127.49978767581375} + {177.07021231033283, 153.50020511559777} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 18 + + + + Bounds + {{106, 98}, {139.75, 29}} + Class + ShapedGraphic + ID + 18 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 create_boot_params} + + + + Bounds + {{160.78293353458241, 432.25812800480543}, {33, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 17 + Line + + ID + 16 + Position + 0.63108152151107788 + RotationType + 0 + + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 JUMP} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 9 + + ID + 16 + Points + + {176.9160855814568, 399.49997870475624} + {177.49738600084987, 462.50000000921665} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 8 + + + + Class + LineGraphic + Head + + ID + 7 + + ID + 15 + Points + + {177.49998840110328, 277.5} + {177.49998840110328, 294.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 13 + + + + Class + LineGraphic + Head + + ID + 13 + + ID + 14 + Points + + {176.99181652774175, 230.49993504560803} + {177.26587847466442, 247.5000608877227} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 6 + + + + Bounds + {{109.25, 248}, {136.5, 29}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 set GDT} + + + + Class + LineGraphic + Head + + ID + 8 + + ID + 12 + Points + + {177.3036856100274, 330.4999702582038} + {176.9437746600687, 363.50002896894409} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 7 + + + + Class + LineGraphic + Head + + ID + 6 + + ID + 10 + Points + + {177.25773707287519, 183.49993481429462} + {176.98316920031493, 200.50006041907344} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 5 + + + + Bounds + {{109.25, 463}, {136.5, 45}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 kernel} + + + + Bounds + {{108.5, 364}, {136.5, 35}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 set CS register } + + + + Bounds + {{109.25, 295}, {136.5, 35}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 SetVirtualAddressMap} + + + + Bounds + {{108.5, 201}, {136.5, 29}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ExitBootServices} + + + + Bounds + {{86, 48.999999999999993}, {104, 33.833333333333329}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ELILO} + + + + Bounds + {{109.25, 154}, {136.5, 29}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 GetMemoryMap} + + + + Bounds + {{77, 69.299999999999926}, {201, 356.70000000000005}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2013-08-20 10:15:18 +0000 + Modifier + TaikiTAIRA + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{1390, 453}, {693, 922}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/boot_flow_chart.png Binary file seminar/seminar2013/images/boot_flow_chart.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/boot_order.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/images/boot_order.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,491 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {558.99997329711914, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2013-04-02 09:17:59 +0000 + Creator + TaikiTAIRA + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Class + LineGraphic + Head + + ID + 13 + + ID + 14 + Points + + {186.00001319905866, 166.5} + {186.00001319905866, 197.25} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{115, 197.75}, {142, 57}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Paging init} + + + + Bounds + {{150.5, 435.125}, {71, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 12 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ELILO kernel} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{168.5, 386.25}, {35, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 11 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ELILO} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 5 + + ID + 10 + Points + + {186.00001021895466, 344} + {186.00001021895466, 374.75} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 3 + + + + Class + LineGraphic + Head + + ID + 3 + + ID + 8 + Points + + {186, 255.25} + {186, 286} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 13 + + + + Bounds + {{130.5, 409.25}, {111, 65.75}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + + + Bounds + {{115, 375.25}, {142, 108}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + + + Bounds + {{115, 109}, {142, 57}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Boot} + + + + Bounds + {{115, 286.5}, {142, 57}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 EFI} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2013-04-02 09:24:09 +0000 + Modifier + TaikiTAIRA + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {594.99997329711914, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{989, 640}, {693, 778}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 639}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/boot_order.jpg Binary file seminar/seminar2013/images/boot_order.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/entire_cr3_setup.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/images/entire_cr3_setup.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,654 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.18.0.187838 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2013-07-30 06:53:54 +0000 + Creator + TaikiTAIRA + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{349, 151}, {110, 26.693059921264648}} + Class + ShapedGraphic + ID + 22 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ELILO} + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 19 + Points + + {359.38693200338457, 245.83333334660759} + {359.38687888252076, 292.72916665339233} + + Style + + stroke + + Color + + b + 1 + g + 0.0545208 + r + 0.106424 + + HeadArrow + FilledArrow + Join + 0 + Legacy + + TailArrow + 0 + Width + 3 + + + Tail + + ID + 6 + + + + Class + LineGraphic + Head + + ID + 6 + + ID + 18 + Points + + {230.72607488602566, 218.86463294289808} + {297.77392511397431, 218.86468692846361} + + Style + + stroke + + Color + + b + 1 + g + 0.0545208 + r + 0.106424 + + HeadArrow + FilledArrow + Join + 0 + Legacy + + TailArrow + 0 + Width + 3 + + + Tail + + ID + 3 + + + + Class + LineGraphic + Head + + ID + 16 + + ID + 17 + Points + + {169.11524924066117, 346.66666668035282} + {169.11909531660089, 393.5625000257736} + + Style + + stroke + + Color + + b + 1 + g + 0.0545208 + r + 0.106424 + + HeadArrow + FilledArrow + Join + 0 + Legacy + + TailArrow + 0 + Width + 3 + + + Tail + + ID + 14 + + + + Bounds + {{108.00000000000006, 394.06249999999977}, {122.22607489597785, 52.937499999999986}} + Class + ShapedGraphic + ID + 16 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 kernel} + + + + Class + LineGraphic + Head + + ID + 14 + + ID + 15 + Points + + {297.77392511397431, 319.69798520482641} + {230.72607488602566, 319.69805978865571} + + Style + + stroke + + Color + + b + 1 + g + 0.0545208 + r + 0.106424 + + HeadArrow + FilledArrow + Join + 0 + Legacy + + TailArrow + 0 + Width + 3 + + + Tail + + ID + 9 + + + + Bounds + {{108.00000000000006, 293.22916666666663}, {122.22607489597785, 52.937499999999986}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 64 bit mode } + + + + Bounds + {{229.63939275970972, 255.04744492218731}, {65.868125915527344, 26.693059921264648}} + Class + ShapedGraphic + ID + 12 + Line + + ID + 11 + Position + 0.48129183053970337 + RotationType + 0 + + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 #GP} + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 11 + Points + + {219.50053930983228, 245.56746306708004} + {308.99492436793867, 292.99505349624388} + + Style + + stroke + + HeadArrow + FilledArrow + Join + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3 + + + + Bounds + {{298.27392510402211, 293.22916666666663}, {122.22607489597785, 52.937499999999986}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CR3 to page table} + + + + Bounds + {{298.27392510402211, 192.39583333333331}, {122.22607489597785, 52.937499999999986}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Compatibility mode } + + + + Class + LineGraphic + Head + + ID + 3 + + ID + 5 + Points + + {169.11301906129836, 145.00000001327427} + {169.11301906129836, 191.89583332005901} + + Style + + stroke + + Color + + b + 1 + g + 0.0545208 + r + 0.106424 + + HeadArrow + FilledArrow + Join + 0 + Legacy + + TailArrow + 0 + Width + 3 + + + Tail + + ID + 4 + + + + Bounds + {{108.00000000000006, 91.5625}, {122.22607489597785, 52.937499999999986}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 UEFI boot} + + + + Bounds + {{108.00000000000006, 192.39583333333331}, {122.22607489597785, 52.937499999999986}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf390 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 64 bit mode } + + + + Bounds + {{66, 168}, {409, 200}} + Class + ShapedGraphic + ID + 21 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2013-07-30 09:00:24 +0000 + Modifier + TaikiTAIRA + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{953, 476}, {693, 922}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/entire_cr3_setup.png Binary file seminar/seminar2013/images/entire_cr3_setup.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/err_message01.png Binary file seminar/seminar2013/images/err_message01.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/err_message02.png Binary file seminar/seminar2013/images/err_message02.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/firmware_exception.png Binary file seminar/seminar2013/images/firmware_exception.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/flowchart.png Binary file seminar/seminar2013/images/flowchart.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/get_memmap.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/images/get_memmap.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,582 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {558.99997329711914, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2013-03-05 09:09:55 +0000 + Creator + TaikiTAIRA + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{19, 105}, {165, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 24 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 EFI_MEMORY_DESCRIPTOR} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{324, 71}, {91, 14}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 23 + Shape + Rectangle + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 physical memory} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 15 + + ID + 22 + Points + + {145.49922578817609, 184.1389067048373} + {300.50077361616098, 192.77478215035009} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 6 + + + + Class + LineGraphic + Head + + ID + 14 + + ID + 21 + Points + + {145.49995144960022, 159.19928914778777} + {295.50004860209719, 157.10879394548826} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 5 + + + + Bounds + {{301, 381.87499719007127}, {144, 41.125002809928787}} + Class + ShapedGraphic + ID + 20 + Shape + Rectangle + + + Bounds + {{301, 340.7499975914896}, {144, 41.125002809928787}} + Class + ShapedGraphic + ID + 19 + Shape + Rectangle + + + Bounds + {{301, 299.62499799290833}, {144, 41.125002809928787}} + Class + ShapedGraphic + ID + 18 + Shape + Rectangle + + + Bounds + {{301, 258.49999839432644}, {144, 41.125002809928787}} + Class + ShapedGraphic + ID + 17 + Shape + Rectangle + + + Bounds + {{301, 217.37499879574506}, {144, 41.125002809928787}} + Class + ShapedGraphic + ID + 16 + Shape + Rectangle + + + Bounds + {{296, 126.9999985938133}, {158, 58}} + Class + ShapedGraphic + ID + 14 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 TYPE\ +EfiConventionalMemory} + + + + Bounds + {{301, 94.000000000000114}, {144, 41.125002809928787}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + + + Class + LineGraphic + Head + + ID + 13 + + ID + 12 + Points + + {145.49815717863186, 134.14949578953411} + {300.50184301885554, 120.80451381184226} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 4 + + + + Bounds + {{58, 280.125}, {87, 21.875}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + + + Bounds + {{58, 258.25}, {87, 21.875}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + + + Bounds + {{58, 236.375}, {87, 21.875}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + + + Bounds + {{58, 214.5}, {87, 21.875}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + + + Bounds + {{58, 192.625}, {87, 21.875}} + Class + ShapedGraphic + ID + 7 + Shape + Rectangle + + + Bounds + {{58, 170.75}, {87, 21.875}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + + + Bounds + {{58, 148.875}, {87, 21.875}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + + + Bounds + {{58, 127}, {87, 21.875}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + + + Bounds + {{301, 176.24999919716316}, {144, 41.125002809928787}} + Class + ShapedGraphic + ID + 15 + Shape + Rectangle + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2013-03-05 09:25:30 +0000 + Modifier + TaikiTAIRA + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {594.99997329711914, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{662, 116}, {693, 922}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/get_memmap.pdf Binary file seminar/seminar2013/images/get_memmap.pdf has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/get_memmap.png Binary file seminar/seminar2013/images/get_memmap.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/linux_before_kernel.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/images/linux_before_kernel.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,471 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559.28001499176025, 782.8900146484375}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2013-03-26 07:21:40 +0000 + Creator + TaikiTAIRA + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{284, 31}, {159, 60}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 \'83\'81\'83\'82\'83\'8a\'82\'d6\'82\'cc\'83\'43\'83\'81\'81\'5b\'83\'57\'82\'cc\ +\'8a\'84\'82\'e8\'93\'96\'82\'c4} + + + + Bounds + {{284, 126}, {159, 60}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 kernel thread \'8e\'c0\'8d\'73\'91\'4f\'82\'c9\'81\'41\'8f\'89\'8a\'fa\'89\'bb\'82\'aa\'95\'4b\'97\'76\'82\'c8\'95\'a8\'82\'f0\ +\'8f\'89\'8a\'fa\'89\'bb\'82\'b7\'82\'e9} + + + + Bounds + {{284, 221}, {159, 60}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 kernel thread \'82\'f0\'8a\'4a\'8e\'6e\'82\'b7\'82\'e9} + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 9 + Points + + {207, 281.5} + {207, 315.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 5 + + + + Class + LineGraphic + Head + + ID + 5 + + ID + 8 + Points + + {207.00001212916442, 186.5} + {207.00001212916442, 220.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 3 + + + + Class + LineGraphic + Head + + ID + 3 + + ID + 7 + Points + + {206.99998136396502, 91.5} + {206.99998136396502, 125.5} + + Style + + stroke + + HeadArrow + FilledArrow + Legacy + + LineType + 1 + TailArrow + 0 + + + Tail + + ID + 6 + + + + Bounds + {{152, 31}, {110, 60}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 head_64.S} + + + + Bounds + {{152, 221}, {110, 60}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 init/main\ +rest_init()} + + + + Bounds + {{152, 316}, {110, 60}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 kernel thread\ + +\f1 \'82\'aa\'8b\'4e\'93\'ae} + + + + Bounds + {{152, 126}, {110, 60}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 init/main.c\ +start_kernel()} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2013-03-26 08:59:08 +0000 + Modifier + TaikiTAIRA + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595.28001499176025, 841.8900146484375} + + NSPrintReverseOrientation + + int + 0 + + NSPrinter + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAlOU1ByaW50ZXIAhIQITlNPYmplY3QAhZKEhIQITlNTdHJpbmcBlIQBKxNDYW5vbiBNRzMxMDAgc2VyaWVzhoY= + + NSPrinterName + + string + Canon MG3100 series + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{480, 35}, {694, 922}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {559, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/linux_before_kernel.jpg Binary file seminar/seminar2013/images/linux_before_kernel.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/mach_o_format.graffle --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/images/mach_o_format.graffle Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,410 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 139.16.0.171715 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {559, 783}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2013-02-05 08:48:33 +0000 + Creator + TaikiTAIRA + DisplayScale + 1 0/72 in = 1 0/72 in + GraphDocumentVersion + 8 + GraphicsList + + + Bounds + {{74, 410.4812925170063}, {257, 148.51870748299325}} + Class + ShapedGraphic + ID + 13 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 binary} + + + + Bounds + {{74, 376.32993197278944}, {257, 34.151360544217688}} + Class + ShapedGraphic + ID + 12 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ...} + + + + Bounds + {{74, 342.17857142857127}, {257, 34.151360544217688}} + Class + ShapedGraphic + ID + 11 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ...} + + + + Bounds + {{74, 308.02721088435362}, {257, 34.151360544217688}} + Class + ShapedGraphic + ID + 10 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 section_64} + + + + Bounds + {{74, 230.19387755102051}, {257, 34.151360544217688}} + Class + ShapedGraphic + ID + 9 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ...} + + + + Bounds + {{74, 264.34523809523836}, {257, 43.681972789115669}} + Class + ShapedGraphic + ID + 8 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 segment command 64 "__DATA"} + + + + Bounds + {{74, 196.0425170068028}, {257, 34.151360544217688}} + Class + ShapedGraphic + ID + 6 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 ...} + + + + Bounds + {{74, 161.89115646258512}, {257, 34.151360544217688}} + Class + ShapedGraphic + ID + 5 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 section_64 } + + + + Bounds + {{74, 118.20918367346931}, {257, 43.681972789115669}} + Class + ShapedGraphic + ID + 4 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 segment_command_64 "__TEXT"} + + + + Bounds + {{74, 91.209182739257812}, {257, 27}} + Class + ShapedGraphic + ID + 3 + Shape + Rectangle + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 mach_header_64} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2013-02-05 09:00:30 +0000 + Modifier + TaikiTAIRA + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + int + 0 + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + Frame + {{662, 116}, {693, 922}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, 0}, {558, 783}} + Zoom + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/mach_o_format.pdf Binary file seminar/seminar2013/images/mach_o_format.pdf has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/mach_o_format.png Binary file seminar/seminar2013/images/mach_o_format.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/new_boot_order.jpg Binary file seminar/seminar2013/images/new_boot_order.jpg has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/object_oriented.png Binary file seminar/seminar2013/images/object_oriented.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/setvirtualaddressmap.pdf Binary file seminar/seminar2013/images/setvirtualaddressmap.pdf has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/images/uefi_app_execute_sequance.png Binary file seminar/seminar2013/images/uefi_app_execute_sequance.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/pm_kou.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/pm_kou.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,447 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          PM 2.5 とは

                          +
                          +
                          +
                            +
                          • 大気中に浮遊している 2.5 μm 以下の小さな粒子
                          • +
                          • 髪の毛の太さの 1/30 程度の大きさ
                          • +
                          • 肺の奥深くまで入りやすく、肺がん、呼吸/循環器系に影響があるかも
                          • +
                          • 物の燃焼などによって直接排出されるもの
                          • +
                          • 硫黄酸化物(SOx)、窒素酸化物(NOx)、揮発性有機化合物(VOC)等のガス状大気汚染物質が、主として環境大気中での化学反応により粒子化したもの
                          • +
                          +
                          +
                          + + +
                          +

                          PM2.5 [福岡県東区]

                          +
                          +
                          + +
                          +
                          + + +
                          +

                          PM2.5 [熊本県益城]

                          +
                          +
                          + +
                          +
                          + + +
                          +

                          PM2.5 [東京都千代田区]

                          +
                          +
                          + +
                          +
                          + + +
                          +

                          PM2.5 年間推移

                          +
                          +
                          + +
                          +
                          + + +
                          +

                          PM2.5 参考サイト

                          +
                          + +
                          + + +
                          +

                          黄砂

                          +
                          +
                          +
                            +
                          • 砂漠、乾燥地域の砂塵が強風を伴う砂嵐で上空に巻き上げられたもの
                          • +
                          • ぜんそくや花粉症を悪化させるおそれがある
                          • +
                          • 微生物や細菌などが乗って飛来することもある
                          • +
                          • アレルギーや食中毒の原因にも
                          • +
                          +

                          wikipedia / 日本経済新聞参照

                          +
                          +
                          + + +
                          +

                          気象庁

                          +
                          + +
                          + + +
                          +

                          Code Slide (with Subtitle Placeholder)

                          +
                          +
                          +

                          Press 'h' to highlight important sections of code (wrapped in <b>).

                          +
                          +<script type='text/javascript'>
                          +  // Say hello world until the user starts questioning
                          +  // the meaningfulness of their existence.
                          +  function helloWorld(world) {
                          +    for (var i = 42; --i >= 0;) {
                          +      alert('Hello ' + String(world));
                          +    }
                          +  }
                          +</script>
                          +
                          +
                          +
                          + + +
                          +

                          Code Slide (Smaller Font)

                          +
                          +
                          +
                          +// Say hello world until the user starts questioning
                          +// the meaningfulness of their existence.
                          +function helloWorld(world) {
                          +  for (var i = 42; --i >= 0;) {
                          +    alert('Hello ' + String(world));
                          +  }
                          +}
                          +
                          +
                          +<style>
                          +  p { color: pink }
                          +  b { color: blue }
                          +</style>
                          +
                          +
                          +<!DOCTYPE html>
                          +<html>
                          +<head>
                          +  <title>My Awesome Page</title>
                          +</head>
                          +<body>
                          +  <p>Hello world</p>
                          +<body>
                          +</html>
                          +
                          +
                          +
                          + + + +
                          +

                          Slide with Speaker Notes

                          +
                          +
                          +

                          Press 'p' to toggle speaker notes.

                          +
                          +
                          + + + +
                          +

                          Presenter Mode

                          +
                          +
                          +

                          Add ?presentme=true to the URL to enabled presenter mode. + This setting is sticky, meaning refreshing the page will persist presenter + mode.

                          +

                          Hit ?presentme=false to disable presenter mode.

                          +
                          +
                          + + +
                          +

                          Slide with Image

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Slide with Image (Centered horz/vert)

                          +
                          +
                          + Description +
                          source: place source info here
                          +
                          +
                          + + +
                          +

                          Table Option A

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option A (Smaller Text)

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + + + + +
                          Column 1Column 2Column 3Column 4
                          Row 1placeholderplaceholderplaceholderplaceholder
                          Row 2placeholderplaceholderplaceholderplaceholder
                          Row 3placeholderplaceholderplaceholderplaceholder
                          Row 4placeholderplaceholderplaceholderplaceholder
                          Row 5placeholderplaceholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Table Option B

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + + + + + + + + + + + + + + + +
                          Header 1placeholderplaceholderplaceholder
                          Header 2placeholderplaceholderplaceholder
                          Header 3placeholderplaceholderplaceholder
                          Header 4placeholderplaceholderplaceholder
                          Header 5placeholderplaceholderplaceholder
                          +
                          +
                          + + +
                          +

                          Slide Styles

                          +
                          +
                          +
                          +
                            +
                          • class="red"
                          • +
                          • class="red2"
                          • +
                          • class="red3"
                          • +
                          • class="blue"
                          • +
                          • class="blue2"
                          • +
                          • class="blue3"
                          • +
                          • class="green"
                          • +
                          • class="green2"
                          • +
                          +
                            +
                          • class="green3"
                          • +
                          • class="yellow"
                          • +
                          • class="yellow2"
                          • +
                          • class="yellow3"
                          • +
                          • class="gray"
                          • +
                          • class="gray2"
                          • +
                          • class="gray3"
                          • +
                          • class="gray4"
                          • +
                          +
                          +
                          + I am centered text with a and button. +
                          +
                          +
                          + + + +
                          +

                          Segue Slide

                          +

                          Subtitle Placeholder

                          +
                          +
                          + + +
                          +

                          Full Image (with Optional Header)

                          +
                          +
                          www.flickr.com/photos/25797459@N06/5438799763/
                          +
                          + + + +
                          + + This is an example of quote text. + +
                          + Name
                          + Company +
                          +
                          +
                          + + +
                          +

                          Slide with Iframe

                          +
                          +
                          + +
                          +
                          + + +
                          + +
                          +
                          + + + +
                          +

                          <Thank You!>

                          +

                          Important contact information goes here.

                          +
                          +

                          + +

                          +
                          + + +
                          + +
                          +
                          + + + +
                          + + + + + + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/pm_kou_config.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/pm_kou_config.js Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,36 @@ +var SLIDE_CONFIG = { + // Slide settings + settings: { + title: 'ELILO におけるメモリ管理の実験', + //subtitle: 'Subtitle Goes Here', + useBuilds: true, // Default: true. False will turn off slide animation builds. + usePrettify: true, // Default: true + enableSlideAreas: true, // Default: true. False turns off the click areas on either slide of the slides. + enableTouch: true, // Default: true. If touch support should enabled. Note: the device must support touch. + //analytics: 'UA-XXXXXXXX-1', // TODO: Using this breaks GA for some reason (probably requirejs). Update your tracking code in template.html instead. + favIcon: 'images/google_developers_logo_tiny.png', + fonts: [ + 'Open Sans:regular,semibold,italic,italicsemibold', + 'Source Code Pro' + ], + //theme: ['mytheme'], // Add your own custom themes or styles in /theme/css. Leave off the .css extension. + }, + + // Author information + presenters: [{ + name: 'Taiki Taira', +// company: 'Job Title, Google', + gplus: '', + twitter: '', + www: '', + github: '' + }/*, { + name: 'Second Name', + company: 'Job Title, Google', + gplus: 'http://plus.google.com/1234567890', + twitter: '@yourhandle', + www: 'http://www.you.com', + github: 'http://github.com/you' + }*/] +}; + diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/pm_kou_images/hukuoka_higasiku.png Binary file seminar/seminar2013/pm_kou_images/hukuoka_higasiku.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/pm_kou_images/kumamoto_ekizyou.png Binary file seminar/seminar2013/pm_kou_images/kumamoto_ekizyou.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/pm_kou_images/pm2.5_nenkansuii.png Binary file seminar/seminar2013/pm_kou_images/pm2.5_nenkansuii.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/pm_kou_images/tyoukyou_chiyoda.png Binary file seminar/seminar2013/pm_kou_images/tyoukyou_chiyoda.png has changed diff -r 7f4128b2369a -r fea44bb81877 seminar/seminar2013/software_system.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/seminar/seminar2013/software_system.html Tue Dec 10 15:31:33 2013 +0900 @@ -0,0 +1,103 @@ + + + + + Presentation + + + + + + + + + + + + + + + + + + + + + +
                          +

                          +

                          +

                          +
                          +
                          + + +
                          +

                          PostgreSQL

                          +
                          +
                          +
                            +
                          • ./configure --enable-debug
                          • +
                          • src/Makefile.global に -O0 -g 追加
                          • +
                          • make
                          • +
                          +
                          +
                          + + +
                          +

                          PostgreSQL

                          +
                          +
                          +

                          起動順序

                          +
                            +
                          • ./initdb -D $PGDATA
                          • +
                          • ./pg_ctl -D $PGDATA -l logfile start
                          • +
                          • ./create database
                          • +
                          • ./psql database
                          • +
                          +
                          +
                          + + + +
                          + +
                          +
                          + + + +
                          + + + + + +