Esempio n. 1
0
slide_title("Maturity", '\n'.join([
	"<b>~2015</b> Chrome Mac switch",
	'',
	"<b>2015Q3</b> HarfBuzz Hackfest at Mozilla London: USE",
	'',
	"<b>2015Q3</b> HarfBuzz 1.0.0",
	'',
	"<b>2015Q4</b> HarfBuzz Hackfest at Mozilla London: Unicode 8.0",
	'',
	"<b>2016Q2</b> HarfBuzz Hackfest at Mozilla London: Unicode 9.0",
	]))

slide_title("Future", '\n'.join([
	"hb-ot-font",
	'',
	"OpenType MATH",
	'',
	"OpenType COLR/CPAL, SVG",
	'',
	"OpenType Variation Fonts (mutator?)",
	]))

#image_slide("pipeline.png", imgwidth=1900, imgheight=1000)

slide_big("Q&amp;A")

if __name__ == "__main__":
	import slippy
	import harfbuzz10years_theme
	slippy.main (slides, harfbuzz10years_theme, args=['--geometry', '1920x1024'])
list_slide ([
		"<b></b>",
		"• ",
		"• ",
		"• ",
		"• ",
		"• ",
		"• ",
	    ], data={'align': pango.ALIGN_LEFT})
"""


@slide
def where_is_my_vote(r):
    r.set_source_rgb(0, .9, 0)
    r.paint()
    r.set_source_rgb(1, 1, 1)
    return "Where\nis\nMy Vote?"


slide_noone("Q?")

if __name__ == "__main__":
    import slippy
    import stateoftext_theme
    import sys
    #slippy.main (slides, stateoftext_theme)
    #slippy.main ("stateoftext_slides.py", "stateoftext_theme.py")
    slippy.main(slides, "stateoftext_theme.py")
    sys.exit(0)
Esempio n. 3
0
		"<b>Code: glyphy-demo</b>",
		"• ~2800 lines *.cc *.h",
		"• ~150 lines *.glsl",
		"• FreeType, GLUT",
	    ], data={'align': pango.ALIGN_LEFT})
list_slide ([
		"<b>More work</b>",
		"• Subpixel-rendering",
		"• Anisotropic-antialiasing",
	    ], data={'align': pango.ALIGN_LEFT})

slide("<b>Gallery!</b>")

for filename in file("gallery.txt").read().split('\n'):
	if not filename: continue
	def closure(filename):
		def slideFunc(r):
			glyphy_demo (r, filename)
		slideFunc.__name__ = filename
		return slideFunc
	slide(closure(filename))

@slide
def GReal1(r):
	glyphy_demo (r, "q.png")

if __name__ == "__main__":
	import slippy
	import glyphy_theme
	slippy.main (slides, glyphy_theme)
Esempio n. 4
0
],
           data={'align': pango.ALIGN_LEFT})

slide_noone("What can <i>you</i>\ndo for GNOME?")
slide("Testing")
slide("Translation")
slide("Usability")
slide("Bug Fixing")
slide("Development")
slide("Web\nDevelopment")
slide("Artistic\nContent")
slide("Marketing")
slide("Journalism")

slide_noone("Why should you\njoin GNOME?")
slide("Cool\nPeople")
slide_image("berlin.jpg")
slide("Helping\nPeople")
slide("Recognition")
slide("Satisfaction")
slide("Living\nHappily")
slide_noone("http://live.gnome.org/JoinGnome")

if __name__ == "__main__":
    import slippy
    import turkey_theme
    import sys
    slippy.main(slides, turkey_theme)
    #slippy.main ("turkey_slides.py", "turkey_theme.py")
    sys.exit(0)
Esempio n. 5
0
"""
list_slide ([
		"<b></b>",
		"• ",
		"• ",
		"• ",
		"• ",
		"• ",
		"• ",
	    ], data={'align': pango.ALIGN_LEFT})
