Re: Minutes, 28 October f2f meeting

Hi Chris,

Could we add Khaled (github user khaledhosny) to
https://github.com/w3c/woff2-tests?

Cheers, Rod S.

On Tue, Oct 28, 2014 at 12:23 PM, Levantovsky, Vladimir <
Vladimir.Levantovsky@monotype.com> wrote:

> Thank you Chris for scribing and once again making our WG work/life so
> much easier!
>
> I also would like to thank David and Rod for organizing the meeting and to
> Google or hosting us.
>
> Thank you,
> Vlad
>
> > On Oct 28, 2014, at 10:52 AM, "Chris Lilley" <chris@w3.org> wrote:
> >
> > Hello Public-webfonts-wg,
> >
> > Minutes at
> > http://www.w3.org/2014/10/28-webfonts-minutes.html
> >
> >                 WebFonts Working Group Teleconference
> >
> > 28 Oct 2014
> >
> >   See also: [2]IRC log
> >
> >      [2] http://www.w3.org/2014/10/28-webfonts-irc
> >
> > Attendees
> >
> >   Present
> >   Regrets
> >   Chair
> >          Vlad
> >
> >   Scribe
> >          ChrisL
> >
> > Contents
> >
> >     * [3]Topics
> >         1. [4]compression
> >         2. [5]nominal size
> >         3. [6]ttc
> >         4. [7]testing
> >         5. [8]ttc
> >         6. [9]recap
> >     * [10]Summary of Action Items
> >     __________________________________________________________
> >
> >   <trackbot> Date: 28 October 2014
> >
> >   <scribe> Meeting: WebFonts f2f meeting, California
> >
> >   <scribe> scribenick: ChrisL
> >
> > compression
> >
> >   zoltan: excited to see woff progress. http compression is
> >   helped by a command line tool separate from font use. compiled
> >   and ready to go
> >   ... ideas to improve the faster codec
> >   ... slower one is the open source one, has better compression
> >
> >   vlad: will the faster one be shared also?
> >
> >   zoltan: yes
> >
> >   vlad: compression is good but slow, people complain
> >
> >   zoltan: faster codec uses a lot of ram
> >
> >   raph: same wire format?
> >
> >   zoltan: yes, but does not use all compression features
> >
> >   raph; any spec changes for this?
> >
> >   zoltan: no
> >
> >   vlad: I have a gift. its a big font. please compress, it
> >   crashes on compression
> >
> >   ChrisL: good to get the brotli results for monotype, adobe, and
> >   the two fond providers
> >
> >   zoltan: paged mark adler and asked if he would review it, no
> >   response yet
> >   ... he reviewed webp lossless, is a great reviewer
> >
> >   ChrisL: asked j-l gailly?
> >
> >   zoltan: yes, no response
> >   ... he is not working on compression since 2006
> >   ... mark adler is still actively involved
> >
> >   kuettel: show the new top-level brotli site
> >
> >   <raph> [11]https://github.com/google/brotli
> >
> >     [11] https://github.com/google/brotli
> >
> >   <raph> (soft launch for now)
> >
> >   (discussion on open sourcing the fast codec as well)
> >
> >   <kuettel> Kenji found the following JavaScript wrapper
> >   implementation via Google Alerts:
> >   [12]https://www.npmjs.org/package/brotli
> >
> >     [12] https://www.npmjs.org/package/brotli
> >
> >   kbx: there is a javascript one
> >
> >   (discussion on whether this is a wrapper, a port or a new impl)
> >
> >   links to
> >   [13]http://www.ietf.org/id/draft-alakuijala-brotli-02.txt which
> >   is the third version
> >
> >     [13] http://www.ietf.org/id/draft-alakuijala-brotli-02.txt
> >
> >   behedad: want to make sure the chrome deployed code matches the
> >   repro
> >
> >   Vlad: binary mode should not be used for metatata, myfonts is
> >   adding woff metadata
> >
> >   zoltan: decompression is the same either way
> >
> >   raph: tools should be updated to use the best mode
> >
> >   behedad: any plan to adress compression startup time?
> >
> >   zoltan: not planned currently but we could do
> >
> >   kbx: open bug on chrome to switch to new github brotli, do it
> >   now?
> >
> >   zoltan: yes
> >
> >   behedad: chrome uses the copy in ots
> >   ... which gets used in firefox and chrome
> >   ... what is the testing plan to avoid regressions over time
> >
> >   kuettel: current reference is good at doing round trip sanity
> >   checks
> >
> >   behedad: hard to see if patches break anything
> >
> >   (discussion on open sourcing the brotli test data)
> >
> >   kuettel: there is a new project for woff2 which is unpopulated
> >   yet
> >
> >   behedad: reference should be updated and ots updates from that
> >
> >   raph: and right now there is some divergence
> >
> >   behedad: firefox uses the github fork, chrome has not updated
> >   yet
> >
> >   zoltan: mostly encoder changes, minor improvements
> >
> >   behedad: brotli we need to get to users for adoption
> >
> >   Vlad: best for brotly to have the fast compression released
> >   asap otherwise they think its always slow
> >
> >   behedad: startup takes two seconds, for the text mode
> >
> >   raph: static content can use the slower compression for best
> >   compression
> >   ... startup hit is for text mode only
> >
> >   zoltan: can remove dict transforms to speed it up
> >   ... 100 times faster
> >   ... loose 0.5% on compression
> >
> >   Vlad: for dynamic compression of a font subset, that balances
> >   some of the compression loss
> >
> >   kbx: is there an advantage to using text encoding?
> >   ... for html, css, javascript
> >
> >   zoltan: much better for a few k of text
> >
> >   Vlad: between text mode and binary mode brotli?
> >
> >   zoltan: uses utf-8, using static disctionary or not
> >   ... static very good for vocabs like css, html etc
> >   ... can give 30% in binary size
> >   ... decompress is faster if a dict was used. so slow encode
> >   gives fast decode
> >   ... memcpy of dict entries
> >
> >   Vlad: at some point can brotli be an ISO standard via MPEG,
> >   lots of compression experts
> >
> >   zoltan: could do but dont want to spend a lot of time there
> >
> >   Vlad: ground is prepared, takes about 18 months elapsed,
> >   process wise
> >
> >   behedad: not clear what the value of ISO standardization is
> >
> >   Vlad: iptv for example uses only ISO standards
> >
> >   (discussion on value of iso standards)
> >
> >   (chris updates woff spec to point to brotli -02)
> >
> >   <raph> (shouldn't you point to
> >   [14]http://www.ietf.org/id/draft-alakuijala-brotli which is
> >   always the latest draft?)
> >
> >     [14] http://www.ietf.org/id/draft-alakuijala-brotli
> >
> >   (reminiscences on PFR)
> >
> >   (hmm maybe)
> >
> >   (except the reference needs a date)
> >
> >   <raph> (ah)
> >
> > nominal size
> >
> >   raph: size of reconstructed tt data is tricky as many
> >   decompressions with same semantic meaning on point data
> >   ... encoding of flags bytes, alighnment and padding
> >
> >   Vlad: and coordinate point representation
> >
> >   raph: more about the flags than the coordinates
> >
> >   behedad: we already aboid unecessary padding
> >
> >   raph: goal on nominal size is to allocate a chunk of memory and
> >   know how much is required for an unsophisticarted decoder and
> >   not reallocate
> >   ... and also to decide not to decompress
> >
> >   ChrisL: no guarantee its big enough
> >
> >   Vlad: incoming size is known, efficiency is not known
> >   ... nominal size amy be enough but is not a guarantee
> >
> >   raph: can be a guartantee
> >   ... its modelling a simple but not brain-dead decoer. always
> >   most compact point rept, greedy flags
> >   ... recommended alignment (in OT is obselete)
> >   ... ultimate gosl is a rel impl will get inside the nominal
> >   size without much work
> >
> >   its therefor e anominal not a minimal size
> >
> >   Vlad: create an open ended environment, impl makes its own
> >   choices on how efficient to be
> >   ... security aspect of review means buffer overrun is an issue
> >   ... conern was a false sense of security about overrun
> >
> >   raph: level of guarantee: nominal size is deterministic. algo
> >   produces the nominal size. its not the original size.
> >   ... and that size is easy to get smaller than
> >   ... impl can reallocate, or can ignore and do dynamically. so
> >   no harsh requiremment
> >   ... can alloc to nominal size and will use some size less than
> >   that
> >   ... if so its guaranteed not to get larger
> >   ... if you do, and exceed it, the font can be rejected as
> >   invalid
> >
> >   ChrisL: the invalid if over makes me a lot more comfortable
> >
> >   behedad: can argue problem outweighs benefits
> >
> >   Vlad: if you can modify the text to make it clear that it helps
> >   implementors
> >   ... that bit is informational
> >   ... then define the nominal size and give the algorithm and has
> >   no smarts
> >
> >   so if you ever go over that the font is invalid
> >
> >   raph: ok that makes sense
> >   ... first impl just used the original size, as it is known
> >   ... decoder used 4byte alignment, and so we tended to run over
> >   and fsail
> >   ... not so much on flags, but the alignment
> >   ... many fonts have tighter alignment
> >   ... chrome decoder switched to 2 byte alighnment.
> >   ... (long and short loca tables) hyper omptimizer may choose a
> >   1 byte alighnment omn larger tables
> >   ... so around november 2013 there was a normalizer which
> >   computed the nominal sise in the encoder
> >   ... except currently specced to 4 byte alignment, should be 2
> >   ... released encoder computes true nominal size, so guaranteed
> >   not to reject
> >   ... deployed decoders use a 2 byte alignment
> >
> >   "original" length is actually nominal length
> >
> >   raph: original length should be discarded, and encode only
> >   nominal length
> >
> >   Vlad: only if its a 100% giuarantee
> >
> >   raph: it is
> >
> >   RSheeter: so we add MUST reject if larger
> >
> >   (yes)
> >
> >   ACTION raph to work with vlad to clarify all uses of original
> >   length
> >
> >   <trackbot> Created ACTION-153 - Work with vlad to clarify all
> >   uses of original length [on Raph Levien - due 2014-11-04].
> >
> >   raph: better to rename rather than clarify. so change it to
> >   decoded length
> >
> >   behedad: impl may have to go from 2byte to 4byte and then will
> >   need to overide that value if its 130k or larger
> >
> >   raph: in that case need to rewrite local table
> >
> >   behedad: should ignore what head dtable says depending on what
> >   you are decoding to
> >   ... set to ewhat they are using in the decoder
> >
> >   Vlad: if you are right on the boundary)
> >
> >   behedad: must not reject the font in tht case
> >
> >   raph: agree this is what we should do
> >
> >   or make the loca table agree with the nominal
> >
> >   Vlad: its decoder specific
> >
> >   raph: do want tocheck chrome impl decodes when the loca table
> >   format is wrong at the 130k boundary
> >
> >   Vlad: proper for spec t glag that
> >
> >   raph: easy for an impl to miss
> >
> > ttc
> >
> >   RSheeter: seemed to work, but should we or not
> >
> > testing
> >
> >   (explains how woff1 worked)
> >
> >   <scribe> ACTION: chris to make a w3c woff2 test repo [recorded
> >   in
> >   [15]http://www.w3.org/2014/10/28-webfonts-minutes.html#action01
> >   ]
> >
> >   <trackbot> Created ACTION-154 - Make a w3c woff2 test repo [on
> >   Chris Lilley - due 2014-11-04].
> >
> > ttc
> >
> >   raph: no language for ttc is in the current spec. nice to have,
> >   covers all of OT standard
> >   ... no browsers do ttc
> >
> >   Vlad: concluded earlier its nice to have, forn collections not
> >   ttc
> >
> >   raph: actually OTC
> >
> >   Vlad: iso v3 now just calls them collections
> >   ... in woff1 were not supported sand noone cared
> >   ... expect collections become more widely used, so should not
> >   be impossible
> >
> >   raph: expands woff2 over woff1
> >
> >   Vlad: any wire format changes?
> >
> >   raph: yes
> >
> >   RSheeter: same for things that are not collections
> >   ... flavor in woff2 header, look for collection
> >
> >   (we check about flavor)
> >
> >   raph: ttc flavor is not normative
> >
> >   Vlad: flavor is sfnt version
> >
> >   behedad: first 4 bytes defines collection
> >
> >   raph: sfnt version is not as normative way to distinguish ttc
> >   ... can use for all fonts we know. ttc tag does not go into
> >   woff2 header
> >
> >   RSheeter: flavor of the parts of the collection ges elesewhere
> >
> >   raph: extended table forma t with duplicated blocks
> >
> >   RSheeter: not clear if only one of loca and glyf is shared
> >
> >   behedad: what does otc use as a tag?
> >
> >   RSheeter: some smaller sample files would help
> >
> >   ChrisL: we are ahead of the browsers here. there is no reqt to
> >   support ttc in browsers
> >
> >   Vlad: ttcf is iused for ot collections as well
> >
> >   behedad: is it right to do this now, its less mature. argued
> >   for this in woff1. why not do it separately
> >
> >   kbx: how do you use it in css
> >
> >   (a fragment identifier)
> >
> >   (discussion on ttc use cases, mostly on ideographs)
> >
> >   Vlad: collections not much in use but increasing, eg for
> >   traditional and simplified chinese
> >   ... could recharter to add as a new work item.
> >
> >   (rechartering risk analysis)
> >
> >   Vlad: we can reserve on flavor
> >
> >   kuetel: agree with ChrisL its better to do now from a
> >   marketing/adoption perspective
> >
> >   resolved: we will support collections in WOFF 2.0
> >
> >   raph: will do code review on RSheeter prototype
> >   ... about a page of spec added
> >   ... one para defining what to do on flavor
> >   ... there is aproposal in email, uses indices not byte offsets
> >   so no overlap
> >
> >   behedad: can you load one face without loading the other faces
> >
> >   <RSheeter>
> >   [16]http://lists.w3.org/Archives/Public/public-webfonts-wg/2014
> >   Feb/0018.html
> >
> >     [16]
> http://lists.w3.org/Archives/Public/public-webfonts-wg/2014Feb/0018.html
> >
> >   action-154?
> >
> >   <trackbot> action-154 -- Chris Lilley to Make a w3c woff2 test
> >   repo -- due 2014-11-04 -- OPEN
> >
> >   <trackbot> [17]http://www.w3.org/Fonts/WG/track/actions/154
> >
> >     [17] http://www.w3.org/Fonts/WG/track/actions/154
> >
> >   [18]https://github.com/w3c/woff2-tests
> >
> >     [18] https://github.com/w3c/woff2-tests
> >
> >   close action-154
> >
> >   <trackbot> Closed action-154.
> >
> >   kuettel: brotli decompress is all one, but after than you can
> >   select
> >
> >   raph: 90% is common anyway so no gain there
> >
> >   resolved: even for collections, one brotli stream for the whole
> >   collection
> >
> > recap
> >
> >   raph: should nit require adecoder to reject the font if its
> >   over nominal size
> >
> >   ChrisL: thought the main issue as a malicious font trying to
> >   overrun memory
> >
> >   raph: that is a concern
> >
> >   Vlad: we decoided its a guaranteed largest size. easier to see
> >   when we have a firm spec
> >
> >   behedad: may be abale to see how far from ideal the nominal is
> >
> >   raph: reluctant, might want to aligh on wierd boundaries
> >
> >   Vlad: lets start with the spec part and then decide on
> >   rejecting oversized fonts
> >
> >   raph: decoder MAY reject the font
> >
> >   <RSheeter> github is rsheeter
> >
> >   <RSheeter> (would also want khaledhosny, or permission to add
> >   addtl users [preferred])
> >
> >   Vlad: so in short term not going to last call.
> >   ... for cts, draft test descriptions are there
> >
> >   (adjourned)
> >
> > Summary of Action Items
> >
> >   [NEW] ACTION: chris to make a w3c woff2 test repo [recorded in
> >   [19]http://www.w3.org/2014/10/28-webfonts-minutes.html#action01
> >   ]
> >
> >   [End of minutes]
> >
> > --
> > Best regards,
> > Chris Lilley, Technical Director, W3C Interaction Domain
> >
> >
>
>

Received on Wednesday, 12 November 2014 15:52:41 UTC