IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2011/11/07)2011/11/08 
Robin_Watts tor8: Ah, well, at least that makes sense.00:22.31 
  tor8: I'll look into it tomorrow.00:23.12 
tor8 my guess would be an off-by-one but I think I've seen distortions of more than 1 source pixel00:23.13 
  you should be able to reproduce with the iphone simulator00:23.29 
  just ping me tomorrow and I'll send you some test files00:23.42 
  and walk you through the Xcode nightmare00:23.54 
Robin_Watts I was hoping to avoid the iphone bit at all.00:23.55 
  I'll see if I can see it in android.00:24.07 
  Some test files would be good though.00:24.33 
tor8 yeah, you could probably see it with pdfdraw. it's just very easy to spot with the iphone app because I have the low-res version of the page as a backdrop so you can see the shifting happen when the new render arrives00:24.45 
  I can get you the test files and some screen shots00:24.55 
  Robin_Watts: http://ghostscript.com/~tor/stuff/scaling/00:30.12 
Robin_Watts Thanks.00:30.21 
tor8 screen shots there00:30.26 
  I'll put the files on casper for scp00:30.43 
  in /home/tor00:31.24 
Robin_Watts Thanks.00:40.27 
  I'm off to bed now, but that'll be my focus for tomorrow.00:40.51 
tor8 night00:41.05 
  Robin_Watts: if you're still there (or for the logs) -- I get asm errors on draw_simple_scale.c01:14.02 
  invalid literal constant: pool needs to be closer01:14.19 
  unsupported relocation on symbol L001:14.27 
  and on the one that compiles, at runtime I get: warning: check_safe_call: could not restore current frame01:17.06 
Robin_Watts I'm damned if I can see the image shifting problem that tor8 reports :(12:48.31 
  Even in his screenshots.12:48.39 
kens Need someone else to look as well ?12:48.54 
Robin_Watts http://ghostscript.com/~tor/stuff/scaling/12:49.12 
  As he zooms in and out he displays a scaled image behind the display.12:49.58 
kens Just grabbing files12:50.12 
Robin_Watts And when it resolves, he sees a noticable jump when the real image is displayed.12:50.32 
  He says if he disables smooth scaling the problem goes away.12:50.46 
  His screenshots are designed to show it, but I'm damned if I can see it :(12:51.04 
kens Given that the content is different for each screen, what am I supposed to look at ?12:52.52 
Robin_Watts Aha.12:53.09 
kens :-)12:53.13 
Robin_Watts kens: Don't worry... but thanks.12:53.17 
  tor8: Hi.12:53.20 
kens NP12:53.31 
tor8 Robin_Watts: morning12:53.38 
Robin_Watts I'm having trouble reproducing the problems (or even seeing them in your screenshots)12:53.51 
tor8 Robin_Watts: screenshot 01.27.47, left half of the circle that surrounds the "27" is the blurry low-res12:55.06 
  the high-res right half is shifted up about one texel12:55.17 
  Robin_Watts: it's a lot easier to see in motion than on a static screenshot12:55.59 
Robin_Watts tor8: Before we continue... the scaled backdrop you display...12:56.07 
  Is that a stored lowres image of the page ?12:56.20 
  or the previous image zoomed up?12:56.36 
tor8 the previous image zoomed up12:56.44 
  i.e. it's the 100% zoom rendering, scaled up by iOS12:57.07 
