IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/05/01)2013/05/02 
kens chrisl did you see teh ft-devel email from Wener about CFF ?06:58.34 
chrisl kens: no, I'll look now07:01.13 
  Hmm, very cool - shame it doesn't include type 1!07:02.51 
kens True, but then as they say most fonts are either CFF or TT these days. And we canalwsays convert to CFF :-)07:03.21 
chrisl gotta go drive a parent around......08:06.28 
natronite Good morning08:36.51 
  any mupdf developers around?08:37.03 
  hello08:54.48 
ghostbot hola, natronite08:54.48 
tor8 natronite: yes.08:55.09 
natronite :D08:55.14 
tor8 but we're sometimes a bit laggy :)08:55.33 
natronite when rendering files with some images I get errors and warnings the first time I render it. If I render it a second time all is well and the page displays correct08:56.09 
  what could that be?08:56.13 
  Warnings and errors like "error: cannot find xobject resource: 'Im21'"08:56.25 
  "warning: cannot draw text since font and size not set"08:56.33 
  'error: cannot find extgstate resource 'GS1''08:56.45 
tor8 the second render time may reuse a cached display list from the first render08:56.56 
  then you won't see the errors and warnings from the interpreter more than once08:57.16 
  if the renders are not the same (i.e. you see errors and broken rendering the first time, and no errors and correct rendering the second) then I have no idea08:58.05 
  are you using mudraw, the windows viewer or the android app? or writing your own?08:58.30 
natronite I'm writing my own android app09:00.00 
  I have adapted the C code from the demo09:00.16 
tor8 can you reproduce the problems with the stock code?09:00.41 
natronite to read the file into memory from a zip file09:00.41 
  I can see if the file can be read from the mupdf app09:01.10 
  without the errors09:01.15 
tor8 if you adapt mudraw to use a memory stream, does that also have problems?09:03.10 
natronite I will see if I can find out. Let me get back to you guys.09:07.12 
Robin_Watts tor8: Morning09:47.50 
tor8 hey robin09:47.58 
Robin_Watts In yesterdays fonty stuff...09:48.05 
  One of the 3 font names was spotted as being a fallback font, right? (ArialMT)09:48.31 
  but the other two werent (Arial-BoldMT and Arial-BoldItalicMT)09:48.49 
tor8 that one was spotted as being a "builtin" core-14 font09:49.01 
  the others weren't09:49.05 
Robin_Watts right.09:49.05 
tor8 so it didn't get flagged as a substitute font09:49.18 
Robin_Watts Is that anything we can do anything about?09:49.19 
tor8 cid-fonts shouldn't ever get treated as builtin fonts, only simple fonts should get that09:49.42 
  so that's the first patch09:49.47 
Robin_Watts Right. I follow that.09:49.54 
tor8 with that patch, all three are treated equivalently09:49.57 
Robin_Watts I was wondering if this was a different problem.09:50.07 
  Does Freetype know how to italicise or bolden fonts?09:50.11 
tor8 so with NODROIDFONT they all get garbage encodings09:50.12 
kens artifical italic isn't hard. Artifical bold is harder09:50.38 
Robin_Watts should/could we spot Arial-BoldMT (for example) as being a boldened version of Arial?09:50.47 
tor8 we have artificial italic and boldening using freetype09:50.53 
  using the same values as XPS requires for its artificial bold/italic09:51.09 
kens Robin_Watts : the way to get 'better' substitution is to use a Multiple Master font09:51.36 
tor8 Robin_Watts: I believe the detection didn't work because of the basename being "Arial-BoldMT,Bold" with the ,Bold on the end09:51.37 
  the second patch uses the ToUnicode in the rare cases of "substitute font && identity encoding"09:52.19 
Robin_Watts tor8: yeah, I was just wondering if we should have a bug open for better spotting of font styles from names.09:52.45 
tor8 Robin_Watts: look at pdf_load_system_font09:53.54 
  we correctly spot Arial-BoldMT as being bold, no problem09:54.33 
  both by looking at the basename (strstr("Bold")) and the fontdescriptor flags09:54.52 
  in pdf_load_substitute_font we set font->ft_bold to let freetype know to artificially bolden it09:55.57 
  if (font->ft_bold)09:56.25 
  {09:56.26 
  FT_Outline_Embolden(&face->glyph->outline, strength * 64);09:56.27 
  FT_Outline_Translate(&face->glyph->outline, -strength * 32, -strength * 32);09:56.28 
  }09:56.29 
  where strength is based on the font size09:56.42 
Robin_Watts ok10:00.47 
tor8 with NODROIDFONT set, we get more accurate styles (using all the base 14 fonts) but lacking glyph coverage10:01.48 
Robin_Watts Ah. In base_font_names, we have Arial-BoldMT and Arial,Bold, but not Arial-BoldMT,Bold.10:04.02 
  I was wondering if we should chop the ,Bold off the end and try to rematch the string or something.10:04.51 
  tor8: 2 commits on robin svgwrite. The first one is good to go, the second is the work in progress.10:05.55 
  For pdfwrite/xpswrite/svgwrite I had to change mudraw a bit to have a better way of spotting output suffixes.10:06.36 
  cos asking for -o input.pdf.svg input.pdf would make it think that it wanted PDF output.10:07.23 
tor8 Robin_Watts: pdfref 1.4 page 815 has the table from which we get the base_font_names10:07.24 
  pdfref 1.3 has no such table10:07.54 
  pdfref 1.5 has a much slimmed version of the table10:08.05 
Robin_Watts 1.7 has a slim table on page 110910:08.23 
tor8 yeah. that's the same as introduced in 1.510:09.13 
  so the 1.4 table may be an abberration10:09.39 
  "Also, Acrobat 4.0 and earlier viewers incorrectly allow substitution fonts, such as TimesNewRoman and ArialMT, to be specified without FirstChar, LastChar, Widths, and FontDescriptor entries." suggests that ArialMT should be a substitute font, not a standard (builtin) font10:10.29 
  we could try slimming the base_font_file table and running bmpcmp to see if we break anything10:10.57 
Robin_Watts Or we could wait for a problem to be reported :)10:11.16 
  Fonts have a way of just sapping my will to live.10:11.24 
  I got prodded again by customer 530 about the mesh code last night, so I am going to grab your commit and do some timings today.10:11.50 
tor8 do/while(change)?10:12.28 
  is that just looking for the last suffix?10:12.55 
Robin_Watts it is.10:13.29 
tor8 suffix = strrchr(output, '.');10:13.31 
Robin_Watts tor8: OK,but we'd still need a loop.10:14.27 
  -o out.pdf.png.210:14.38 
tor8 why would you have a broken filename like that?10:15.12 
Robin_Watts tor8: because, people are awkward.10:15.54 
  We want to find the last suffix that matches one of our types.10:16.12 
tor8 struct { char *suffix; int format; } = { { ".ppm", OUT_PPM }, ...10:16.18 
Robin_Watts data driven - yeah, could do.10:16.44 
  tor8: Updated patch online.10:36.04 
  Ah! Marti has just merged the commits. excellent.10:40.38 
tor8 Robin_Watts: you can use the nelem() macro to avoid having a sentinel entry in the table10:51.52 
  for (i = 0; i < nelem(suffix_table); i++)10:52.02 
Robin_Watts tor8: ok.10:52.25 
  also, I can put the colorspace into the table.10:52.35 
tor8 it's not something I care about strongly, just wanted to let you know we do have that macro in our header files10:52.55 
  then I'd call it format_table :)10:53.16 
Robin_Watts yeah.10:59.52 
  actually, I prefer it with the colorspace out of the table.11:04.05 
tor8 Robin_Watts: could you take a look at tor/rtl, the WIP linked list patch11:33.05 
  there's a section there with the line merging that could do with some help11:33.15 
natronite if I render the pdf to a file with mudraw it works perfeclty11:39.07 
  but from my code the first time it has errors and warning12:07.22 
  and after reloading it into memory it does not have those errors and warnings anymore. and it displays correctly12:07.53 
tor8 have you made 100% certain that your memory buffer is identical before and after reloading?12:11.20 
natronite I thought about verifying that. What's the best method to do so?12:13.06 
tor8 memcmp?12:13.13 
natronite That would work if I still had access to the first memory part :p the reloading happens because the cached memory gets reused for another document12:14.55 
tor8 you could stow away a copy of it :)12:15.12 
  alternatively, make an md5 digest of it and log that12:15.25 