"""

@slide
def where_is_my_vote (r):
	r.set_source_rgb (0, .9, 0)
	r.paint ()
	r.set_source_rgb (1, 1, 1)
	return "Where\nis\nMy Vote?"

slide_noone("Q?")

if __name__ == "__main__":
	import slippy
	import stateoftext_theme
	import sys
	#slippy.main (slides, stateoftext_theme)
	#slippy.main ("stateoftext_slides.py", "stateoftext_theme.py")
	slippy.main (slides, "stateoftext_theme.py")
	sys.exit (0)

list_slide (["PS", "<b>PDF</b>", "SVG"])
list_slide (["<b>Font subsetters</b>",
	     "TrueType",
	     "OpenType CFF",
	     "Type1",
	     "Type1 fallback",
	     '<span foreground="#888">Type3</span>',
	    ])
list_slide (["<b>New in 1.6</b>",
	     'Native gradients',
	     'Fine-grained fallback images',
	    ])
list_slide (["<b>Planned for 1.8</b>",
	     'Improved text extraction',
	     'User-fonts',
	     'Metadata API',
	     'Reduced file size',
	     'JPEG support',
	    ])
list_slide (["<b>Not Planned Yet</b>",
	     'Colorspace API',
	     'Higher-level integration',
	    ])

slide ("Q?")

if __name__ == "__main__":
	import slippy
	import cairoprinting_theme
	slippy.main (slides, cairoprinting_theme)
Esempio n. 7
0
#!/usr/bin/python
# -*- coding:utf8 -*-

if __name__ == "__main__":
    import slippy
    import sys
    import harfbuzz_theme
    slippy.main(__file__, harfbuzz_theme, sys.argv[1:])
    sys.exit(0)

# Copyright 2007,2009 Behdad Esfahbod <*****@*****.**>

# A slides file should populate the variable slides with
# a list of tuples.  Each tuple should have:
#
#	- Slide content
#	- User data
#	- Canvas width
#	- Canvas height
#
# Slide content can be a string, a list of strings,
# a function returning one of those, or a generator
# yielding strings.  The user data should be a dictionary or
# None, and is both used to communicate options to the
# renderer and to pass extra options to the theme functions.
#
# A function-based slide content will be passed a renderer object.
# Renderer is an object similar to a cairo.Context and
# pangocairo.CairoContext but has its own methods too.
# The more useful of them here are put_text, put_image, and
# set_allocation.  See their pydocs.
#!/usr/bin/python
# -*- coding:utf8 -*-

if __name__ == "__main__":
	import slippy
	import sys
	import freetextstack_theme as theme
	slippy.main (__file__, theme, sys.argv[1:])
	sys.exit (0)

# Copyright 2007,2009 Behdad Esfahbod <*****@*****.**>

# A slides file should populate the variable slides with
# a list of tuples.  Each tuple should have:
#
#	- Slide content
#	- User data
#	- Canvas width
#	- Canvas height
#
# Slide content can be a string, a list of strings,
# a function returning one of those, or a generator
# yielding strings.  The user data should be a dictionary or
# None, and is both used to communicate options to the
# renderer and to pass extra options to the theme functions.
#
# A function-based slide content will be passed a renderer object.
# Renderer is an object similar to a cairo.Context and
# pangocairo.CairoContext but has its own methods too.
# The more useful of them here are put_text, put_image, and
# set_allocation.  See their pydocs.
Esempio n. 9
0
slide_noone("What can <i>you</i>\ndo for GNOME?")
slide("Testing")
slide("Translation")
slide("Usability")
slide("Bug Fixing")
slide("Development")
slide("Web\nDevelopment")
slide("Artistic\nContent")
slide("Marketing")
slide("Journalism")



slide_noone("Why should you\njoin GNOME?")
slide("Cool\nPeople")
slide_image("berlin.jpg")
slide("Helping\nPeople")
slide("Recognition")
slide("Satisfaction")
slide("Living\nHappily")
slide_noone("http://live.gnome.org/JoinGnome")

if __name__ == "__main__":
	import slippy
	import turkey_theme
	import sys
	slippy.main (slides, turkey_theme)
	#slippy.main ("turkey_slides.py", "turkey_theme.py")
	sys.exit (0)

Esempio n. 10
0
])

bullet_list_slide("Future work", [
	"More font optimization",
	"Better input: .fea / UFO",
	"ttx2ufo",
	"Lint tool",
	"TrueType / CFF conversion",
	"Subsetting more tables",
	"Better merging",
])
bullet_list_slide("Future work: optimization", [
	"Optimal packing: glyf flags / PUSH / etc",
	"CFF outline operation specializer",
	"CFF subroutinizer",
	"TrueType outline optimizer? (fontcrunch)",
	"TrueType bytecode analysis",
	"UPEM reduction",
])

slide("<b>Q?</b>", data={"desc":title_font})
python_slide('')

python_slide(open("snippets/drop_glyphnames_cff.py").read())
xml_slide(open("snippets/tofu.ttx").read())

if __name__ == "__main__":
	import slippy
	import fonttools_theme
	slippy.main (slides, fonttools_theme, args=['--geometry', '1920x1200'])
Esempio n. 11
0
#!/usr/bin/python
# -*- coding:utf8 -*-

if __name__ == "__main__":
	import slippy
	import sys
	import harfbuzz_theme
	slippy.main (__file__, harfbuzz_theme, sys.argv[1:])
	sys.exit (0)

# Copyright 2007,2009 Behdad Esfahbod <*****@*****.**>

# A slides file should populate the variable slides with
# a list of tuples.  Each tuple should have:
#
#	- Slide content
#	- User data
#	- Canvas width
#	- Canvas height
#
# Slide content can be a string, a list of strings,
# a function returning one of those, or a generator
# yielding strings.  The user data should be a dictionary or
# None, and is both used to communicate options to the
# renderer and to pass extra options to the theme functions.
#
# A function-based slide content will be passed a renderer object.
# Renderer is an object similar to a cairo.Context and
# pangocairo.CairoContext but has its own methods too.
# The more useful of them here are put_text, put_image, and
# set_allocation.  See their pydocs.
Esempio n. 12
0
list_slide([
    "<b>Cluster</b>", "• M input character", "• N output glyphs",
    "• M→N cluster"
],
           data={'align': pango.ALIGN_LEFT})
list_slide([
    "• Cluster mapping",
], data={'align': pango.ALIGN_LEFT})
slide(
    'Any good\nPDF generator\nshould take\ninput text,\noutput glyphs,\n<i>and</i>\ncluster mapping'
)

slide_noone("What To Do\nWith Them?")
slide("M→1")
slide("M→0")
slide("M→N")

slide_noone("Issues")
slide("0→1")
slide("How to\nbreak?")
slide("<i>Cursor</i>\npositions")
slide("Run\norder")
slide("Bidi")

slide_noone('<span font_desc="Doulos SIL">~fin~</span>')

if __name__ == "__main__":
    import slippy
    import textextraction_theme
    slippy.main(slides, textextraction_theme)
#!/usr/bin/python
# -*- coding:utf8 -*-

if __name__ == "__main__":
    import slippy
    import sys
    import freetextstack_theme as theme
    slippy.main(__file__, theme, sys.argv[1:])
    sys.exit(0)

# Copyright 2007,2009 Behdad Esfahbod <*****@*****.**>

# A slides file should populate the variable slides with
# a list of tuples.  Each tuple should have:
#
#	- Slide content
#	- User data
#	- Canvas width
#	- Canvas height
#
# Slide content can be a string, a list of strings,
# a function returning one of those, or a generator
# yielding strings.  The user data should be a dictionary or
# None, and is both used to communicate options to the
# renderer and to pass extra options to the theme functions.
#
# A function-based slide content will be passed a renderer object.
# Renderer is an object similar to a cairo.Context and
# pangocairo.CairoContext but has its own methods too.
# The more useful of them here are put_text, put_image, and
# set_allocation.  See their pydocs.
    "OpenType CFF",
    "Type1",
    "Type1 fallback",
    '<span foreground="#888">Type3</span>',
])
list_slide([
    "<b>New in 1.6</b>",
    'Native gradients',
    'Fine-grained fallback images',
])
list_slide([
    "<b>Planned for 1.8</b>",
    'Improved text extraction',
    'User-fonts',
    'Metadata API',
    'Reduced file size',
    'JPEG support',
])
list_slide([
    "<b>Not Planned Yet</b>",
    'Colorspace API',
    'Higher-level integration',
])

slide("Q?")

if __name__ == "__main__":
    import slippy
    import cairoprinting_theme
    slippy.main(slides, cairoprinting_theme)
Esempio n. 15
0
@slide
def git2(r):
    yield "Tiny commits"

    yield "\n\n<i>Earn points faster</i>"
    r.move_to(400, 300)
    r.put_image("apply-now.png", height=50)
    yield ""


who(cworth)

slide("Commit-access\nfor everyone!")

who(behdad)

slide("Tricking others\ninto doing <i>their</i> work")

who(cworth)

slide("Don't go AWOL")

slide_noone("Why do we\nlove cairo?")

slide_noone('Why do <span foreground="#c00"><i>you</i></span>\nlove cairo?')

if __name__ == "__main__":
    import slippy
    import cairo_theme
    slippy.main(slides, cairo_theme)
Esempio n. 16
0
#!/usr/bin/python

def slide_add(f, data=None, width=800, height=600):
	if not data:
		data = {'who': -1}
        slides.append ((f, data, width, height))
	return f

slides = []
slide_add ("GTK+ Printing")
slide_add ("History")
slide_add ("Native dialogs\n on Win32 / OS X")
slide_add ("App can add\n widgets / pages\n to dialog")
slide_add ("App can ask\n for notification\n even after spooling")
slide_add ("Cairo\n for rendering")
slide_add ("On Unix,\n passthrough\n Postscript too")
slide_add ('Backends:\nFile\nCUPS\nlpr\n<span foreground="gray">PAPI</span>')
slide_add ("External\n application for\n preview by default\n (evince)")
slide_add ("Async operation\n (not on Win32)\n Redo CUPS convenience API")
slide_add ("That's\n mostly\n it!")

if __name__ == "__main__":
	import slippy
	import gtkprinting_theme
	slippy.main (slides, gtkprinting_theme)
Esempio n. 17
0
])

bullet_list_slide("Noto pipeline: TODO", [
	"fontTools.varLib",
	"CFF operator specializer",
	"FDK hinter",
])

slide_title("", """
github.com/googlei18n/fontmake
github.com/googlei18n/glyphsLib
github.com/unified-font-object/ufoLib
github.com/typesupply/defcon
github.com/LettError/MutatorMath
github.com/typesupply/fontMath
github.com/googlei18n/ufo2ft
github.com/typemytype/booleanOperations
github.com/googlei18n/cu2qu
github.com/googlei18n/compreffor
github.com/behdad/fonttools
github.com/googlei18n/noto-source
www.freetype.org/ttfautohint/
""")

slide_big("Q&amp;A")

if __name__ == "__main__":
	import slippy
	import fontpipeline_theme
	slippy.main (slides, fontpipeline_theme, args=['--geometry', '1920x1024'])
Esempio n. 18
0
To set a good example he started to write a completely free operating system.

Today Linux based GNU systems are used by millions of people around the world."""