Robin_Watts http://www.prior-ip.com/patent/9260871/12:57.41 
  I believe the scott patent covers that :(12:58.09 
tor8 ah, but it's not a thumbnail and it's not for file management navigation!12:58.29 
Robin_Watts The alternative (holding a dedicated page thumbnail and scaling that) is covered by a patent taken by Picsel, and now sold to Samsung.12:58.36 
tor8 nor is it using a discrete wavelet transform.12:58.46 
Robin_Watts scaled by iOS ?12:58.52 
tor8 the screenshot you're seeing is composed of two UIImageViews12:59.16 
  one being the first image we ever draw, that has been zoomed in12:59.35 
Robin_Watts Is it possible that the problem is iOS scaling being wrong ?12:59.37 
tor8 Robin_Watts: if it was, the text would shift around as well. it isn't.12:59.53 
Robin_Watts OK. Just don't want to be tilting at windmills.13:00.12 
tor8 the second, the high detail rendering at the current zoom/resolution.13:00.14 
  and if I turn off scaling, it looks dreadful but everything stays put (modulo the shimmering of dropped scanlines/columns)13:00.45 
Robin_Watts Given that we only ever use the scaler to scale down, the source image must be bigger than the destination one.13:01.02 
  Therefore a source texel would be smaller than an output pixel.13:01.36 
tor8 yeah, so the blurry (low res) image would seem to be scaled wrong in the image13:02.40 
  but please do confirm anything I say!13:02.59 
Robin_Watts Sorry, not sure I'm following.13:08.48 
tor8 render at low res (so scaling triggers), render at high res (so no scaling)13:09.29 
  scale the result and compare13:09.34 
  http://ghostscript.com/~tor/stuff/scaling/ compare a.png and b.png13:12.48 
Robin_Watts tor8: Does the problem still happen if you disable grid fitting ?13:12.51 
tor8 a.png is rendered at 50dpi13:12.53 
  b.png is rendered at 200dpi and then scaled by 25% in gimp13:13.11 
Robin_Watts When scaling images we grid fit them to the output.13:14.06 
  This can move their edges by up to 1 output pixel.13:14.24 
tor8 Robin_Watts: yes, as far as I have tested13:14.26 
  c.png is at 50dpi without grid fitting13:14.35 
  anyway, need to run down to the bank before they close13:14.57 
Robin_Watts That would mean that the initial "100%" zoom image would have that done to it.13:14.58 
tor8 back in an hour13:15.09 
  Robin_Watts: yes. that was my first thought too. but the errors are bigger than a device pixel.13:15.27 
Robin_Watts Then when we zoom back up, those pixels would be moved by the "1 source texel" you were talking about.13:15.30 
  tor8: OK. talk to you later. I'll keep staring.13:15.49 
tor8 Robin_Watts: stare at the page number alignment in the circle that's part of the page backdrop image13:16.10 
chrisl kens: did you get a mail (through support) from Grant Boyle this morning? gmail spam binned it for me and I only noticed it by accident.......14:38.28 
kens No, I don't thin kI saw it.14:50.10 
  Its held.14:50.22 
Robin_Watts alexcher: What are your movements in Miami? Are you around for the everglades trip?14:50.29 
chrisl kens: okay, thanks, I'll try to remember to point marcosw at it14:50.49 
Robin_Watts chrisl: Are you flying on the same flight as us? Tuesday 11am from Heathrow?14:51.15 
chrisl Yes, I'm on that flight, too14:51.34 
Robin_Watts Ok. So the plan is for us to hire a car at the airport to get to the hotel.14:51.55 
kens chrisl, thanks.14:51.58 
kens will get the airport shuttle14:52.11 
chrisl Robin_Watts: okay, cool. Just let me know what I should chip in14:52.33 
Robin_Watts chrisl: We'll worry about that when we get everything with the trips sorted.14:52.57 
chrisl Fine14:53.09 
Robin_Watts Bring your drivers license etc if you want to be one of the drivers.14:53.21 
chrisl Eek, not sure I'd be safe driving on the right........14:54.54 
alexcher Robin_Watts: I'm attending only the business part.14:55.00 
Robin_Watts alexcher: Fair enough.14:55.12 
  So, it's 'just' 13 people for the trip (plus marcos & co, but I think he'll have his own car if he's going to Key West first)14:56.09 
  tor8: ping ?14:58.17 
  tor8: I reproduced your test here; render DragonAge.pdf page 27 at 100 dpi, and scale it to 50dpi. Then render DragonAge.pdf at 50dpi. There is indeed a mismatch.15:00.29 
  But DragonAge.pdf at 100dpi is scaling up; hence we are comparing scaled with unscaled.15:01.14 
  If I render DragonAge at 80dpi, and scale that down to 40, and then render again at 40dpi, I get visually identical results.15:01.48 
  actually, I see a difference between 60 scaled down and 30. Let me look into that.15:03.22 
  actually, no, that's to be expected too because @60 it's an odd number of pixels in size.15:05.26 
  94 and 47 exactly match. 62 and 31 exactly match.15:10.49 
  Scaling seems to be exactly consistent with itself.15:10.58 
  The problem must be scaling being compared to unscaled.15:11.09 
tor8 Robin_Watts: pong.15:13.29 
Robin_Watts still struggling here.15:13.51 
tor8 Robin_Watts: right.15:14.05 
Robin_Watts The problem seems to be a mismatch between scaled and unscaled; but whenever I compare scaled to scaled, I get exactly the results I expect.15:14.38 
tor8 yeah. so at least it's deterministic :)15:15.00 
Robin_Watts The unscaled stuff; that's using nearest neighbour in the plotter, right ?15:15.27 
tor8 does it look pixelated?15:15.52 
  I have tried both with and without, didn't notice much difference15:16.37 
  especially on the dragon age pdf, the images don't have /Interpolate set15:16.56 
Robin_Watts Let's try rendering at a HUGE dpi and then scaling down.15:22.03 
  Right. The difference between 800 scaled down to 40 and 40 is tiny.15:24.33 
  OK. So I've proved to my satisfaction that the scaled things are consistent (80 scales down to match 40, 94 to 47, 62 to 31 etc)15:33.40 
  So I thought I'd try the same thing with unscaled...15:33.53 
  1000 scaled down to 100 does NOT match 100.15:34.02 
  wheras 1000 scaled down to 50 DOES match 50.15:34.43 
tor8 did you disable bilinear sampling for those?15:34.46 
Robin_Watts which suggests to me that the unscaled stuff tends towards correctness as the resolution gets large.15:35.16 
  I haven't changed the source from the default.15:35.26 
  (except to disable gridfitting)15:35.39 
  but I reckon there is an error in the unscaled image painting stuff when it's close to 1:1.15:36.15 
  which would make sense with the nearest neighbour selection.15:36.28 
  Let me see if it's interpolating or not.15:36.34 
  ok, so that is interpolating. Let's redo without interpolation.15:39.12 
  There is a second set of gridfitting in here that i hadn't spotted before.15:39.38 
  Without interpolation, I still get a noticeable difference between 1000 scaled down to 100 and 100 rendered directly.15:45.15 
  wheras 1000 scaled down to 100 agrees pretty well with the scaled version.15:45.38 
  I'm not sure I follow the gridfitting code in fz_paint_image_imp15:53.55 
tor8 Robin_Watts: if it's rectilinear, the a,b,c,d coefficients are the image size in device pixels15:58.55 
  two of the coefficients should be zero, depending on rotation15:59.37 
Robin_Watts Right. Except in the dragonage case, we have: 825.499999 0 0 -1137.5 -1.5 1137.515:59.45 
  so the gridfitting code takes that to be 826 0 0 -1138 -2 -113716:00.27 
  so the gridfitting code takes that to be 826 0 0 -1138 -2 113716:00.32 
  note the difference in -1138 and 1137 giving rise to a 1 pixel change in height.16:00.52 
tor8 yes. grid fitting at work. or am I missing something?16:01.12 
Robin_Watts dst->w = 825, dst->h = 113816:01.13 
  I'd have expected the 1137 to be 1138.16:02.03 
  but I'm still working it through, so bear with me.16:02.26 
tor8 the 1137 in the tx, ty part of the matrix?16:02.40 
Robin_Watts yeah.16:02.43 
tor8 right. not sure it would make much difference. the roundup is there mostly so we don't lose very small images (less than 1 device pixel wide or tall)16:03.42 
  I think, but that doesn't make much sense. it's been a while since I wrote that code :)16:04.11 
  http://git.ghostscript.com/?p=user/tor/mupdf.git;a=blobdiff;f=draw/imagedraw.c;h=e50233dec5e760a9ae45f06e7a4374358354aa79;hp=030c0e943cc6cd5a71bed7a4fc8626f30b0ca300;hb=a7e4226b65fc3b8bc4742b1c159f048d72dfcfeb;hpb=89b649be84883c4552193fb05a6e3e14dd6c344f16:05.46 
Robin_Watts The ctm maps a unit square to the destination output space.16:05.57 
tor8 maybe I'm confusing it with the previous version16:06.00 
Robin_Watts So grid fitting would mean that we want to make the minimum changes to the ctm to ensure that we map the corner points neatly onto whole pixel boundaries.16:07.07 
tor8 so we should just round() the coefficients rather than floor/ceil16:07.57 
Robin_Watts actually, the grid fitting I do in the scaling code ensures that I always round 'outwards'.16:08.18 
  hence images never get lost.16:08.25 
tor8 that's what the roundup() function tries to do as well16:08.34 
Robin_Watts Let me have a crack at some replacement code.16:08.50 
tor8 same as what I do when rounding fz_rect to integer fz_bbox16:08.52 
  does everything look right with grid fitting turned off in all places?16:09.16 
Robin_Watts it might not make a difference, but if we get back to the same place it's a reasonable bet it's right.16:09.28 
tor8 the grid fitting should match between the plotter and the scaler16:09.33 
Robin_Watts haven't tried that. Would spoil the suspense :)16:09.40 
tor8 :D16:09.44 
  there is that TODO in the plotter -- if the ctm is [1 0 0 1 x y] it should copy the scanlines directly without doing the texture mapping16:10.40 
Robin_Watts yeah, but ThatNeverHappens(TM)16:11.47 
tor8 it should with scaling :) but probably NotOftenEnoughToMatter(R)16:12.53 
Robin_Watts Ah, true.16:18.15 
  New gridfitting code makes 1000 to 100 and 100 match up much better.16:37.18 
ray_laptop morning, all16:41.53 
Robin_Watts morning ray.16:42.01 
ray_laptop goes to check the logs ...16:42.02 
kens Hi ray16:42.04 
ray_laptop Robin_Watts: If we manage to get the colors crammed into a 64-bit value (such as with compressed color encoding), what do you think of a 'planar' mem device that actually paints ALL of the separations into planar buffers ?16:50.56 
  much the way the pdf14 device does it16:51.44 
Robin_Watts urm... I can't immediately think of a limit on the number of planes the planar device supports.16:51.46 
ray_laptop I was pondering bug 692618 (file 1 -- the non-encodable color issue) and thinking about a 'put_image' to get the data out of the pdf14 device, but realized that it doesn't help if we still have to encode the 'image' into a 64-bit value.16:53.10 
  but the device 'put_image' proc actually gets all of the planes from the pdf14 device, so a planar memory device _could_ just copy the data in16:53.50 
Robin_Watts I might have something halfway intelligent to offer if I knew what put_image did.16:54.02 
ray_laptop it passes a a device scaled set of planes from the pdf14 device into the call -- passes the aplha plane and tag plane as well as num_components16:55.29 
  if the call returns "can't do that" from the initial call with alpha, it appliles the alpha and tries again16:56.24 
Robin_Watts So it's a way of the pdf14 device passing it's direct buffers to an underlying device.16:56.44 
  To allow things like pngalpha etc ?16:56.52 
ray_laptop and if that fails, it puts the image as an 'image' call16:56.56 
  Robin_Watts: exactly16:57.09 
Robin_Watts ok... so this would solve for the problem only in the case where we are overflowing the number of encodable colors on account of pdf14 blending.16:57.47 
  (which is exactly the current problem, but might not be the next one down the road)16:58.18 
ray_laptop since we have device scaled planes, we avoid the whole nonsense of packing the data into a chunky color index and then using the generalized image code to paint something which is 1:1 scaled anyway16:58.29 
  Robin_Watts: right, not the next one down the road.16:59.01 
henrys meeting time should we wait a bit for michael and marcos?17:00.47 
ray_laptop the next issue that mvrhel and I have started discussing is now to paint with the actual colors (hl colors). The fill_rectangle_hl_color is a start in the right direction17:00.51 
kens michael is here isn'rt he ?17:01.50 
ray_laptop kens: not that I see17:02.01 
Robin_Watts nope.17:02.02 
kens Oh no, I thought I saw him, must be hallucinating17:02.33 
henrys he was here - timeout 20 minutes ago17:03.10 
ray_laptop probably taking the kids to school17:03.23 
kens That explains the hallucination17:03.23 
  While we wait....17:03.36 
  Anyone have any hints on finding a memory allocation that isn't a leak exaclty ?17:03.53 
  -ZA the only help ?17:04.05 
ray_laptop kens: pretty much17:04.21 
kens OK well I'll get bck to sifting it tomorrow17:04.33 
Robin_Watts kens: Memento can probably help.17:04.42 
ray_laptop kens: I usually just capture the output and then start searching it.17:04.52 
kens COuld be.17:04.54 
Robin_Watts build with memento, run until you have the block.17:04.58 
kens Yes, I have the output, but I don;t really know what its telling me :-(17:05.08 
Robin_Watts Then Memento_find((void *)address_in_block)17:05.13 
henrys okay, there is mvrhel_laptop17:05.16 
mvrhel_laptop good morning. sorry I am a bit late17:05.17 
kens Robin_Watts : I don't know what the block is.17:05.20 
henrys np17:05.21 
ray_laptop if using the chunk allocator, allocations also get a sequence number (in debug mode)17:05.27 
kens I have an increasing allocation and don;t know why17:05.33 
  Its something to do with images17:05.44 
  More images = more allocations17:05.50 
Robin_Watts So, in what way is that not a leak ? :)17:05.52 
kens They seem to get cleaned up at EOJ17:06.01 
ray_laptop kens: PS, PDF or PCL ?17:06.05 
henrys I wanted to ask folks about coverity commits - I would like them to be batched on a branch and checked in all together, thoughts?17:06.05 
kens But persist when I wouldn't expect them to17:06.11 
  ray_laptop : PS but its inside pdfwrite, so probably all17:06.25 
ray_laptop kens: eoj does a 'restore'17:06.28 
kens ray_laptop : Yes :-(17:06.35 
  But the garbage collecotr doesn't remove them mid-job17:06.50 
chrisl kens: is the eoj restore, or is it final memory cleanup before we shut down?17:07.08 
  s/is/is it17:07.17 
alexcher henrys: there's always a chance that a patch will break something. Small patches help to isolate the problem.17:07.18 
Robin_Watts kens: Run for a while, pause, tell memento to list all blocks. Hopefully lots of them will have the obvious same size.17:07.20 
kens chrisl don't know17:07.20 
ray_laptop pdfwrite keeps stuff around for images to allow for 'same image' recognition, but I thought it only kept hashes17:07.21 
henrys kens:if you can reproduce the problem in PCL you can run a "malloc" only build.17:07.29 
kens Robin_Watts : that might help.17:07.39 
  henrys I only see it on the customer's (ridiculous) job17:07.54 
  In PostScript17:08.00 
henrys sigh..17:08.03 
Robin_Watts If you can spot a block that looks like a culprit then run again with Memento_breakAt(block number) to see where the allocation is being done.17:08.06 
kens But I have a cold today so I'm not thinking well.17:08.14 
  Robin_Watts : I may ask for some help with that tomorrow.17:08.29 
Robin_Watts kens: ping me tomorrow if you need help.17:08.32 
henrys alexcher - all the patches will be in the branch17:08.36 
alexcher henrys: OK17:09.08 
henrys do others have opinions?17:09.34 
kens Not really. Both ways seem OK to me.17:09.50 
mvrhel_laptop From a management point of view having them all in a branch seems clean17:10.18 
ray_laptop kens: if they aren't getting collected by the GC, then they are either still referenced, or were in non-GC memory. but if the EOJ 'restore' is freeing them, they _are_ in GC memory, just still 'active'17:10.35 
kens ray_laptop : yes, I'm not sure whic.17:11.05 
henrys mvrhel_laptop:I agree.17:11.17 
Robin_Watts I see no real advantage to having them in the branch.17:11.18 
kens pdfwrite *does* allocate stuff both in and out of GC. If it allocates it in GC it 'may' still be referencing it.17:11.26 
Robin_Watts I would rather see them all individually tested on the cluster, personally.17:11.34 
mvrhel_laptop they still can be17:11.42 
kens presumed they would be17:11.53 
Robin_Watts mvrhel_laptop: Only if done manually.17:12.06 
  And that requires manual rebasing of the branch to keep bringing it up to date with the trunk in order for the cluster test to be sane.17:12.43 
mvrhel_laptop yes17:12.55 
Robin_Watts (and you can't even do that if you publish the branch)17:13.03 
henrys alexcher:okay I'm fine with alexcher continuing as is. When my office heats up for a one line change the contrib drivers that I know don't have a prayer of working with or without a change it annoys me. But carry on.17:14.15 
ray_laptop seems like a lot of work for patches that aren't supposed to cause any issues.17:14.33 
Robin_Watts ray_laptop: Do you ever write code intending it to cause issues? :)17:14.50 
ray_laptop I (personally) don't have a problem with the patches as a single commit17:14.57 
chrisl The cluster doesn't test contrib drivers, does it?17:15.32 
ray_laptop and many of the coverity issues are in devices we don't test anyway, aren't they17:15.37 
  what chrisl said17:15.47 
chrisl :-)17:15.52 
  So the contrib changes could be done as a single commit, or committed with "CLUSTER_UNTESTED"17:16.24 
henrys yes CLUSTER_UNTESTED would be nice.17:16.50 
Robin_Watts While we're on the subject of the cluster; I sent an email out yesterday about a change to offer 'filter=blah' on the clusterpush stuff. If the email is unclear, please ask me (or tell me if you find problems!)17:17.02 
ray_laptop chrisl: I'd like for there to be a test of the batch, just in case (and for compiler errors/warnings)17:17.07 
henrys alexcher you also brought up indeterminism - I do notice the delta log is brightly colored.17:17.11 
  do we have bugs for all the problems?17:17.54 
ray_laptop if the changes haven't even been tested (by alexcher or someone) as a regression run, then I wouldn't want them tagged CLUSTER_UNTESTED17:18.34 
henrys Robin_Watts:can we filter by filename ".*fts.*" and are you globbing or regexping?17:18.39 
Robin_Watts I do if ($t =~ m/$term/) ... in perl17:19.08 
  where $term ends up with what you specify.17:19.22 
alexcher henrys: not yet, I'll open the bugs about indeterminisms.17:19.36 
henrys so regex17:19.41 
Robin_Watts So to limit to files with fts in the name, just do filter=fts17:19.46 
henrys Robin_Watts:thank you nice enhancement17:20.15 
Robin_Watts I meant to ask marcosw how much hassle it would be to change the suffix for pdf written and ps written files to be pdfw and psw respectively.17:20.51 
  speak of the devil.17:21.08 
marcosw_ oh oh17:21.14 
Robin_Watts I meant to ask marcosw how much hassle it would be to change the suffix for pdf written and ps written files to be pdfw and psw respectively.17:21.14 
henrys ray_laptop:did we ever get to the bottom of why there weren't compiler warning with the declaration mismatches in the clist code? I am concerned that might be a more widespread problem?17:21.24 
Robin_Watts Cos that way we can do filter=pdfw etc17:21.26 
henrys and I just had one more thing from marcosw_ if he's really here and that join was not a trick.17:22.23 
marcosw_ Robin_Watts: I can look at it, but it affects lots of pieces of the code.17:22.27 
Robin_Watts marcosw_: Ok, no biggy. I was hoping it might be a simple change.17:22.45 
marcosw_ btw, sorry I was late, traffic worse the usual.17:22.58 
ray_laptop henrys: no, I don't know why we weren't getting (at least) possible data loss warnings17:23.17 
chrisl marcosw_: I found a support mail in the gmail spam bin, from Grant Boyle (no subject) - if you haven't seen it, you might check your spam folder (or I can forward it to you)17:23.21 
henrys marcosw_:well 2 things: can you do a history check of william bader's problem, I think we want to understand that and (2) do you need help with the customer fixed not closed bugs - it looks like a long list.17:23.51 
marcosw_ chrisl: It's in my in basket.17:23.58 
ray_laptop henrys: but it _should_ be resolved now -- a lot more places touched than I initially expected17:23.59 
chrisl marcosw_: cool, just wanted to be sure17:24.26 
henrys ray_laptop:okay just worried because we use that calling convention a lot in the code. If none are being checked obviously not good.17:25.07 
marcosw_ henrys: I'm behind in the fixed but not closed bugs, they usually go pretty quick, so I'll try to catch up today Can you be more specific about WIlliam Bader's problem.17:25.21 
henrys I assigned it to you a couple days ago17:25.48 
marcosw_ http://bugs.ghostscript.com/show_bug.cgi?id=69261117:25.53 
ray_laptop I'm not sure of the compiler warning issues. If a function expects int64_t and is called with an 'int', doesn't it silently promote it ?17:25.58 
henrys marcosw_:right17:27.05 
  ray_laptop:yes but with a declaration you should get a warning right?17:27.22 
ray_laptop OTOH, something like: int code = clist_io_procs->ftell(...) _should_ generate a "possible data loss" warning17:27.42 
henrys doesn't match prototype or something17:27.43 
ray_laptop henrys: I really don't know. Anybody else a C99 expert w.r.t warnings17:28.46 
  ?17:28.49 
henrys yes I was wondering if the compiler is only checking direct function calls and not checking when the function has to be had from a pointer.17:29.08 
ray_laptop henrys: that would be pretty lame. How else would it know what to pass ?17:30.13 
henrys anyway anything else for the meeting?17:30.15 
kens Nope17:30.28 
marcosw_ I'm a bit confused by the bug report, Comment #0 says that 9.04 takes 7+ hours and Comment #2 says 60 minutes. Or are we mostly concerned with the 8.54 to 8.56 performance decrease (3 minutes to 32 minutes)?17:30.32 
mvrhel_laptop nothing from me17:30.38 
  hoping to get Robin's patch finished up17:30.51 
ray_laptop mvrhel_laptop: at some point I'd like to do more brainstorming on better support for separations (using planar mem devices and HL color calls)17:31.09 
mvrhel_laptop and trying to work with a friend at GM for Scott.17:31.18 
ray_laptop marcosw_: what bug ?17:31.30 
mvrhel_laptop ray_laptop: ok17:31.30 
henrys chrisl:how's freetype type 117:31.32 
  ?17:31.34 
marcosw_ http://bugs.ghostscript.com/show_bug.cgi?id=69261117:31.43 
henrys marcosw_:both really.17:31.54 
ray_laptop marcosw_: thx17:31.57 
alexcher ray_laptop: MSVC generates about 1500 warnings at -W3 level. The question is how much heat fixing them will create on the cluster and the IRC?17:31.58 
mvrhel_laptop gawd. those should be combined17:32.25 
  as best as possible17:32.30 
chrisl henrys: I've passed a first attempt at the freetype end over to Werner - I'm waiting to hear back (he's quite busy just now). I don't want to start the GS end of things until the FT side is agreed.17:32.35 
henrys chrisl:we can't just get an okay on the api and go forward?17:33.50 
  anyway past 10:30 don't want to hold folks up.17:34.35 
chrisl henrys: that's what I'm waiting for. As I said, Werner is busy with his own work, so I'm going to leave a day or so before I bug him about it17:34.41 
marcosw_ since I came 15 late I'll stay till 45 past the hour.17:35.00 
chrisl henrys: I mean "another day or so" before I bug him17:35.18 
henrys chrisl:okay so this is not a matter of wait for months - that was my first take.17:35.38 
chrisl henrys: no, I only sent him the patch on Friday.17:36.19 
marcosw_ I should mention that I'll be in Germany next week, but will have good internet access so it won't be an issue (other than that I'll be online at CET times rather than PST).17:36.36 
henrys marcosw_:okay then you don't want support coverage?17:37.12 
marcosw_ no, shouldn't be necessary.17:37.46 
ray_laptop I'm (trying to) take a short break from bugs to work on cleaning up 'gen_stochastic' (formerly genpat) and add in the multi-level threshold support17:38.56 
  so I can get it committed (finally) to toolbin.17:39.15 
Robin_Watts marcosw_: I haven't committed my cluster changes to git -wanted to give you a chance to look at them first.17:39.33 
ray_laptop mvrhel_laptop: any problem with me adding it to the toolbin/color/halftone as a sub-directory ?17:39.50 
marcosw_ Robin_Watts: I'll do that.17:39.55 
henrys ray_laptop:okay it will be nice to have that, when is mvrhel_laptop going to pull out wts?17:40.04 
mvrhel_laptop ray_laptop: that sounds good about adding it17:40.39 
kens Off for the night. Goodnight all.17:40.47 
mvrhel_laptop henrys: I will try to rip out wts this week17:40.55 
ray_laptop mvrhel_laptop: is the location OK, or do you want me to put it somewhere else ?17:41.00 
mvrhel_laptop ray_laptop: that makes the most sense to me. I was thinking that I should pull hafltone out of color though and have it be toolbin/halftone17:41.37 
ray_laptop mvrhel_laptop: and I was going to rename 'linearize_threshold' to 'thresh_remap' (unless you have a better name)17:41.42 
  mvrhel_laptop: moving it out of color makes sense to me17:42.05 
mvrhel_laptop ok 17:42.15 
  ray_laptop: can you go ahead and do that since you are adding your stuff?17:42.39 
ray_laptop mvrhel_laptop: sure, I'll go ahead and move it17:42.52 
mvrhel_laptop ok thanks17:43.03 
  ray_laptop: then move my project into a subfolder of ordered dithered17:43.34 
  or something 17:43.38 
  like that17:43.40 
  please17:43.42 
ray_laptop mvrhel_laptop: OK. how about 'gen_ordered' ??17:43.59 
mvrhel_laptop sounds good17:44.05 
marcosw_ Robin_Watts: your filter changes to the cluster look fine, a bit hard to follow with all the uncommitted changes to the various source files I had made over the last few weeks/months (oops, I must stop doing that).17:44.31 
Robin_Watts marcosw_: This may be a stupid question, but is there a perl equivalent of "indent" we could run on the code ?17:45.25 
ray_laptop mvrhel_laptop: so we'll have halftone/gen_ordered halftone/gen_stochastic and halftone/thresh_remap under toolbin, right ?17:45.32 
mvrhel_laptop yes. that sounds perfect17:45.54 
Robin_Watts tor8: Right. If I disable the linear interpolation stuff, then with the new gridfitting code, it seems to match well.17:46.05 
marcosw_ yes, hold on a sec (though you'll incur henrys' wrath regarding whitespace changes) :-)17:46.11 
Robin_Watts tor8: Want a patch to test?17:46.15 
  marcosw_: henrys is sensible enough not to look at the cluster code, I think :)17:46.31 
  marcosw_: We should do that as a separate commit though.17:46.47 
tor8 Robin_Watts: sure.17:46.49 
ray_laptop is sensible enough not to expect ANY perl code to be 'pretty'17:46.54 
marcosw_ Robin_Watts: ~regression/bin/perltidy (the options that match my perl style can be found in ~regression/bin/mytidy).17:47.32 
henrys you can't add noise to perl.17:47.39 
ray_laptop running indent on perl code probably just prints out a warning "Ha, Ha, you're kidding, right?"17:47.56 
Robin_Watts tor8: http://ghostscript.com/~robin/0001.patch17:48.04 
  tor8: remember to build 3 times, right? :)17:48.20 
tor8 I've fixed the dependency brokenness of Xcode, but in essence, yes :)17:48.49 
ray_laptop mvrhel_laptop: do you prefer gen_ordered or gen_clustered17:50.01 
mvrhel_laptop ray_laptop: I think I prefer ordered. It would be possible to do a dispersed order. Not sure who would want to do such a thing17:50.46 
ray_laptop mvrhel_laptop: I think there is a typo in the README: size_of_supercell should not be set to something reasonably large to achieve a specified target_quantization_levels.17:51.39 
  mvrhel_laptop: I think the 'not' is wrong17:51.51 
mvrhel_laptop yes. that is wrong17:52.05 
ray_laptop OK.17:52.11 
mvrhel_laptop thanks17:52.13 
ray_laptop mvrhel_laptop: can the target_quantization_levels be > 256 ??17:52.29 
Robin_Watts ray_laptop: While you're changing it... what constitutes "reasonably large"?17:52.33 
mvrhel_laptop mumble something to myself about checking my work. something I had to tell my 10 year old this week17:52.47 
Robin_Watts maybe add (e.g. 15) ?17:52.59 
ray_laptop Robin_Watts: I think it will eventually be fixed (the next comment is: Work is underway to have this value optimally set based upon the desired number of gray levels)17:53.19 
  Robin_Watts: there is a 'For example 64' comment17:53.50 
Robin_Watts fair enough.17:53.50 
mvrhel_laptop oh two editors17:53.52 
Robin_Watts oh, spot on then :)17:53.58 
ray_laptop two editors never agree :-(17:54.32 
Robin_Watts removes nose from other peoples business :)17:54.52 
tor8 Robin_Watts: I still see shifting :(17:55.07 
Robin_Watts as bad ?17:55.18 
mvrhel_laptop ray_laptop: I can output 16 bit level screens17:55.18 
  so I think in theory I could have more than 256 levels17:55.37 
tor8 less bad on the inlaid pictures, just as bad on the big backdrop17:55.39 
marcosw_ Robin_Watts: the biggest problem with the cluster code is that I also run it as the nightly regression code, the weekly regression code, the performance regression code, and use it to run tests such as comparing lcms1 to lcms2. Unfortunately I'm really, really lazy when it comes to keeping the different bits in sync (about once every three months I spend half a day using vimdiff and swearing a lot). \17:56.16 
mvrhel_laptop ray_laptop: I suppose I should beat on the code a bit more to see if anything explodes in these extreme cases17:56.55 
ray_laptop mvrhel_laptop: didn't you add an option to output the 'raw' threshold order as 'thresh_remap' will expect ?17:57.40 
mvrhel_laptop yes I did17:57.47 
  did I not add it to the README17:57.56 
Robin_Watts tor8: Odd. I'm testing with a cutdown pdf file with just that big backdrop in :(17:58.01 
mvrhel_laptop I may have only added it to the command options17:58.09 
  information17:58.15 
ray_laptop is just looking at the README. I'll check the code for the option and update it17:58.16 
mvrhel_laptop I think I need to update the README. there we a bunch of stuff that I added in the options17:58.43 
  s/we/was/17:58.50 
Robin_Watts tor8: Could you try to find a pdfdraw invocation that will reproduce the problem please?17:58.54 
tor8 Robin_watts: and with the a.png and b.png test, the backdrop is in the right spot, but the inlaid pictures shift17:59.00 
  ./build/debug/pdfdraw -o b.png -r200 ~/Dropbox/Dragon\ Age\ Origins\ -\ Prima\ Official\ Game\ Guide.pdf 21717:59.33 
  -r50 for a.png17:59.36 
  open them up, scale b.png by 25% and flip between the two17:59.50 
Robin_Watts Right. That I can do.18:00.01 
tor8 the lower right decoration frame seems to shift about two pixels18:00.27 
  let me try to see what happens with scaling and grid fitting and bilinear sampling all off18:02.29 
Robin_Watts Just uploading my results from that...18:02.53 
  http://ghostscript.com/~robin/out200to50.png18:03.21 
  http://ghostscript.com/~robin/out50.png18:03.43 
  As far as I can tell, the background bitmaps don't move at all between the two.18:05.14 
  The inlaid images move slightly (not the bboxes, but the contents thereof)18:05.40 
tor8 Robin_Watts: this is with everything off?18:06.12 
Robin_Watts That's exactly as I sent you the patch.18:06.25 
tor8 okay!18:06.30 
Robin_Watts (i.e. all grid fitting on, but interp off)18:06.37 
tor8 that's what I'm seeing on my iPad too18:06.38 
  it's the image contents shifting that made me notice this in the first place18:07.04 
henrys uh oh Robin_Watts cruising around FL on the right side of the road.18:07.40 
Robin_Watts henrys: the "wrong" side of the road :)18:07.58 
henrys I had relatives in the Virgin Islands they have american cars steering on right but drive on the left that was fun!18:09.18 
tor8 http://ghostscript.com/~tor/stuff/scaling/a-off.png18:09.23 
  http://ghostscript.com/~tor/stuff/scaling/b-off.png18:09.26 
  that's with no interpolation, no scaling, no grid fitting18:09.34 
henrys or steering on the left...18:09.36 
Robin_Watts henrys: wierd.18:09.57 
  tor8: I'm having real trouble seeing anything that offensive in your last two links.18:16.48 
tor8 Robin_Watts: with those images, I see the contents remain more stable, but it seems to still shift a bit18:16.59 
Robin_Watts The worst movement I can see is with the 'Fade Shapeshifting' box on the right.18:17.13 
marcosw_ you'd think there would be an inherent advantage of having the driver sitting on the left or the right based on right-handedness being dominant (I'd argue that shifting with the right hand is easier than shifting with the left, but shifting with the left hand felt pretty normal after a week of driving in the UK the last time I was there). Thank dog the the brake/gas/clutch pedals aren't rearranged. 18:17.14 
ray_laptop mvrhel_laptop: can I change the gen_ordered to use -f [b | ps | ppm | tos] or something ? (and of course README changes to match) ?18:17.23 
mvrhel_laptop ray_laptop: that is fine18:17.42 
tor8 http://ghostscript.com/~tor/stuff/scaling/a-scale.png is 50dpi, scaling, no grid fit (no grid-fit in transform_pixmap either)18:17.46 
Robin_Watts marcosw_: I'd rather have the dominant hand on the wheel, I think :)18:17.51 
ray_laptop mvrhel_laptop: OK thanks. It makes the README easier18:17.56 
  Robin_Watts: not to mention holding you lance or sword in your right hand for those vehicle josts ;-)18:18.59 
marcosw_ from what little I know about jousting I believe the lance is held in the right hand but diagonally across the horse.18:19.44 
Robin_Watts ray_laptop: That's true. We have the dominant hand to give people the finger with.18:19.46 
marcosw_ http://en.wikipedia.org/wiki/File:Broken_lances.jpg18:20.21 
  or http://en.wikipedia.org/wiki/File:Modern-Knight.jpg18:20.46 
  the second image is from california, so it's possible that jousting in the UK is performed the other way round.18:21.22 
tor8 Robin_Watts: okay, on the iPad, with scaling, interpolation but no grid fitting anywhere, it behaves perfectly18:24.23 
mvrhel_laptop bbiaw18:24.41 
Robin_Watts tor8: Right.18:24.48 
tor8 I do however see gaps, but the scaling and positioning seems right18:25.14 
Robin_Watts Well, rendering at different sizes with grid fitting is going to make image contents 'swim'.18:25.26 
tor8 white lines between the inlaid picture and the frame around it18:25.27 
Robin_Watts I can't see a way around that.18:25.55 
tor8 it looks like it's fading out to transparent a row/column early18:26.13 
  yeah, grid fitting was the first thing I tried tweaking, but I forgot about the grid fitting in the scaling code18:26.49 
Robin_Watts Ah. I forgot it the other way around :)18:27.06 
  With everything on (except interp), a direct comparison of 50dpi and 50dpi without scaling enabled comes back 'unswimmy'.18:27.48 
  tor8: Do you have an options page? :)18:30.42 
tor8 nope!18:32.19 
  okay, between lerp and nearest neighbor the images still shift a device pixel though18:33.02 
  s/device/texel/18:33.06 
  so the point sampling of NN is probably off center18:33.17 
Robin_Watts OK. I'll look at that.18:33.52 
tor8 forced interpolation, scaling, never grid fitting works great18:33.58 
  I believe we do grid fitting for two main reasons:18:34.10 
Robin_Watts except for the white lines.18:34.16 
tor8 1) latex documents that draw table borders with 1x1 images18:34.27 
  2) the white cracks when image are drawn piecemeal18:34.49 
Robin_Watts tor8: More generally, there are a (large) sub class of pdf files out there that use nx1 images to build up full bitmaps.18:35.28 
tor8 we might get away with 2 by not antialiasing; I wonder what apple does to solve this18:35.40 
Robin_Watts I think grid fitting is unavoidable, personally.18:35.58 
tor8 Robin_Watts: the gaps I mentioned earlier between the inlay and the frame were due to nearest neighbor being off18:36.24 
Robin_Watts really?18:36.45 
  NN vs lerp should never affect what destination pixel gets written - just the value that gets written to it.18:37.12 
tor8 well, it was picking transparent pixels18:38.09 
  like it was off by 1/2 texture column, and that at a size where each texel covers 8 pixels is a 4 pixel gap18:38.42 
Robin_Watts ok.18:39.27 
  tor8: if (!dolerp) { u += 32768; v += 32768; }18:40.53 
  tor8: What page of that file were you seeing the gaps in?18:41.38 
tor8 21718:42.01 
  top left image, along the left edge18:42.08 
  the topmost screenshot in the left column18:42.31 
Robin_Watts At what res? (or maybe you don't know in the viewer?)18:45.27 
tor8 fairly high18:45.58 
  can't tell exactly18:46.02 
  about 300dpi or so, but visible at lower resolutions too18:46.20 
  argh. now I'm not getting the crack!18:47.46 
  Robin_Watts: okay, I know what I saw. without forcing dolerp, so mixing interpolated screenshot with non-interpolated backdrop is what gave me the big crack.18:51.25 
  the u += 0.5 reduces it by a lot, but introduces other shifting18:53.26 
Robin_Watts I see no other shifting here; can you give me a pointer ?18:55.56 
  (I still have gridfitting on)18:56.48 
tor8 you really need to look at the zoomed in view18:58.42 
  the image shifts in relation to the text18:58.59 
  with forced interpolation, things are the most stable18:59.14 
Robin_Watts the bbox of the image changes ?18:59.22 
tor8 it almost looks that way18:59.36 
  and I've turned off grid fitting18:59.41 
  or the whole bbox is shifted18:59.51 
  you should get an iPad as well ;)19:00.52 
  or reimplement my app in android...19:01.04 
  or wait until miami19:02.42 
Robin_Watts I think the if (!dolerp) { u += 32768; v += 32768; } is correct.19:06.06 
  I'd hope it's better now than it was this morning?19:06.46 
  I vote we wait for miami.19:06.50 
tor8 I think the half-step addition we do should only be done for the dolerp case19:11.31 
  anyway, I too vote for miami19:11.36 
  this needs four eyes on the same screen and lots of fingerprints on the screen19:11.59 
Robin_Watts tor8: Urm...19:12.12 
tor8 no wait, the half step is to adjust for the device pixels19:12.49 
  center19:12.51 
Robin_Watts The half step addition we already do is because we want to sample the centre of the device pixels. Yes :)19:13.02 
tor8 I should get back to messing with iOS frameworks, that needs less brainpower :)19:13.12 
Robin_Watts hence that's the same for both.19:13.14 
  but *really* we should adjust every single non lerp painting routine to offset by 0.5 - but that's too hard, hence the if (!dolerp) { u += 32768; v += 32768; }19:14.13 
tor8 so, if I grid fit in the matrix but not the scaler, I get the expected shifting from that19:17.01 
  but if I also grid fit in transform_pixmap, I get twice the shifting19:17.14 
  this is with your patched grid fitting19:17.23 
Robin_Watts That's strange.19:18.00 
tor8 looking at the page number circle19:18.16 
Robin_Watts If we grid fit in the scaler, then the ctm should come out all integers.19:18.17 
  so the grid fitting in transform_pixmap shouldn't do anything.19:18.31 
tor8 other places they match up19:18.34 
Robin_Watts Can you get debug out?19:19.18 
  print the before/after gridfitting values?19:19.32 
tor8 sure.19:20.14 
Robin_Watts If we ever see adjustments in both places, that's a mistake.19:21.15 
tor8 grid fit 0: 7280 0 0 -5020 -3640 502019:22.02 
  grid fit 1: 7281 0 0 -5021 -3641 502119:22.02 
  that's before and after fitting in fz_paint_image_imp19:22.42 
Robin_Watts Are you forcing those numbers to be ints ?19:24.11 
tor8 printf %g19:24.22 
Robin_Watts Well, that makes no sense.19:25.32 
  We'd go into the first case of the if.19:25.40 
  f = 728019:25.49 
  Sorry, f = -364019:26.06 
  f is not > -364019:26.18 
  so ctm.e = -3640 - i.e. no change.19:26.32 
  You could try replacing the (float)(int)x things with floorf(x) ?19:27.40 
  but that really smells like a floating point wierdness there.19:28.04 
tor8 grid fit 0: 7280 0 0 -5020 -3640 502019:29.08 
  grid fit 1: 7281 0 0 -5021 -3641 502119:29.08 
  no change with floorf19:29.22 
Robin_Watts Can you step through that code?19:29.50 
  or maybe print f ?19:29.58 
tor8 grid fit 0: 7280 0 0 -5020 -3640 502019:31.20 
  f = -364119:31.20 
  grid fit 1: 7281 0 0 -5021 -3641 502119:31.20 
Robin_Watts How do you know this case has been through the scalers gridfitting already?19:32.14 
tor8 ah!19:32.24 
  gotcha19:32.26 
  it hasn't19:32.40 
Robin_Watts ah, phew.19:32.45 
  %.3g maybe ?19:32.55 
tor8 http://ghostscript.com/~tor/stuff/scaling/Screen%20shot%202011-11-08%20at%208.34.20%20PM.png19:35.13 
  can you see the shift there?19:35.19 
Robin_Watts Vertically, yes.19:36.07 
tor8 yup. that's what I've been seeing variations of for two days staring at this >.<19:36.28 
  the only solution I have now is to turn off grid fitting and force interpolation. that gives the expected rendering all the time.19:36.57 
  both grid fitting and nearest neighbor sampling seem to have issues.19:37.13 
Robin_Watts hold on.19:37.15 
  You said earlier:19:37.20 
  so, if I grid fit in the matrix but not the scaler, I get the expected shifting from that 19:37.42 
  but if I also grid fit in transform_pixmap, I get twice the shifting19:37.44 
tor8 one sec, making another screen shot with only the paint_imp fitting19:38.10 
Robin_Watts Just so I'm clear on this... if you grid fit *only* in the fz_paint_image_imp, you get what you expect, but enabling the grid fitting in fz_scale_pixmap_gridfit doubles the effect ?19:39.14 
tor8 http://ghostscript.com/~tor/stuff/scaling/Screen%20shot%202011-11-08%20at%208.39.07%20PM.png -- with grid fitting only in fz_paint_image_imp19:40.35 
  http://ghostscript.com/~tor/stuff/scaling/Screen%20shot%202011-11-08%20at%208.39.38%20PM.png -- with no grid fitting at all19:40.56 
Robin_Watts Right. With no grid fitting at all, I'd expect us to get pretty much perfect results.19:42.43 
  and it looks like we are.19:42.49 
  BUT we have the problem with cracks and disappearing images.19:43.03 
tor8 yup. until we start doing nearest neighbor, but that may just be on account of being nearest neighbor.19:43.09 
Robin_Watts right.19:43.18 
  So enabling grid fitting in fz_paint_image_imp should make the shifting "a bit worse".19:43.41 
tor8 as in the last screenshot, no grid fitting, forced linear interpolation, we get good stable results always19:43.44 
Robin_Watts The thing that concerns me, is that when we enable grid fitting in both places, we get "much worse".19:44.12 
tor8 yeah. it doesn't make sense either. the matrix doesn't look like it's changed.19:44.36 
Robin_Watts What happens if you only grid fit in the scaler?19:44.44 
  (maybe the scalers grid fitting is broken?)19:45.04 
tor8 eh, right! you're on to something there.19:45.40 
  it looks identical to the twice-fit result19:45.47 
Robin_Watts OK, so lets get some before/after figures for the scalers grid fitting.19:46.28 
tor8 grid fit scale 0: 1456 0 0 -1004 -728 100419:48.54 
  grid fit scale 1a: 1456 0 0 1005 -728 019:48.54 
  grid fit paint 3: 1456 0 0 1005 -728 019:48.55 
  grid fit paint 4: 1456 0 0 1005 -728 019:48.55 
Robin_Watts OK, I need decimal places :)19:49.06 
tor8 that's with %g, let me get you %f19:49.16 
  grid fit scale 0: 1456.000000 0.000000 0.000000 -1004.000061 -728.000000 1004.00006119:49.57 
  grid fit scale 1a: 1456 0 0 1005 -728 019:49.57 
  grid fit paint 3: 1456 0 0 1005 -728 019:49.57 
  grid fit paint 4: 1456 0 0 1005 -728 019:49.57 
Robin_Watts Eh? From -1004 to 1005 ?19:50.01 
tor8 you flipped vertically19:50.09 
  the translation is also changed19:50.17 
Robin_Watts right.19:50.23 
tor8 grid fit scale 0: 1456.000000 0.000000 0.000000 -1004.000061 -728.000000 1004.00006119:50.48 
  grid fit scale 1a: 1456.000000 0.000000 0.000000 1005.000000 -728.000000 0.00000019:50.49 
Robin_Watts Can you print out the changed matrix in fz_scale_pixmap_gridfit before you call fz_scale_pixmap ?19:51.02 
  -1004.and a tiny bit.19:51.53 
tor8 grid fit scale 0: 1456.000000 0.000000 0.000000 -1004.000061 -728.000000 1004.00006119:52.42 
  scale 0 xywh = -728.000000 1004.000061 1456.000000 -1004.00006119:52.42 
  scale 1 xywh = -728.000000 1005.000000 1456.000000 -1005.00000019:52.42 
  grid fit scale 1a: 1456.000000 0.000000 0.000000 1005.000000 -728.000000 0.00000019:52.42 
Robin_Watts Oh!19:53.02 
  Oh! Me so fool.19:53.07 
  Oh, no, wait, I see what I did.19:54.04 
  I suspect the problem is that I'm detecting -1004.000061 as being non integer, when really I should accept that as 'close enough'.19:55.05 
ray_laptop my youngest (age 6) has to do a "family tree" going back to great-grandparents -- I bet he's the only one that has a great-grandfather born in 1853 !20:03.07 
Robin_Watts mvrhel: Just booking car now. I'm getting a 5 seater.20:28.11 
  If it turns out that you don't get one, we can always sort out upgrading it nearer the time.20:28.24 
mvrhel Robin_Watts: ok20:28.46 
  are you getting one for the whole time or just to get from the airport to the hotel?20:28.59 
Robin_Watts We arrive on tuesday afternoon, so I'll get it from then til thursday night.20:29.22 
mvrhel ah. ok. that makes sense20:29.31 
  so with your 5 seater you can carry you, helen, chris, and ken20:30.03 
Robin_Watts Miles is getting a 7 seater.20:30.19 
mvrhel oh wait we have tor + 1 and scott and ellen20:30.23 
Robin_Watts And there are 13 of us.20:30.24 
mvrhel oh is miles doing the tour too20:30.30 
Robin_Watts indeed.20:30.34 
mvrhel how many is he bringing?20:30.43 
Robin_Watts just miles.20:30.47 
mvrhel oh. we have seating for 12 and there are 13 of use20:31.10 
  us20:31.14 
  when is miles arriving?20:31.22 
Robin_Watts Miles arrives wednesday night, collects 7 seater van and drives to hotel in it.20:31.47 
  So we'll have miles 7 + my 5 + yours if you have one.20:31.58 
  If you don't, then I'll get a larger car.20:32.19 
mvrhel ok. I need to check on this. I will do some looking tonight20:32.24 
Robin_Watts ok.20:32.41 
  I'm going to book now - I'm sure they'll be happy to upgrade me if needs be.20:33.04 
mvrhel of course20:33.14 
  wow. car rental prices are high here20:34.12 
Robin_Watts mvrhel: Are you lookin at hertz?20:34.29 
mvrhel hertz is super high20:34.48 
Robin_Watts hertz is close to the hotel :)20:35.09 
  81quid for tuesday -> thursday - doesn't seem to bad to me.20:35.23 
mvrhel that is not bad20:35.31 
  I am seeing that rate per day20:35.38 
Robin_Watts really? I'm on hertz.com20:36.01 
mvrhel well I was doing a search of all of them on expedia20:36.15 
  let me check hertz and also costco20:36.21 
  are you renting from the airport20:37.43 
  and dropping off locally20:37.48 
Robin_Watts yes.20:37.58 
mvrhel which is the return location?20:39.48 
Robin_Watts Eden Roc Renaissance20:40.10 
  4525 Collins Avenue20:40.12 
  Miami Beach, FL, US20:40.14 
  The hotel us 4833 Collins Ave.20:40.53 
  all booked. being called for food. bbiab.20:41.41 
mvrhel hmm for some reason the cost of picking up at the airport is about 90+ a day20:41.56 
  from hertz20:42.00 
  I will look this over more later20:42.05 
  going to eat now20:42.09 
 Forward 1 day (to 2011/11/09)>>> 
ghostscript.com
Search: