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