natronite well. I'll find a way :p thanks and tty in a couple of minutes12:15.50 
  so12:28.07 
  so far the pages I compared have the same memory backing them up12:28.25 
Robin_Watts tor8: will look soon.12:33.42 
mcs Hi, i need to ask one question regarding bounding box . I will be thankful if someone can share their opinion on the issue12:35.21 
  I am getting a bounding-box of the text. The dimension looks OK.12:38.37 
  However, the box is displaced in both x and y, towards down and right 12:39.01 
  and this displacement is not linear, as you move to the right and down, it increases slightly exponentially12:39.30 
  so for example, if you get the bbox of the upper top paragraph, 3 lines are missed from the top (I am rendering the bbox)12:40.18 
  But if you get the bbox of a lower paragraph, 5 lines are missing from top, for eg12:40.53 
  same for right displacement12:41.01 
  so as you move to the right, the displacement increases12:41.18 
  also, its different for different resolutions12:41.31 
  on a phone of resolution 960 x 540, its less12:41.55 
  but for a phone for 800 x 480 resolution, its more12:42.11 
  so its resolution dependent12:42.18 
  any ideas? why is the bounding box returned from the library displaced?12:42.41 
tor8 mcs: which bbox from which library?12:42.51 
mcs MuPDF12:43.13 
  bbox of the text you double tap on12:43.26 
tor8 bbox device? display list bboxes? text bbox?12:43.29 
  the text bboxes depend on the transform you pass when running the page through the text device12:43.52 
mcs hmm12:44.21 
tor8 it will be resolution dependent, if the transform you pass is the same as you use to render the resolution dependent bitmap12:44.41 
  if you pass fz_identity the bboxes will be resolution independent. if you pass the same transform as for rendering, the bboxes will be in screen coordinates.12:45.19 
mcs where are we passing this transform?12:45.51 
tor8 fz_run_*12:46.06 
mcs thanks, let me have a look12:46.57 
natronite so far the pages I compared have the same memory backing them up12:48.29 
tor8 natronite: can you reproduce the error in a stripped down sample code that does not involve java?12:49.53 
  I can't think of anything other than corrupted input data that would cause those kinds of errors12:50.16 
  I'm afraid you'll have to start thinking about how you can use valgrind12:50.44 
natronite hmm.. stripped down sample code that renders to a png for instance?12:51.03 
  I couldn't reproduce it with mudraw12:51.16 
  valgrind?12:51.19 
tor8 natronite: yes, that would be perfect (a standalone sample that renders to png)12:51.50 
  valgrind is a memory debugger that catches all sorts of wonderful errors. linux only as far as I know.12:52.09 
  it catches uninitialized memory accesses and accessing freed memory etc etc12:52.27 
natronite ok. sometimes only a couple of images are disolayed instead of all.12:53.20 
tor8 mupdf being non-deterministic suggests some serious memory breakage12:53.50 
  or file access problems12:53.58 
natronite ok. I'll try to adapt mudraw to see if we can create pngs12:54.26 
  with our code parts12:55.05 
