diff --git a/slides.typ b/slides.typ index 69e26a5..9633cce 100644 --- a/slides.typ +++ b/slides.typ @@ -1,6 +1,5 @@ #import "@preview/polylux:0.4.0": * #import "slides/lib.typ": * -#import "slides/icons.typ" as ico #import "@preview/codly:1.3.0": * #import "@preview/codly-languages:0.1.1": * @@ -84,13 +83,7 @@ #grid( columns: (1fr, 1fr), image("slides/imgs/google.png", width: 200pt), - //image("slides/imgs/phone.png", height: 350pt) - ico.phone( - height: 350pt, - body: { - ico.android(height: 150pt, stroke: none) - } - ) + image("slides/imgs/phone.png", height: 350pt) ) #v(2em) ] @@ -118,15 +111,7 @@ ] ), { - move( - dx: 20pt, - ico.phone( - height: 350pt, - body: { - ico.android(height: 150pt, stroke: none) - } - ) - ) + move(dx: 20pt, image("slides/imgs/phone.png", height: 350pt)) } ) ] @@ -216,8 +201,8 @@ foreground: { place-fg(x: 44%, y: 55%, $ lr(}, size: #130pt) $ ) place-fg(x: 44%, y: 26%, $ lr(}, size: #110pt) $ ) - arrow((385pt, -260pt), (450pt, -230pt)) - arrow((385pt, -125pt), (450pt, -110pt)) + arrow((385pt, 260pt), (450pt, 230pt)) + arrow((385pt, 125pt), (450pt, 110pt)) }, )[ #show: yes-codly @@ -401,46 +386,13 @@ #highlight-block(pb3-text) ] -#for i in range(3) { - let stage = ( - "static-only", - "static-vs-dyn", - "theseus", - ).at(i) - slide( - //foreground: rotate(30deg, smallcaps(text(fill: pirat-color.red, size: 50pt)[#stage])) - )[ - #if i == 0 { - place( - top+left, - dx: 70%, - dy: 25%, - align(center, text(fill: pirat-color.red.darken(15%))[ - *PB 1*: Static Analysis \ are the tools working? - ])) - } - #if i == 1 { - place( - top+left, - dx: 35%, - dy: 25%, - align(center, text(fill: pirat-color.red.darken(15%))[ - *PB 2*: Do Static Tools \ match Android Runtime? - ])) - } - #if i == 2 { - place( - top+left, - dx: 5%, - dy: 5%, - align(center, text(fill: pirat-color.red.darken(15%))[ - *PB 3*: Improve any Static Tools \ with dynamic analysis? - ])) - } - #set align(horizon+center) - #theseus-outline(stage: stage) - ] -} +#slide( + foreground: rotate(30deg, smallcaps(text(fill: pirat-color.red, size: 50pt)[MOCHE + ANIM])) +)[ + // TODO Outline / problematics / drawingp + #set align(horizon+center) + #th-outline() +] #new-section-slide([Tool Reusability]) @@ -771,79 +723,36 @@ #slide( title: [Android ClassLoaders], foreground: { - let stroke = black + 5pt - let y0 = -177pt - let y1 = -270pt + //rotate(30deg, text(fill: pirat-color.red, size: 50pt)[DESSIN RUNTIME CL \ \ WITH DELEGATION]) + let stroke = black + 3pt + let y0 = 170pt + let y1 = 270pt let x0 = 250pt - let x1 = 272pt - let x2 = 570pt + let x1 = 292pt + let x2 = 550pt let x3 = 600pt - arrow( - (x0, y0), - (x0, y1), - (x1, y1), - stroke: stroke - ) - arrow( - (x3, y0), - (x3, y1), - (x2, y1), - stroke: stroke - ) + place(bottom+left, line(start: (x0, -y0), end: (x0, -y1), stroke: stroke)) + place(bottom+left, line(start: (x3, -y0), end: (x3, -y1), stroke: stroke)) + arrow((x0, y1), (x1, y1), strk: stroke) + arrow((x3, y1), (x2, y1), strk: stroke) place-fg(x: x0 - 2.5em, y: (y0+y1)/2)[Delegate] place-fg(x: x3 + 2.5em, y: (y0+y1)/2)[Delegate] }, { - let stroke = black + 3pt - let width = 13em - let height = 4.5em set align(center+horizon) set rect(width: 250pt, height: 75pt, radius: 20pt, inset: 20pt) v(1fr) - rect( - stroke: stroke, - height: height, - width: width, - { - [*Boot Class Loader*] - v(-0.5em) - line(length: 80%) - v(-0.5em) - [_Platform Classes_] - } - ) + rect()[Boot Class Loader] v(1fr) stack( dir: ltr, 1fr, - rect( - stroke: stroke, - height: height, - width: width, - { - [*System Class Loader*] - v(-0.5em) - line(length: 80%) - v(-0.5em) - sym.emptyset - } - ), + rect()[System Class Loader], 1fr, - rect( - stroke: stroke, - height: height, - width: width, - { - [*APK Class Loader*] - v(-0.5em) - line(length: 80%) - v(-0.5em) - [_APK Classes_] - } - ), + rect()[APK Class Loader], 1fr, ) @@ -1221,7 +1130,7 @@ )[ // TODO: bien tout rappeler l'objectif #set align(center+horizon) - #theseus-outline() + #th-outline(hide-static: true) ] #slide( @@ -1379,7 +1288,7 @@ foreground: rotate(30deg, text(fill: pirat-color.red, size: 50pt)[MOCHE]), )[ #set align(center+horizon) - #theseus-outline() + #th-outline(hide-static: true) ] #counter("logical-slide").update( n => n - 1 ) @@ -1431,7 +1340,7 @@ foreground: rotate(30deg, text(fill: pirat-color.red, size: 50pt)[MOCHE]), )[ #set align(center+horizon) - #theseus-outline() + #th-outline(hide-static: false) ] #for i in range(3) { @@ -1482,7 +1391,6 @@ title: [Impact on Finishing Rate], foreground: { let strk = 3pt + pirat-color.blue - import "slides/icons.typ": arrow arrow((360pt, 330pt), (380pt, 310pt), strk: strk) arrow((420pt, 330pt), (400pt, 310pt), strk: strk) } diff --git a/slides/icons.typ b/slides/icons.typ index 6a334f5..4fff52e 100644 --- a/slides/icons.typ +++ b/slides/icons.typ @@ -93,19 +93,10 @@ start = end end = pt } - /* - let r = 10pt place( - bottom + left, - dx: start.at(0) - r, - dy: start.at(1) + r, - circle(radius: r, fill: blue) - ) - */ - place( - bottom + left, + bottom + left, line( - start: start, + start: start, end: end, stroke: strk ) diff --git a/slides/imgs/phone.png b/slides/imgs/phone.png new file mode 100644 index 0000000..8c31937 Binary files /dev/null and b/slides/imgs/phone.png differ diff --git a/slides/imgs/phone.png~ b/slides/imgs/phone.png~ new file mode 100644 index 0000000..d866f2f Binary files /dev/null and b/slides/imgs/phone.png~ differ diff --git a/slides/lib.typ b/slides/lib.typ index add2e31..a91744c 100644 --- a/slides/lib.typ +++ b/slides/lib.typ @@ -3,7 +3,6 @@ #import "../lib.typ": pb1-text, pb2-text, pb3-text #import "icons.typ": arrow -#import "outlines.typ": theseus-outline #let pirat-color = ( black: rgb("#000000"), diff --git a/slides/outlines.typ b/slides/outlines.typ index cf527e1..13c3e62 100644 --- a/slides/outlines.typ +++ b/slides/outlines.typ @@ -1,7 +1,7 @@ #import "./icons.typ": * -#let static-outline( +#let static_outline( small_icon_size: 100pt, big_icon_size: 200pt, ) = context { @@ -83,7 +83,7 @@ ) } -#let dexhunter-outline( +#let dexhunter_outline( small_icon_size: 100pt, big_icon_size: 200pt, ) = context { @@ -221,22 +221,10 @@ ) } -#let theseus-outline( +#let theseus_outline( small_icon_size: 60pt, big_icon_size: 90pt, - stage: "theseus", ) = context { - let stages = ( - "static-only", - "static-vs-dyn", - "theseus", - "theseus-no-static", - "theseus-vs-static", - ) - assert( - stage in stages, - message: "theseus-outline stage arg must be in: " + repr(stages) - ) let width = ( small_icon_size * 4 + big_icon_size * 3 + @@ -364,295 +352,213 @@ height: height, //stroke: black, { - if stage == "static-only" { - place( - left+bottom, - dx: app2_pos.at(0), - dy: app2_pos.at(1), - app - ) - /* - arrow( - stroke: arrow_width + black, - ( - app_static_pos.at(0) + app_size.width + arrow_gap, - app_static_pos.at(1) - app_size.height / 2 - ), - ( - analyser_pos2.at(0) - arrow_gap, - analyser_pos2.at(1) - analyser_size.height / 2 - ) - )*/ - } else { - place( - left+bottom, - dx: app_pos.at(0), - dy: app_pos.at(1), - app - ) - } + place( + left+bottom, + dx: app_pos.at(0), + dy: app_pos.at(1), + app + ) + place( + left+bottom, + dx: dex_pos0.at(0), + dy: dex_pos0.at(1), + dex + ) + place( + left+bottom, + dx: dex_pos1.at(0), + dy: dex_pos1.at(1), + dex + ) + place( + left+bottom, + dx: rprt_pos2.at(0), + dy: rprt_pos2.at(1), + rprt + ) + place( + left+bottom, + dx: phone_pos.at(0), + dy: phone_pos.at(1), + phone + ) - if stage not in ("static-only") { - place( - left+bottom, - dx: phone_pos.at(0), - dy: phone_pos.at(1), - phone + arrow( + stroke: arrow_width + black, + ( + app_pos.at(0) + app_size.width + arrow_gap, + app_pos.at(1) - app_size.height / 2 + ), + ( + phone_pos.at(0) - arrow_gap, + phone_pos.at(1) - phone_size.height / 2, ) - arrow( - stroke: arrow_width + black, - ( - app_pos.at(0) + app_size.width + arrow_gap, - app_pos.at(1) - app_size.height / 2 - ), - ( - phone_pos.at(0) - arrow_gap, - phone_pos.at(1) - phone_size.height / 2, - ) - ) - } + ) + arrow( + stroke: arrow_width + black, + (arrow_1_x0, arrow_1_y0_0), + (arrow_1_x1, arrow_1_y0_0), + (arrow_1_x1, arrow_1_y1_0), + (arrow_1_x2, arrow_1_y1_0), + ) + arrow( + stroke: arrow_width + black, + (arrow_1_x0, arrow_1_y0_1), + (arrow_1_x1, arrow_1_y0_1), + (arrow_1_x1, arrow_1_y1_1), + (arrow_1_x2, arrow_1_y1_1), + ) + arrow( + stroke: arrow_width + black, + (arrow_1_x0, arrow_1_y0_2), + (arrow_1_x1, arrow_1_y0_2), + (arrow_1_x1, arrow_1_y1_2), + (arrow_1_x2, arrow_1_y1_2), + ) + arrow( + stroke: arrow_width + black, + (arrow_2_x0, arrow_2_y0_0), + (arrow_2_x1, arrow_2_y0_0), + (arrow_2_x1, arrow_2_y1_0), + (arrow_2_x2, arrow_2_y1_0), + ) + arrow( + stroke: arrow_width + black, + (arrow_2_x0, arrow_2_y0_1), + (arrow_2_x1, arrow_2_y0_1), + (arrow_2_x1, arrow_2_y1_1), + (arrow_2_x2, arrow_2_y1_1), + ) + arrow( + stroke: arrow_width + black, + (arrow_2_x0, arrow_2_y0_2), + (arrow_2_x1, arrow_2_y0_2), + (arrow_2_x1, arrow_2_y1_2), + (arrow_2_x2, arrow_2_y1_2), + ) - if stage not in ("static-only", "static-vs-dyn") { - place( - left+bottom, - dx: dex_pos0.at(0), - dy: dex_pos0.at(1), - dex + place( + bottom+left, + dx: patcher_pos.at(0), + dy: patcher_pos.at(1), + patcher + ) + arrow( + stroke: arrow_width + black, + ( + patcher_pos.at(0) + patcher_size.width + arrow_gap, + patcher_pos.at(1) - patcher_size.height / 2 + ), + ( + app2_pos.at(0) - arrow_gap, + app2_pos.at(1) - app2_size.height / 2, ) - place( - left+bottom, - dx: dex_pos1.at(0), - dy: dex_pos1.at(1), - dex + ) + place( + bottom+left, + dx: app2_pos.at(0), + dy: app2_pos.at(1), + app2 + ) + arrow( + stroke: arrow_width + black, + ( + app2_pos.at(0) + app2_size.width + arrow_gap, + app2_pos.at(1) - app2_size.height / 2 + ), + ( + analyser_pos.at(0) - arrow_gap, + analyser_pos.at(1) - analyser_size.height / 2, ) - place( - left+bottom, - dx: rprt_pos2.at(0), - dy: rprt_pos2.at(1), - rprt + ) + place( + bottom+left, + dx: analyser_pos.at(0), + dy: analyser_pos.at(1), + analyser + ) + arrow( + stroke: arrow_width + black, + ( + analyser_pos.at(0) + analyser_size.width + arrow_gap, + analyser_pos.at(1) - analyser_size.height / 2 + ), + ( + rprt2_pos.at(0) - arrow_gap, + rprt2_pos.at(1) - rprt_size.height / 2, ) + ) + place( + left+bottom, + dx: rprt2_pos.at(0), + dy: rprt2_pos.at(1), + rprt + ) + arrow( + stroke: arrow_width + black, + ( + app_pos.at(0) + app_size.width / 2, + app_pos.at(1) + arrow_gap, + ), + ( + app_pos.at(0) + app_size.width / 2, + -arrow_width + ), + ( + patcher_pos.at(0) + patcher_size.width / 2, + -arrow_width + ), + ( + patcher_pos.at(0) + patcher_size.width / 2, + patcher_pos.at(1) + arrow_gap + ) + ) - arrow( - stroke: arrow_width + black, - (arrow_1_x0, arrow_1_y0_0), - (arrow_1_x1, arrow_1_y0_0), - (arrow_1_x1, arrow_1_y1_0), - (arrow_1_x2, arrow_1_y1_0), - ) - arrow( - stroke: arrow_width + black, - (arrow_1_x0, arrow_1_y0_1), - (arrow_1_x1, arrow_1_y0_1), - (arrow_1_x1, arrow_1_y1_1), - (arrow_1_x2, arrow_1_y1_1), - ) - arrow( - stroke: arrow_width + black, - (arrow_1_x0, arrow_1_y0_2), - (arrow_1_x1, arrow_1_y0_2), - (arrow_1_x1, arrow_1_y1_2), - (arrow_1_x2, arrow_1_y1_2), - ) - arrow( - stroke: arrow_width + black, - (arrow_2_x0, arrow_2_y0_0), - (arrow_2_x1, arrow_2_y0_0), - (arrow_2_x1, arrow_2_y1_0), - (arrow_2_x2, arrow_2_y1_0), - ) - arrow( - stroke: arrow_width + black, - (arrow_2_x0, arrow_2_y0_1), - (arrow_2_x1, arrow_2_y0_1), - (arrow_2_x1, arrow_2_y1_1), - (arrow_2_x2, arrow_2_y1_1), - ) - arrow( - stroke: arrow_width + black, - (arrow_2_x0, arrow_2_y0_2), - (arrow_2_x1, arrow_2_y0_2), - (arrow_2_x1, arrow_2_y1_2), - (arrow_2_x2, arrow_2_y1_2), - ) + place( + bottom+left, + dx: analyser_pos2.at(0), + dy: analyser_pos2.at(1), + analyser + ) + place( + left+bottom, + dx: rprt3_pos.at(0), + dy: rprt3_pos.at(1), + rprt + ) - place( - bottom+left, - dx: patcher_pos.at(0), - dy: patcher_pos.at(1), - patcher + arrow( + stroke: arrow_width + black, + ( + analyser_pos2.at(0) + analyser_size.width + arrow_gap, + analyser_pos2.at(1) - analyser_size.height / 2, + ), + ( + rprt3_pos.at(0) - arrow_gap, + rprt3_pos.at(1) - rprt_size.height / 2, ) - arrow( - stroke: arrow_width + black, - ( - patcher_pos.at(0) + patcher_size.width + arrow_gap, - patcher_pos.at(1) - patcher_size.height / 2 - ), - ( - app2_pos.at(0) - arrow_gap, - app2_pos.at(1) - app2_size.height / 2, - ) - ) - place( - bottom+left, - dx: app2_pos.at(0), - dy: app2_pos.at(1), - app2 - ) - } - if stage == "static-vs-dyn" { - arrow( - stroke: arrow_width + black, - ( - app_pos.at(0) + app2_size.width / 2, - app_pos.at(1) + arrow_gap - ), - ( - app_pos.at(0) + app2_size.width / 2, - phone_pos.at(1) + arrow_gap * 2 - ), - ( - app2_pos.at(0) + app2_size.width + arrow_gap, - phone_pos.at(1) + arrow_gap * 2 - ), - ( - app2_pos.at(0) + app2_size.width + arrow_gap, - app2_pos.at(1) - app2_size.height / 2 - ), - ( - analyser_pos.at(0) - arrow_gap, - analyser_pos.at(1) - analyser_size.height / 2, - ) - ) - } - if stage in ( - "theseus", - "theseus-vs-static", - "static-only" - ) { - arrow( - stroke: arrow_width + black, - ( - app2_pos.at(0) + app2_size.width + arrow_gap, - app2_pos.at(1) - app2_size.height / 2 - ), - ( - analyser_pos.at(0) - arrow_gap, - analyser_pos.at(1) - analyser_size.height / 2, - ) - ) - } - if stage in ( - "theseus", - "static-vs-dyn", - "theseus-vs-static", - "static-only" - ) { - place( - bottom+left, - dx: analyser_pos.at(0), - dy: analyser_pos.at(1), - analyser - ) - arrow( - stroke: arrow_width + black, - ( - analyser_pos.at(0) + analyser_size.width + arrow_gap, - analyser_pos.at(1) - analyser_size.height / 2 - ), - ( - rprt2_pos.at(0) - arrow_gap, - rprt2_pos.at(1) - rprt_size.height / 2, - ) - ) - place( - left+bottom, - dx: rprt2_pos.at(0), - dy: rprt2_pos.at(1), - rprt - ) - } - if stage in ( - "theseus", - "theseus-vs-static", - ) { - arrow( - stroke: arrow_width + black, - ( - app_pos.at(0) + app_size.width / 2, - app_pos.at(1) + arrow_gap, - ), - ( - app_pos.at(0) + app_size.width / 2, - -arrow_width - ), - ( - patcher_pos.at(0) + patcher_size.width / 2, - -arrow_width - ), - ( - patcher_pos.at(0) + patcher_size.width / 2, - patcher_pos.at(1) + arrow_gap - ) - ) - } - - if stage not in ( - "static-only", - "static-vs-dyn", - "theseus", - "theseus-no-static", - ) { - arrow( - stroke: arrow_width + black, - ( - app_pos.at(0) + app_size.width/2, - app_pos.at(1) - app_size.height - arrow_gap, - ), - ( - app_pos.at(0) + app_size.width/2, - analyser_pos2.at(1) - analyser_size.height / 2, - ), - ( - analyser_pos2.at(0) - arrow_gap, - analyser_pos2.at(1) - analyser_size.height / 2, - ), - ) - } - - if stage in ( - "theseus-vs-static", - ) { - place( - bottom+left, - dx: analyser_pos2.at(0), - dy: analyser_pos2.at(1), - analyser - ) - place( - left+bottom, - dx: rprt3_pos.at(0), - dy: rprt3_pos.at(1), - rprt - ) - - arrow( - stroke: arrow_width + black, - ( - analyser_pos2.at(0) + analyser_size.width + arrow_gap, - analyser_pos2.at(1) - analyser_size.height / 2, - ), - ( - rprt3_pos.at(0) - arrow_gap, - rprt3_pos.at(1) - rprt_size.height / 2, - ) - ) - } + ) + arrow( + stroke: arrow_width + black, + ( + app_pos.at(0) + app_size.width/2, + app_pos.at(1) - app_size.height - arrow_gap, + ), + ( + app_pos.at(0) + app_size.width/2, + analyser_pos2.at(1) - analyser_size.height / 2, + ), + ( + analyser_pos2.at(0) - arrow_gap, + analyser_pos2.at(1) - analyser_size.height / 2, + ), + ) } ) } #set page(flipped: true) #set align(center+horizon) -#dexhunter-outline() -#static-outline() -#theseus-outline() +#dexhunter_outline() +#static_outline() +#theseus_outline() diff --git a/slides/sns_polylux_template.typ b/slides/sns_polylux_template.typ index 098aa0d..9d0bf7e 100644 --- a/slides/sns_polylux_template.typ +++ b/slides/sns_polylux_template.typ @@ -106,7 +106,6 @@ cmyk(25%,7%,0%,0%), header-ascent : 0pt, footer-descent : 0pt, ) - set heading(bookmarked: false) set text( fill : txt-color1, size : size, @@ -307,7 +306,7 @@ cmyk(25%,7%,0%,0%), } if p_i == pnum and p_i != pmax { // In section, current page - pages.push(sym.ast.op.o) + pages.push(sym.ast.circle) p_i += 1 } while p_i < pmax { @@ -418,29 +417,23 @@ cmyk(25%,7%,0%,0%), inset: 0.8cm, outset: 0pt, fill: sns-polylux-template_colormap.at(here()).at(0), - align(horizon + center, - heading( - level: if new-sec { 1 } else { 2 }, - bookmarked: true, - { - text( - fill: sns-polylux-template_second-text-color.at(here()), - font: sns-polylux-template_title-font.at(here()), - size: 32pt, - weight: "bold", - title - ) - if subtitle != none { - smallcaps(text( - fill: sns-polylux-template_second-text-color.at(here()), - font: sns-polylux-template_title-font.at(here()), - size: 24pt, - " — " + subtitle - )) - } - } + align(horizon + center, { + text( + fill: sns-polylux-template_second-text-color.at(here()), + font: sns-polylux-template_title-font.at(here()), + size: 32pt, + weight: "bold", + title ) - ) + if subtitle != none { + smallcaps(text( + fill: sns-polylux-template_second-text-color.at(here()), + font: sns-polylux-template_title-font.at(here()), + size: 24pt, + " — " + subtitle + )) + } + }) ) } else { [] } ) @@ -487,16 +480,6 @@ cmyk(25%,7%,0%,0%), set align(horizon) set text(size: sns-polylux-template_size.at(here()), top-edge: 20pt, bottom-edge: 0pt) show: block.with(inset: (x: 1.2cm, y:.2cm), width: 100%) - if title != none and hide-title { - // hidden and out of layout, but exists, in order to add it to the outlined - place(hide( - heading( - level: if new-sec { 1 } else { 2 }, - bookmarked: true, - { title + if subtitle != none {" — " + subtitle } else { "" }} - ) - )) - } body }) @@ -504,6 +487,7 @@ cmyk(25%,7%,0%,0%), } ) #let focus-slide( + new-sec : none, page-number : true, hide-section : false, background : [], @@ -630,14 +614,7 @@ cmyk(25%,7%,0%,0%), show: pad.with(20%) - heading( - level: 1, - bookmarked: true, - { - //set text(1em/1.4, weight: "regular") - name - } - ) + name progress-bar() })