import os, re
lang = os.getenv ('LANG')
i = lang.find ('_')
if i > 0:
	lang = lang[:i]
text = texts.get (lang, texts['en'])
def break_on_dashlines (text):
	s = ''
	for line in text.split ('\n'):
		if re.match ('^----*$', line):
			yield s
			s = ''
		else:
			if s:
				s += '\n'
			s += line
	yield s
		
for slide in break_on_dashlines (text):
	text_slide (slide)

if __name__ == "__main__":
	import slippy
	import gnu_theme
	slippy.main (slides, gnu_theme, args = ['--slideshow', '--delay', '0.05', '--repeat'])
Esempio n. 19
0
	font-weight-min: 100;
	font-weight-max: 500;
	font-stretch-min: 70;
	font-stretch-max: 130;
}
""", "css")
bullet_list_slide("Possibilities", [
	"Justification",
	"Animation",
	"Grading",
	"Tickling",
	"...",
	])

agenda('Demos')

agenda('Discussion')

bullet_list_slide("Links", [
	"https://github.com/behdad/fonttools",
	"https://github.com/googlei18n/fontmake",
	"https://groups.google.com/forum/#!forum/fonttools",
])

slide("<b>Q?</b>", data={"desc":title_font})

if __name__ == "__main__":
	import slippy
	import opentypegx_theme
	slippy.main (slides, opentypegx_theme, args=['--geometry', '1920x1200'])