tor8 natronite: if you have your code somewhere I could take a brief look and see if I spot anything obvious12:55.28 
natronite i do have the c code as it is. But it's not accessible online. Can I mail it to you?12:57.44 
tor8 mail is fine12:59.58 
natronite Could it be that we access the zip file from C and Java at times?13:03.51 
tor8 if it's in Java memory and the garbage collector moves it, you're in trouble13:04.49 
natronite we open the file from within c with minizip13:07.20 
tor8 kens: I just assigned a gxps/pdfwrite bug to you13:07.24 
natronite what is your email?13:07.27 
kens tor8 the 'transparency' one ?13:07.38 
tor8 kens: another one looks like it may be up your alley as well -- 69336313:07.42 
  kens: the incorrect unicode one13:08.00 
  natronite: tor dot andersson at artifex dot com13:08.10 
kens tor8 well I will look at it13:09.05 
natronite ok. sent13:16.58 
kens tor8 I suspect the ToUnicode CMap is a 'too bad'13:17.55 
tor8 kens: quite possibly. the xps interpreter has access to the unicode text of the original strings, but that's not something the graphics library or pdf format can express in any form other than ToUnicode, which isn't exactly equivalent13:20.02 
kens We do use information from the PostScript interpreter to construct ToUnicode CMaps (which is what I assume he's talking about here). Its possible we might do something as an enhancement. But as I keep telling people, if it looks the same, then its not a bug....13:21.10 
tor8 the original xps file has <Glyphs ... Indices="...." UnicodeString="Black RGB">13:22.03 
  only the indices are used in gxps, the UnicodeString is tossed13:22.14 
  so unless the file has a decent font which can be used to construct a ToUnicode, we'll have to do some serious rearchitecting...13:22.52 
  we could possibly try to collect all the Indices and UnicodeString values for a given font and try to reverse engineer a ToUnicode from that13:23.18 
  but then we need a way to pass that all the way through to pdfwrite13:23.42 
kens yes, I#'d have to look at how we deal with this in PS13:25.04 
tor8 henrys: Robin_Watts: to go back to the svgwrite discussion of yesterday, XPS has all state explicitly on all elements if you look at what microsoft puts out. no state tracking optimisations by nesting canvases etc.13:25.18 
Robin_Watts tor8: ok. I have something that seems to work, so we can tweak it later as required.13:26.35 
  Let me look at this rtl stuff... what was the particular issue.13:26.53 
tor8 Robin_Watts: you have what working?13:27.12 
Robin_Watts svgwrite.13:27.25 
tor8 Robin_Watts: me not understanding your logic when merging two lines13:27.26 
  ah right!13:27.29 
  (goldfish memory...)13:27.37 
Robin_Watts when your goldfish gets alzheimers you'll have caught up with me.13:27.58 
tor8 we should probably do a big cleanup pass on the text extraction layer now that you're happy with how it works13:29.03 
Robin_Watts tor8: I'm not *happy* :)13:29.15 
tor8 I'm rather unhappy with how messy the code is... and the data structure basics are sound but working with them is a PITA13:29.44 
Robin_Watts actually, I'm happy I haven't had to look at it for a while. does that count?13:29.44 
tor8 :)13:30.07 
Robin_Watts So, what file, what line does the confusion start ?13:30.30 
  chrisl: Are you pulling in the new shiny adobe/google fettled freetype ?13:31.23 
tor8 fitz/text_paragraph.c:1507, the #if 0 block13:31.46 
Robin_Watts http://git.ghostscript.com/?p=user/tor/mupdf.git;a=blame;f=fitz/text_paragraph.c;hb=ec343f37a181f4ffe823cafa5a194040ae49876713:32.08 
  1390 ?13:32.20 
tor8 eh, yes. 1390.13:32.45 
  can't even read the status line properly :)13:32.53 
Robin_Watts OK. Suppose we have text laid out in 2 columns. Let me try for an example.13:33.00 
  This is the first This is the second13:33.40 
  column of text column of text and13:33.41 
  and it carries it's shorter.13:33.43 
  on like this.13:33.45 
tor8 right.13:33.50 
Robin_Watts We'll grab those as 4 lines.13:34.23 
  all 4 will end up with the same region mask, I believe.13:34.39 
  This code is to do with recognising that the "on like this" carries on from the first column.13:35.40 
tor8 hm, wouldn't those two columns end up in two separate blocks?13:35.57 
Robin_Watts Not currently.13:36.18 
  Cos we have no code in there to distinguish between columns in a table, and columns of text.13:36.38 
  This also copes with pulling multiple lines together in a single column layout. So paragraphs are collated into lines.13:37.50 
  The fact that paragraphs are collated into lines matters for the indent spotting.13:39.14 
tor8 right. so after step 7 we should end up with:13:40.25 
  "This is the first This is the second"13:40.33 
  ...13:40.36 
  "and it carries on like this. it's shorter."13:40.50 
  ?13:40.51 
Robin_Watts Yes.13:40.59 
  although I'd probably have written it more like:13:41.11 
  1"This is the first" 2"This is the second"13:41.23 
  ...13:41.24 
  1"and it carried on like this" 2"it's shorter"13:41.39 
  or maybe even:13:42.16 
  1"and it carries" 1"on like this" 2"it's shorter"13:42.33 
  depending on how much notation we want to use.13:42.43 
tor8 right.13:42.50 
  where the 1"..." etc are the spans13:43.05 
Robin_Watts the column number/spans, yes.13:43.23 
  I am absolutely open to ideas for improving this :)13:44.07 
tor8 consider this:13:44.14 
  FeeHelloGoodbye,13:44.15 
  Fieworldcruel13:44.15 
  Foeworld!13:44.16 
  Foo13:44.17 
  argh. tabs didn't paste properly. but one word per column and a gap in "Foe world"13:44.35 
Robin_Watts I follow13:44.41 
tor8 three columns, of different height13:44.55 
  that one should work as expected, going by the comments of "only merge lines if the second line only uses 1 of the columns"13:45.39 
  should *not* work as expected, I mean13:46.03 
Robin_Watts Foo will be pulled into Foe.13:46.08 
  but that's all.13:46.21 
tor8 and if there wasen't a Foo line13:46.35 
  so this isn't actually a vital step in multi-column cases13:47.01 
Robin_Watts I'm trying to think why I imposed the "only pull stuff in if only 1 column is in use" rule.13:47.01 
  possibly we should drop that rule and see what happens.13:48.09 
tor8 only merge lines if they are both single column, and same column?13:55.28 
Robin_Watts no, merge lines if they share the same region mask.13:55.59 
  so we'd get 1"Fee" 1"Fie" 1"Fo" 1"Fum" 2"Hello" 2"World" 3"Goodbye" 3"Cruel" 3"World!"13:56.39 
tor8 that'd break tables though!13:56.54 
Robin_Watts Would it?13:57.02 
  We only merge within blocks.13:57.20 
tor8 well, if you merge all columns into one line, tables wouldn't be tables anymore...13:57.21 
  and the comment for Step 5 seems to indicate that producers don't write columns of text such that we'd get columns that look like tables13:57.59 
  a table is one block, with a line per row, and a span per cell... or am I completely off track?13:58.32 
Robin_Watts it depends whether we detect the gaps between lines in a table as being a new block or not.13:58.59 
tor8 random thought: have separate text representations for the three use cases13:59.45 
Robin_Watts the 3 use cases being?14:00.03 
tor8 1) collection by the text device14:00.07 
  2) post process to sort into columns and paragraphs14:00.22 
  2) post process for visual to logical RTL ordering14:00.31 
  3) html output and reflow14:00.47 
  4) flat text access for search and copy/paste14:00.53 
  make that 4 use cases14:00.57 
Robin_Watts or 5 ?14:01.08 
tor8 2) post processing to normalize unicode14:01.25 
  or 6 :)14:01.30 
Robin_Watts I'm not entirely averse to the idea of changing representation.14:01.43 
  I have the vague feeling it would be nice for the steps to be independent of one another though.14:02.01 
tor8 I was thinking 1, 2/3, and 4 would probably be best served by separate representations14:02.09 
Robin_Watts possibly.14:02.23 
tor8 search is hugely inefficient now, being able to random access (or just iterate efficiently) the unicode text and bboxes would probably speed it up a lt14:02.47 
  lot*14:02.49 
Robin_Watts Certainly, at the collection stage, we don't do an exhaustive search for the best place to put lines in the ordering.14:03.10 
  (when we strain_soup).14:03.17 
  s/lines/spans/.14:03.30 
  a better data structure could help us there.14:03.49 
tor8 strain_soup is the rudimentary collection into blocks/lines that we had from before14:04.03 
Robin_Watts tor8: yes.14:04.21 
tor8 and paragraph analysis breaks that into more reasonable units by doing whole page analysis14:04.34 
  looking at line heights and region masks for columns14:04.44 
  Robin_Watts: okay, butchered version on tor/rtl now. could you give that a spin and see if it acts reasonably? I changed it to only merge lines if there is only one span per line and they're in the same column14:15.56 
Robin_Watts tor8: OK. I'll do an android build in a mo, then we can reflow various docs through it.14:16.49 
  just answering this support email about leaks. I really can't see the evidence for any leaks.14:17.12 
tor8 natronite: okay, looking through your file now14:21.00 
Robin_Watts tor8: oh, balls.14:52.23 
  I can't do an android build trivially, cos you've changed the data structures :(14:52.40 
tor8 ah.14:53.07 
  want me to fix that?14:53.18 
Robin_Watts let me see if I can cure it easily.14:53.44 
tor8 shouldn't be more than fixing a few for loops for the span iteration14:54.06 
  - for (span_num = 0; span_num < line->len; span_num++)14:55.13 
  + for (span = line->first_span; span; span = span->next)14:55.14 
Robin_Watts We don't have a line->len any more...14:56.09 
tor8 right. at the java marshaling further down it breaks...14:56.29 
Robin_Watts fixed.14:57.50 
  windows builds are unhappy about the lack of stdint.h14:58.14 
  required by ucdn.c14:58.22 
tor8 hmm.14:58.48 
  what gives uint32_t on windows?14:59.08 
Robin_Watts windows Release build that was. Trying a debug build now.14:59.13 
henrys tor8:yes that's one thing that makes xps hellishly large and a terrible choice for a printer language.14:59.19 
tor8 morning henrys14:59.33 
Robin_Watts yeah, debug build fails too.14:59.33 
henrys tor8:but I guess we should just go along with it.15:00.55 
tor8 henrys: when in Rome...15:01.27 
henrys tor8:yup15:01.34 
  Robin_Watts: yea SOA is very good, did you see the following finale yet?15:04.10 
Robin_Watts henrys: yeah.15:04.17 
  vaguely disappointed by the following finale.15:04.44 
henrys hard to imagine next season without the villain15:05.02 
Robin_Watts for reasons I won't go into here.15:05.09 
  http://ghostscript.com/~robin/MuPDF-rtl.apk15:10.02 
  tor8: ^15:10.07 
tor8 entering reflow mode crashes the activity15:19.41 
Robin_Watts tor8: urgh.15:20.19 
  I promised 530 I'd look at your mesh stuff for them today - can we come back to the rtl stuff tomorrow?15:21.14 
tor8 Robin_Watts: sure. I'm about done for the day. livingroom's getting too hot and stuffy. summer's almost here...15:23.04 
Robin_Watts tor8: In the mesh stuf...15:32.13 
  f15:32.15 
  In fz_paint_triangle... you do: float x0 = roundf(c0[0])15:32.42 
  Why have x0 as a float then?15:34.05 
kens henrys ping15:36.28 
henrys kens:yes15:36.39 
tor8 Robin_Watts: avoiding converting float -> int -> float15:36.52 
kens the two patches on my repository each have one regression15:37.01 
Robin_Watts Why convert it back to a float?15:37.02 
  Why not pass it into paint_scan as an int ?15:37.18 
kens the high level patterns one has regressin in 14-09.bin15:37.35 
  the 'Intellifont as type 3' one has a regression in c706.bin15:37.50 
  WHat do you want me to do ? COmmit and open bugs?15:38.07 
Robin_Watts tor8: In paint_scan you always want it as an int (except for where you / (fx1 - fx0), and that will be converted to a float anyway due to the numerator being floaty)15:38.51 
henrys I think commit and open bugs15:39.09 
kens OK no problem.15:39.15 
  I'll do that tomorrow when I hopefully won't make mistakes :-)15:39.34 
tor8 Robin_Watts: I was trying out rounding it later as well15:42.03 
Robin_Watts right.15:42.12 
tor8 feel free to integerize and fixedpointify the lot15:42.13 
  load_edge could be optimized by using deltas and stepping instead of computing the lerped values directly each scanline15:43.05 
Robin_Watts tor8: yeah.15:43.13 
  I'm still getting white pixels here :(15:43.25 
  oh. building release, testing debug. d'oh.15:43.41 
tor8 there are one or two still in mesh3.pdf but it's much better15:44.01 
  compare rotating 15 degrees with a/s15:44.07 
Robin_Watts yes, testing the right one makes it look a lot better :)15:44.53 
  Why do you use ceilf ?15:45.08 
  (and roundf for that matter)15:45.15 
  floorf/roundf/ceilf are much slower than just using adds and casts, cos they test for over/underflow etc.15:45.57 
  I don't think we care about over/underflow here.15:46.06 
  and we are guaranteed (I think) that all our values are +ve.15:46.18 
  so removing the roundf is easy.15:46.42 
  Why did you pick ceilf? Could you not equally have picked roundf, or floorf there?15:47.05 
tor8 Robin_Watts: simplicity15:47.16 
  ceilf for rounding upwards so we guaranteed get one scan line15:47.45 
  +1 and rounding down works too15:47.54 
  and also so we start with the first scan line intersecting the triangle15:48.18 
  biab, need to go for dinner15:48.33 
Robin_Watts tor8: but we round both start and end up.15:48.41 
henrys wow a gaps bug odd16:33.12 
  gxps that is16:33.19 
kens 2 in fact16:33.35 
henrys I have mixed feeling about people using xps, good for us bad for humanity in general16:35.07 
kens goodnight all16:38.07 
henrys Robin_Watts: maybe I'll start justified - checking netflix16:39.59 
Robin_Watts henrys: Did you watch Fringe ?16:40.27 
henrys I have to start watching all these programs on netflix I can't remember what's going on with a week break between shows16:41.08 
  no I didn't like the first few fringes and stopped does it get better16:41.58 
  ?16:41.59 
Robin_Watts Fringe was utterly fabulous.16:42.16 
  got better and better and better as time went on.16:42.23 
  And I'm sure I've recommended Supernatural too.16:42.50 
  Supernatural is king of the "This can't possibly be good, but it is" stakes.16:43.23 
  I guess I like both Supernatural and Fringe because they have such strong overarching storylines that that just advance a bit each week.16:44.15 
henrys wonders if he can find open source font substitutes for PCL fonts amongst these new google web fonts.17:09.40 
  looks like raph is part/lead on this project17:10.26 
  tor8:have you looked at the google web fonts at all?17:19.20 
Robin_Watts remembers to vote.18:05.20 
mvrhel_laptop bbiaw19:00.58 
tor8 henrys: a bit. the catalogue is huge these days, seems like they'll let pretty much any font in20:43.05 
Robin_Watts tor8: Optimised mesh plotter in robin/master20:51.42 
tor8 Robin_Watts: will look tomorrow21:09.14 
 Forward 1 day (to 2013/05/03)>>> 
ghostscript.com
Search: