IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2014/06/17)2014/06/18 
mattchz morning09:01.48 
kens Hi09:01.53 
ghostbot Welcome to #ghostscript, the channel for Ghostscript and MuPDF. If you have a question, please ask it, don't ask to ask it. Do be prepared to wait for a reply as devs will check the logs and reply when they come on line.09:01.53 
Robin_Watts morning mattchz09:02.25 
pedro_pc what is ghostbot's criteria for welcoming?09:03.45 
kens Just saying 'Hi' with nothing else, or I think hello, possibly some other09:04.18 
Robin_Watts It spots any one of a set number of greetings, not directed at anyone.09:04.25 
pedro_pc ah, cool :)09:04.31 
  probably works pretty well overall09:04.40 
Robin_Watts so "Hi", "Hello", etc, but not "Hi, Peds" etc.09:04.47 
kens I htink we should add hii, hiii, hiiii, hiiiii09:04.59 
Robin_Watts It could be a lot smarter.09:05.05 
pedro_pc kens> :)09:05.10 
mattchz ah, it’s flash upgrade time09:05.41 
pedro_pc mattchz> it's *always* flash update time09:05.58 
kens Hmm, thought I did that last week09:06.02 
pedro_pc and java09:06.02 
mattchz yeah, I’d hope we’d be over that by 201409:06.10 
pedro_pc hi Paul - see you got a response from Brad at Good - guess I should change my email to an artifex one if I want a reply ;)09:17.09 
kens Heading out for a few hours, back around lunch time09:18.19 
  If anyhone wants to look into flights for October.....09:18.35 
paulgardiner pedro_pc: yeah that's probably it.09:18.57 
pedro_pc paulgardiner: when you get a chance could you try GoodShare with the iOS app and see if it lets you open any office docs please? I've tried on Android but i suspect their GC is set such that our accounts don't have permissions to use SO so I get a message saying there are no apps allowed by out IT policy09:22.16 
paulgardiner pedro_pc: Sure. Was intending to try that anyway. Might not get to it for an hour or so.09:23.19 
pedro_pc (the password works fine btw - may have been useful to have that when they sent the access keys ;)09:23.51 
  paulgardiner> no rush - just worth checking you see the same issues before going back to Brad to ask about it09:24.19 
paulgardiner Yes sending us that with the access keys might have been nice. :-)09:25.54 
purn hi Robin_Watts.........10:02.03 
Robin_Watts Morning10:02.24 
purn I am already build a function which can create a simple STAMP annotation like APPROVED10:03.16 
Robin_Watts fab.10:03.25 
purn But I have to write the stream part line by line10:04.07 
  can i create the strem information autometically?10:04.32 
Robin_Watts For an annotation, the stream is the actual set of pdf operators to draw the annotiation?10:07.15 
  i.e. it's the AP stream you're talking about?10:07.24 
purn yes10:08.45 
  both AP and BBA10:08.57 
Robin_Watts Well, creating a stream object should be doable within MuPDF.10:09.10 
  but the complexity will be in creating the actual contents for the stream - the set of operators used.10:09.38 
  Is that what you mean?10:09.42 
purn yes10:10.49 
Robin_Watts Right.10:11.15 
  We have some code that is intended to allow you to call the standard fz device functions (draw an image, place some text etc) and have that produce the pdf operator stream that does the same thing.10:12.16 
  That's the pdf-device.c stuff.10:12.22 
  BUT it's not complete.10:12.26 
  and it may not be quite in the form you want.10:12.32 
  Have a look for code that calls pdf_new_pdf_device and see if you can find what you need.10:13.42 
mattchz robin: updated review: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=13e3327167cf47aa7c202ed83835bf43169ac8c110:13.59 
Robin_Watts mattchz: Looks good to me.10:15.06 
mattchz thanks10:15.14 
  btw, if you prefer, I can do this in the future as a separate commit, then just rebase just before I push to golden if that’s easier to review.10:16.30 
Robin_Watts How was this not a separate commit ?10:16.52 
mattchz I mean, a separate commit applied on top of my previous version of the code10:17.20 
Robin_Watts oh, right, which you could then squash together?10:17.32 
mattchz so you see a “diff of diffs"10:17.32 
  yeah10:17.34 
Robin_Watts Yeah, for a larger review that might be nice, but for a little one like this, it's fine.10:17.48 
  Whatever works easiest.10:17.56 
mattchz I squashed it immediately, but I’m just saying I could squash it later if that works better.10:17.56 
  ok10:17.59 
Robin_Watts runs. back in a bit.10:18.11 
mattchz paul: should we just close this? http://bugs.ghostscript.com/show_bug.cgi?id=69456810:48.23 
  (no feedback from OP)10:48.31 
paulgardiner Yes. I believe we've fixed that.10:49.35 
mattchz Ok, will do.10:49.43 
paulgardiner ta10:49.56 
mattchz here’s another trivial review if someone has a minute please :)11:22.16 
  http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=38402bcf8dfea7b08cb5b3e6948af078d0b3874b11:22.16 
Robin_Watts mattchz: Looks good to me.11:45.02 
kens Hmm, well Virgin fly out to Chicago direct, but coming back would be on Delta with a stop in New York. I think not.....11:58.47 
chrisl Really, I must have missed that....11:59.20 
kens Well, that's what its offering me...11:59.44 
  I'm guessing Virgin don't fly to Chicago after 31st September or something12:00.02 
chrisl I was looking at outwards flights on 1st Oct12:00.56 
kens Hmm,so was I....12:01.19 
chrisl And back on the Sunday?12:01.38 
kens Yes, I did look at the Saturday and it was hugely expensive12:02.03 
  There's a BA option, though a lot of their flights are actually on American12:03.00 
chrisl Saturday came out about double the price when I checked - I thought that was an improvement12:03.04 
kens It was about 2.5 I thought, but yes an improvement12:03.17 
chrisl I get VA flights direct, out and back.....12:03.34 
kens Weird, I wonder what I'm doing wrong12:03.47 
chrisl Are you looking on VA's own site?12:03.58 
kens Yes12:04.02 
chrisl Erm, ah, now it's gone.... I'm confused12:05.02 
kens FOund a more detailed planner, lets see what it says12:05.04 
  Well it gives me a lot more options12:05.59 
  There's now an 18:45 departure direct12:06.12 
  and its a VA flight too12:06.30 
  All the other flights are Delta and involve a stop12:07.27 
Robin_Watts United have 3 non-stop flights on the wed, all 745quid12:07.41 
kens VA comes in at 668.9112:07.54 
  Out on Wednesday, back on Sunday arriving Monday12:08.15 
Robin_Watts and 3 back on sunday.12:08.34 
chrisl I can't tell if the United flights have power outlets12:09.14 
Robin_Watts flying backon saturday is more expensive (1300+)12:09.42 
kens It is with everyone, I think VA came in at 930 or so12:10.01 
chrisl VA needs their website proof read properly: "View less search options"12:10.39 
Robin_Watts chrisl: Looks like no power to me :(12:11.59 
kens I don't see much ot choose between United and VA except that VA is cheaper.12:12.00 
chrisl I now can't get the direct return flight on VA to come up - in fact the site says: "There are no direct flights available for this journey."12:12.13 
kens There is an earlier United flight on SUnday, but it gets in at 6 am12:12.17 
  The middling United flight is about the same time as the VA one (18:35 vs 18:45)12:13.06 
Robin_Watts BA has lots of options (codeshare with american)12:13.38 
kens Yes, I think I mentioned BA above12:13.53 
paulgardiner pedro_pc: I went to Manage Applications and clicked on SO2-DEV (com.picsel.so2) and don't see it there.12:14.20 
kens BA also looks slightly more expensive than VA12:14.41 
  comparable with United12:14.48 
  about £76612:15.02 
Robin_Watts no flights from brum either.12:15.30 
kens Hmm, well that wouldn't help me much, though Gatwick would :-)12:15.47 
android_develope hello12:16.39 
ghostbot Welcome to #ghostscript, the channel for Ghostscript and MuPDF. If you have a question, please ask it, don't ask to ask it. Do be prepared to wait for a reply as devs will check the logs and reply when they come on line.12:16.39 
kens There's only one significantly early flight on SUnday for American, which gets in at 22:4512:16.39 
Robin_Watts So...VA is cheapest, but involves a stop?12:17.57 
kens No, there is no stop on what I see this time12:18.09 
Robin_Watts 1st to 5th ?12:18.24 
kens But finding the flights on the web sire seems 'tricky'12:18.25 
android_develope I have a problem using the library under android12:18.33 
  please me12:18.36 
kens Yes out on 1st, back on 5th VS039 and VS04012:18.39 
  out 1st 11:00 arrive 13:35 back 5th 18:45 arrive 08:4512:19.11 
Robin_Watts It's resolutely offering me a stop.12:19.18 
kens It did for me too until I went to the detailed planner12:19.30 
  It also didn't offer me teh VA return flight and only offered Delta12:19.44 
  Its also not the cheapest fare anymore12:20.02 
  Its now £764 suspiciously similar to all the others.....12:20.12 
android_develope ignore me because I'm black?12:20.19 
pedro_pc paulgardiner> only SOG_DEV has the bindings at present, not SO2_DEV (SO2_DEV has the regular smartoffice2 package name iirc, not the smartofficegd one)12:20.43 
chrisl kens: how do you get the detailed planner?12:20.56 
Robin_Watts android_develope: If you ask coherent questions, politely, and wait for an answer then you stand a chance of getting answered.12:21.07 
kens Form the front page I pressed the 'more options' button or something like that12:21.13 
  Yeah 'More options' near the top, under the 'fomr'12:21.45 
  err, 'from'12:21.51 
pedro_pc paulgardiner we can easily add the file-transfer bindings to SO2_DEV for testing with the com.picsel.smartoffice2 packagename if you want12:21.52 
Robin_Watts kens: I see 764 for the price that way.12:22.03 
kens chrisl that then looks like the old VA website did12:22.06 
paulgardiner pedro_pc: no, don't worry. I'll swap to SOG_DEV12:22.23 
chrisl kens: Oh, that is *weird*!12:23.05 
kens I chose London All to CHicago and CHicago to London All out 1/10/14 back 05/10/14 economy both ways, lowest fare +/- 3 days12:23.10 
  chrisl you see it now ?12:23.37 
Robin_Watts virgins own flight is not the lowest fare. Maybe that's what confused the newer search.12:23.42 
kens That's possible, though it stinks...12:24.00 
chrisl kens: yes. I'm fairly sure that's the return flight the "normal" site listed for me first thing this morning.....12:24.10 
kens :-)12:24.17 
  There doesn't seem to be a lot to choose between them12:24.34 
chrisl Not so much a search, more a lottery........12:24.43 
Robin_Watts Let's have a look at the seat plan for the united flights...12:25.10 
qwebirc563292 thanks for the advice12:25.15 
kens UNless you want to fly out early Sunday and get in late Sunday in which case BA/American is the way to go12:25.18 
chrisl Not that keen on AA....12:26.01 
Robin_Watts united is 3x3x3 across rather than 3x4x3 on VA.12:26.11 
kens Then United and Virgin are very simmilar all round12:26.17 
  Robin_Watts : not that bothered by the airframe config12:26.31 
  I wouldn't take a middle seat anyway12:26.40 
  OK I'm going to take the Virgin flight, I can get a better deal with extra legroom from them than from United.12:27.33 
Robin_Watts kens: indeed, but I still prefer 3 in the middle, I think. More chance of a spare seat/less disruption by my calculations.12:27.39 
kens It doesn't matter if we take different flights this time anyway12:27.59 
Robin_Watts indeed.12:28.05 
chrisl I'm thinking VA, as the in-flight ents tend to be better......12:28.53 
kens Hmm I oculd upgrade to premium on the way back for £176, now that's actually quite tempting12:29.00 
Robin_Watts I'll go with the majority, I think.12:29.25 
chrisl Having said that, if the VA asks me if I need to "chat" once more, I might change my mind!12:29.52 
kens thinks Sunday will be busy and goes for the premium upgrade12:29.56 
Robin_Watts If I spend miles I can get E out, and PE back for 825.12:32.08 
kens Sounds good also12:32.26 
qwebirc563292 I'm from Russia and bad speak english...12:33.01 
kens SO that's £60 and how many miles ?12:33.04 
  qwebirc563292 : don't worry just ask your question12:33.20 
Robin_Watts not sure.12:33.25 
kens Robin_Watts : no worries12:33.33 
Robin_Watts 4750 maybe?12:34.13 
kens Yeah looks likely,something like that anyway12:34.39 
mattchz robin: thanks12:36.26 
purn I have seen the pdf_new_pdf_device function12:36.53 
kens Sigh, and Visa have rejected my card, again....12:37.05 
purn Robin_Watts:I have seen the pdf_new_pdf_device function12:37.55 
  If I want to include a image............ how can I do this?12:38.26 
mattchz where are you guys meeting up this time?12:41.01 
kens Chicago in October12:41.12 
  December will be in London12:41.23 
mattchz nice12:41.36 
chrisl Ugh, "seatmap not available" - too early?12:41.54 
Robin_Watts chrisl: 60 days.12:42.01 
chrisl Ah12:42.15 
Robin_Watts purn: Right, sorry, was busy.12:42.27 
  So, you create a new device with pdf_new_pdf_device.12:42.37 
  You can then call one of the fz_device functions on that device.12:42.50 
  I suspect fz_fill_image(device, ....);12:43.46 
purn Bassically I want to create a Seal Stamp Annotation.................12:44.36 
  using these function12:44.45 
  How is it possible?12:45.01 
Robin_Watts purn: I've said before that you're on the bleeding edge of what MuPDF supports.12:45.26 
  jogux: So, after our conversation yesterday, it became clear to me that I perhaps wasn't understanding Edr styles as well as I should.12:49.55 
  I've gone away and done some digging. Am I right in thinking that we can define style rules with selectors 'a' 'b' and 'c', and they will only apply to things that have 'a', 'b' and 'c' set?12:51.26 
  and that if there is another rule with selector 'a', something with selectors 'a' 'b' and 'c' will get the rule 'a' applied, then the 'a' 'b' 'c' rule ?12:52.06 
jogux I thought 'a' 'b' 'c' might mean c within b within a, but otherwise: yes.12:53.17 
  I actually have a edr_dump for a pptx in front of me now, so can say more helpful things :)12:55.42 
  eg. this in the edr dump:12:55.54 
Robin_Watts Ok, so this is all sounding a bit more sensible.12:56.01 
jogux MasterID-2147483649 TxTitle TxLevel-1: 12:56.05 
  Display = Block,12:56.06 
  FontWeight = Normal,12:56.06 
  that rule applies to a group with style TxLevel-1 inside a group with style TxTitle inside a group with withMasterId-whatever 12:56.25 
Robin_Watts How many stylesheets in your file ?12:57.05 
  See Art5.pptx in my homedir for a cut down file.12:59.44 
  and Artifex2014.pptx for the original12:59.54 
jogux robin: 3 stylesheets I think13:00.41 
Robin_Watts Now, for me, looking at stylesheet 0 (from Art5.pptx), I have:13:01.20 
  TxLevel-{1,2,3,4,5,6,7,8,9}13:01.34 
  plus some others.13:01.47 
  those come, I believe, from the presentation.xml13:02.12 
  The problem we're seeing is that the text in slide1 is supposed to be in TxLevel-3, of a placeholder slide.13:03.22 
purn ok........+Robin_Watt13:03.32 
Robin_Watts s/slide/style/13:03.34 
purn So, in case of Seal Stamp annotation I have write our own function13:04.21 
Robin_Watts purn: Certainly you're going to have to write some code, yes.13:04.40 
  You might be able to leverage the existing functions, including the ones I have pointed you at, to do the heavy lifting.13:05.33 
purn TO create Fill Polygon I have already write a function using pdf_new_pdf_device function........ which is working properly13:06.54 
jogux robin_watts: right, I have (hopefully) the same edr dump in front of me now.13:07.01 
rayjj morning, all13:07.09 
Robin_Watts Possibly we should define the presentation styles as being 'non-placeholder' ones.13:07.16 
  and then we can avoid the placeholder content inadvertently inheriting from the non-placeholders.13:08.01 
purn But, in case of Seal stamp Annotation some circle information have to include within the BBA info of AP part13:08.42 
  THat is difficalt one13:08.54 
Robin_Watts purn: What circle info? and what is BBA ?13:09.24 
rayjj I'm in CDT (UTC-5:00) now, so I'll probably be around earlier13:09.50 
Robin_Watts Morning rayjj13:10.28 
purn BBA is one kind of Xobject, which have to declear in AP info......13:10.47 
kens Hi rayjj13:10.56 
purn THis BBA information is't clearly explained in pdf 1.7 reference documentation13:11.40 
kens I can find no reference to BBA anywhere in the PDF 1.7 reference13:11.55 
qwebirc563292 Hi rayjj13:12.05 
purn How to create this BBA Xobject and how to handle this object13:12.07 
kens purn no idea what you mean by a 'BBA Xobject'13:12.24 
  Do you mean the Apperance stream ? That's an XObject13:12.57 
jogux robin_watts: I'm not sure I'm understanding which styles should/shouldn't be applied to it yet13:13.31 
purn 5 0 obj<</Type/Page/Parent 4 0 R/MediaBox[0 0 612 792]/Contents[25 0 R 24 0 R 19 0 R]/Resources<</ProcSet[/PDF]/XObject<</BBA 10 0 R>>>>/Annots 15 0 R/ArtBox[3.663142 419.7082 280.9106 697.0551]>>13:13.50 
Robin_Watts jogux: It's poorly defined in the spec, but as far as I can work out...13:14.06 
kens purn BBA isn't a 'type' of anything, its a name.13:14.17 
  Liek /Helvetica is the name of a font13:14.31 
Robin_Watts We have a presentation.xml that is the top level xml.13:14.37 
  That can contain definitions of styles.13:14.46 
purn But each Seal Stamp annptation use this BBA13:14.53 
Robin_Watts These are normal styles.13:15.09 
kens purn its just a name13:15.11 
  The ProcSET says that /BBA is the name of an XObject13:15.29 
Robin_Watts Then, every slide has a 'master' slide, and a 'layout' slide.13:15.34 
kens And when you encoutner that name, you should use the object whose number is 10 and generation is 013:15.47 
Robin_Watts These master slides can define more styles, as can the layout ones.13:15.50 
purn So, we can repalce this BBA with any word like "PURN"13:15.52 
kens purn yes you could do that.13:15.59 
Robin_Watts Those styles are defined by being applied to 'placeholders'.13:16.15 
  In the actual slide1.xml definitions, shapes are defined that actually get displayed.13:16.45 
purn So, BBA is the name of Xobject?13:16.59 
Robin_Watts These shapes can optionally be tagged as being 'placeholder' ones.13:17.10 
kens Yes. you coul use "/BBA Do" to draw the XObject13:17.35 
Robin_Watts If they are tagged as being placeholder ones, then they should inherit from slideLayout and slideMaster, but not from presentation.xml13:17.36 
  If they are not tagged as being placeholder ones, they should inherit from presentation.xml alone.13:17.59 
kens In fact I woudl assume that somewhere in the page stream there is a line like "/BBA Do"13:18.11 
Robin_Watts The problem we have in SOT is that the content is tagged as being a placeholder, but it's inheriting from presentation.xml13:18.46 
purn yes, in the stream part of AP............ there exist "/BBA Do"13:18.55 
Robin_Watts jogux: The boss is calling me for lunch, sorry...13:18.58 
kens purn there you are then13:19.04 
Robin_Watts purn: So, it just so happens that in the files you are looking at the stamp definitions are defined by using a subsidiary XObject called BBA.13:19.35 
  You don't need to create that.13:19.47 
  It would be perfectly valid to have a stamp annotation with no such XObject.13:20.08 
  back in a bit.13:20.19 
purn ok.........13:20.44 
  So, If we just create the AP and then call the pdf_set_annot_appearence function................. then is it working porperly?13:22.45 
kens purn I cna't help you with MuPDF. But I would assume that if you have a self-contained appearance stream, then yes13:23.16 
purn self-contained appearance stream ---------- means?13:23.39 
kens One that doesn't reference externalobjects (like Xobjects)13:24.02 
purn So, if I create the AP portion properly and the call pdf_set_annot_appearence function........ we think that it will be working properly13:25.15 
kens I would assume so, I'm not a MuPDF developer13:25.38 
jogux robin_watts: so your question is "how can I stop this group idx=79 using styles from stylesheet 0"?13:26.46 
purn So, now I am tring to do this........ 13:26.47 
  thankx in advance for help13:27.15 
  I will be back tomorrow13:27.49 
jogux robin_Watts: urgh. so layout has specific code for doing random stuff if it finds style rules with particular names :-S13:33.31 
paulgardiner pedro_pc: I rebuilt using com.picsel.smartofficegd and still Good Share is offering me nothing other than Open in as a way to communicate with SOG13:46.47 
pedro_pc is your iOS package name com.picsel.smartoffice2gd?13:52.16 
  (the Good ApplciationID is com.picsel.smartofficegd for SOG_DEV, but the iOS packagename is com.picsel.smartoffice2gd)13:53.22 
pedro_pc is guessing that may be the problem, as it may be overriden by the marketplace iOS app now that it has been reinstated13:54.48 
  basically both the marketplace app and the SOG_DEV have the same iOS packagename13:56.49 
paulgardiner jogux: 6b6e7e25's changes to iphone_postlink.py looks to have a side effect of making ALIEN_IPHONE_RELEASE disable some of the GOOD_DYNAMICS specific set up, yet we have ALIEN_IPHONE_RELEASE option used in the appstore_ios_gd release config13:58.40 
jogux looks13:59.03 
paulgardiner I'm not sure what the correct fix is. I'm not exactly sure what ALIEN_IPHONE_RELEASE does to be honest13:59.46 
jogux that was a fix up for 6ac5b5a9dae9e34093969206909cc6757cd2fd8d14:00.36 
pedro_pc paulgardiner> I suggest I change the SOG_DEV iOS packagename to com.picsel.smartofficegd to match what you have built and to avoid clashing with the marketplace app (if that's actually the issue)14:00.49 
  sound ok?14:00.53 
paulgardiner pedro_pc: I've confirmed that, even using the GD bundle id for which all the services are defined doesn't provoke Good Share into offereing anything new14:01.09 
  pedro_pc: I'm confused. I thought that was the packagename for SOG_DEV14:02.19 
pedro_pc the Good applicationID is com.picsel.smartofficegd14:02.50 
  the iOS bundleID is com.picsel.smartoffice2gd14:03.07 
jogux paulgardiner: okay, yes, that's broken good :(14:03.31 
  paulgardiner: I suspect move the if 'ALIEN_IPHONE_RELEASE' test from the start of both if chains to the end might fix it?14:04.20 
paulgardiner jogux: I just left out ALIEN_IPHONE_RELEASE from the build and it seemed fine, but I don't know if I should be doing that in general14:04.21 
jogux checks what that does14:04.30 
paulgardiner I grepped and found very few occurrences14:04.56 
  pedro_pc: Ah, I see. Didn't notice that. Yes. That sounds like a good idea14:05.36 
Robin_Watts jogux: idx=79, yes.14:06.15 
jogux paulgardiner: ALIEN_IPHONE_RELEASE makes it actually generate the IPAs :-)14:06.18 
Robin_Watts urgh. hardwired special cases?14:06.28 
  where are you seeing that?14:06.33 
jogux robin_watts: storePlaceholderText, libraries/edr/layout/drawing/layout-drawing.c14:07.17 
paulgardiner jogux: Yeah I read that somewhere but couldn't see how it did in the code14:07.26 
jogux paulgardiner: around like 825 of iphone_postlink.py14:08.00 
  s/like/line/14:08.12 
paulgardiner code blind14:08.18 
pedro_pc paulgardiner: that's the GC updated - guess you may need a new access key?14:08.20 
paulgardiner pedro_pc: no worries. I can sort that. It's be my thousandth today :-)14:09.09 
jogux paulgardiner: I think my suggested fix should work; ie. move the alien_iphone_release test down 10 or so lines to become the final elif14:09.22 
pedro_pc Robin_Watts: tbh I'm not clear whether we can properly fix the placeholder style hierarchy without translating the master & layout masters too, and referencin gthem during layout14:09.28 
mattchz paul/robin: would you mind taking a quick look at http://bugs.ghostscript.com/show_bug.cgi?id=693607 and letting me know if you think my comment makes sense?14:09.34 
paulgardiner jogux: ok good thanks14:09.38 
pedro_pc : may be just worrying too much though ;)14:09.40 
mattchz I think you mentioned that you’d already been through the nightmare with bitmap recycling14:09.50 
jogux pedro_pc: we /do/ translate the masters don't we?14:09.54 
pedro_pc the styles, iirc - not sure we actually have any structural entity do we?14:10.25 
jogux edr has a whole load of master page stuff in it anyway :)14:10.25 
  yeah, I believe we do.14:10.34 
paulgardiner mattchz: Makes sense to me14:10.50 
Robin_Watts pedro_pc: I vaguely thought that was what it was doing.14:11.02 
jogux pedro_pc: http://pastebin.com/bUfsiHjp etc14:11.23 
mattchz paulgardiner> did you find you were only able to resolve the problems you were having on more recent OSs?14:11.26 
Robin_Watts mattchz: I think we thought it had been fixed for all versions of android.14:12.03 
paulgardiner Yes and no. The testing was only on recent versions of Android, but the fix which was to no longer churn bitmaps should work for all versions14:12.59 
  There may be Android versions for which the screen doesn't update correctly but running out of bitmap memory shouldn't be a problem14:13.46 
pedro_pc ok, cool - in that case are we just having issues because we're putting non-unique style selectors into a single stylesheet?14:13.47 
Robin_Watts pedro_pc:, jogux: This is my full Edr dump + layout dump: http://pastebin.com/rWBHjLVn14:14.14 
  pedro_pc: I see 3 stylesheets.14:14.22 
pedro_pc looks at the pastebin rather than guessing at problmes ...14:15.10 
mattchz paulgardiner> so, is it PageViews that are no longer supposed to get recycled?14:15.56 
Robin_Watts The problem (in this case), AIUI, is that the styles defined in the slidelayout/slidemaster do NOT define font sizes.14:15.57 
mattchz sorry, I mean, chruned14:16.00 
paulgardiner PageViews were always supposed to be reused, but they used to reallocate their bitmaps14:17.12 
Robin_Watts but SOT is falling back from "MasterID-2147485618 TxBody TxLevel-3" in Stylesheet 2 to "TxLevel-3" in Stylesheet 0.14:17.20 
  so placeholder text, which is supposed to have the 'default' text size, is ending up with the larger than default text size given in the presentation.xml styles (which end up in stylesheet 0)14:18.00 
jogux I can't quite get my head around how to solve this.14:18.03 
Robin_Watts jogux: I am having trouble reading the Edr.14:18.42 
  From the fill list, how do we know which stylesheet is being used ?14:18.57 
jogux adding a !PlaceHolderID='1' to the style rules in spreadsheet 0 would presumably solve it for this case, but not the generic one.14:18.59 
  robin_Watts: all of them.14:19.03 
  all stylesheets are always used afaik14:19.13 
paulgardiner pedro_pc: well spotted, but still Good Share is offering me no other options than Open In. I've emailed Brad. I guess it could be I just don't know how to drive Good Share, but it seems obvious enough.14:19.27 
  I have to nip out quickly14:19.36 
  biab14:19.38 
jogux robin_watts: albeit I'm curious why your question contains 'from the fill list'.14:19.54 
  the fill list for this edr is empty/unset.14:20.19 
Robin_Watts jogux: Oh, I was reading the Edr wrong.14:20.45 
pedro_pc slide placeholders should always inherit from slideLayout placeholders, which inherit from slideMaster placeholders. I don't know why the presentation is also defining the TxLevel styles (unless that's intended as an explicit set of defaults)14:20.47 
Robin_Watts The presentation can define TxLevel styles. They are used for NON placeholder content only.14:21.29 
  http://apache-poi.1045710.n5.nabble.com/Need-Help-to-identify-the-default-text-style-properties-of-a-slide-in-PPT-td5020010.html14:21.45 
mattchz Hmm, I’m guessing PageViews *don’t* get reused across a rotation,14:21.54 
  though?14:21.56 
  which is where this problem is seen14:22.03 
paulgardiner Oh! Okay. That might well be a problem.14:22.38 
mattchz yeah, that seems to be what happens.14:23.20 
  ok, that makes sense then.14:23.54 
  I guess we can probably call Bitmap.reconfigure on a rotation14:24.36 
jogux robin_watts: was I correct that adding a !PlaceHolderID='1' to the style rules in spreadsheet 0 would presumably solve it for this case, but not the generic one. ?14:28.24 
  if so, more generically, we could set a IAmAPlaceHolder style onto applicable groups, and make spreadsheet 0 rules all have !IAmAPlaceHolder in there selectors.14:29.22 
Robin_Watts Yes, exactly.14:30.39 
  I wasn't aware we could have !IAmAPlaceHolder.14:30.50 
  I was thinking we'd need to add "NonPlaceHolder" to everything, but placeholder is neater.14:31.13 
jogux ok, I should check if I'm imagining that or not then :)14:31.28 
  oh, my brain is remembering that CSS has a ! format for selectors, meaning "this rule is important". I meant :not(). which I would bet good money epage doesn't support :(14:33.43 
  so your nonplaceholder thing sounds right probably, we'd have to be careful to only add it to final level groups.14:34.58 
pedro_pc can we fix it in the parsing, by putting a more specific selector on the slide placeholders?14:35.16 
jogux hits cmd-w with the wrong window focussed, again.14:35.35 
Robin_Watts jogux: While you were gone, pete said: can we fix it in the parsing, by putting a more specific selector on the slide placeholders?14:36.41 
  And we *could* solve it by having all the placeholders (and uses of the placeholders) use "TxLevel3-ph" or something14:37.26 
jogux so change TxLevel-3 to ... yeah.14:37.30 
Robin_Watts but I question whether that's neater.14:37.36 
jogux does that break saving?14:37.36 
  I'm not sure it's neater, but it sounds far less error prone.14:38.05 
  or simpler to explain/understand at least.14:38.24 
Robin_Watts I think "not a placeholder" is fairly simple to understand.14:38.43 
pedro_pc wouldn't think so, as their styling depend on whether or not they are placeholders, so we're just making soem implict behaviour more explicit afaics14:38.51 
Robin_Watts and it maps very nicely onto the presence/absence of an <a:ph> tab.14:39.08 
jogux hm.. we already use -ph in some places? eg. Group, idx = 9 type TxBody inline:(shared)0004 styles id='slide2147483648-ph-body14:40.06 
pedro_pc notes that GS IRC log is now one of the top google hits for presentation.xml TxLevel discussions ;)14:41.38 
jogux I reckon the -ph suffix would give better performance probably. but otherwise I'm not sure I'm strongly tied to either way.14:46.11 
  added extra tags to groups would [presumably] use more ram too.14:46.58 
Robin_Watts jogux, pedro_pc: So, the neatest solution to all this would be to use the :not thing, if epage supports it.15:03.02 
  I wonder how hard that would be to add.15:03.22 
  Failing that, the next neatest, we think is to use TxLevel-1-ph15:03.44 
  That requires extra work as we create the Edr (as we need to carry the knowledge of placeholder or not down a bit further in the parsing)15:04.24 
jogux I suspect :not is hard to add. but I can't get my head around what would be necessary.15:09.01 
Robin_Watts presumably, we have an Edr_doesThisStyleMatch function or something.15:09.50 
jogux it's sweet that you think CSS style selector logic fits in a function :-)15:10.40 
Robin_Watts chrisl: if you get sucked into a conference call, I recommenedhttp://www.telediscount.co.uk. 1p a minute to the states.15:10.40 
chrisl Robin_Watts: they usually call me - but I'm hoping to put them off. It would be a waste of time, really, at this stage15:11.20 
Robin_Watts stupid crashing MSVC.15:12.43 
mattchz interesting…so reflow is handled using a WebView?15:14.16 
Robin_Watts Yes.15:14.21 
  We convert to HTML.15:14.28 
mattchz ok, nice. that makes my life easier.15:14.38 
pedro_pc neat15:14.43 
chrisl I find the fetish for conference calls a bit annoying, anyway15:14.51 
Robin_Watts and then use a webview to display that, with some krufty stuff to resize fonts.15:14.57 
mattchz :-)15:15.06 
Robin_Watts Jogu: Edr_StyleRule_matchSelector :)15:15.22 
henrys chrisl: yeah if you can avoid the conference call that would be good. Best to have a written record of stuff for a lot of reasons.15:16.20 
chrisl henrys: when I do end up with no option, I *always* write a mail afterwards with a summary of my understanding of what was discussed - been burned that way before!15:17.15 
  This is more that, until I have enough of a frame of reference, it's pretty hard to really discuss things, especially on the phone15:18.21 
jogux robin_watts: I don't think that does it? Though I don't understand what that does :-)15:19.21 
  * Searches the rule for the given selector. Returns false if no match15:19.32 
  * is found, or the specificity of the rule doesn't match.15:19.32 
Robin_Watts jogux: Me either. I was just wondering what the hell specificity was.15:19.46 
jogux it's a css thing iirc15:19.54 
Robin_Watts I'm also pondering if :not(x) is really what we want.15:19.58 
jogux the function name is on the tip of my tongue; it's something like Edr_StyleContext_apply.15:20.54 
  Edr_Style_Context_create. that's the thing that does all the matching of selectors etc.15:21.59 
Robin_Watts jogux: hell if I can see how :(15:26.23 
jogux I know enough about it to not admit that I know any more than that.15:26.54 
Robin_Watts I'm going to hate myself for abandoning this way of working before I know it can't work, but... let's look at doing it the -ph way.15:28.36 
jogux robin_watts: the guts is in applySpecificityHelper I think.15:28.38 
  or maybe not15:29.37 
Robin_Watts That function is all greek to me.15:30.18 
chrisl Okay, note to self: when using memento to track down memory leaks, remember to rebuild the *memento* executable in order to recheck leaks......15:31.45 
  kens: I can't believe how many people seem to have been using psmono (psgray I vaguely get, but psmono......?)15:33.49 
kens chrisl I agree, I've no clue why anyone thought that was a good idea and I've no intention of supporting it15:34.18 
mvrhel_laptop morning15:41.27 
kens Hi mvrhel_laptop15:41.35 
mvrhel_laptop hi kens15:41.38 
mattchz paul/robin: hmm. I was planning on retaining the bitmaps (both the shared HQ and the page ones), and reconfiguring them.15:43.26 
  on rotation.15:43.31 
  But now, I’m not sure that’s such a good idea, as they may be in use by an asynctask?15:43.43 
mvrhel_laptop kens: so one minor issue with the v2 stuff15:44.04 
kens ?15:44.10 
mvrhel_laptop you will need to have access to the imager or graphic state15:44.21 
kens I think that's not likely to be a problem15:44.32 
Robin_Watts mattchz: Possibly. Paul is the guy that knows this stuff.15:44.41 
kens I think I need it whenever I mess with colour15:44.41 
mvrhel_laptop ok good15:45.12 
  this is due to the fact that we will be using the ICC profile cache15:45.29 
kens To be honest its something pdfwrite passes around a *lot*15:45.33 
mvrhel_laptop great15:45.37 
mattchz Robin_Watts: ah, right, ta. I think he’s afk for now?15:46.08 
paulgardiner mattchz: My guess would be that a reconfigure would be pretty harmless to any background tasks (famous last words)15:46.40 
Robin_Watts paulgardiner: Eh?15:46.52 
mattchz presumably it would be bad if another asynctask ended up also writing to the background task15:47.06 
Robin_Watts Suppose you have a background task rendering into the bitmaps...15:47.07 
mattchz s/background task/bitmap/15:47.16 
Robin_Watts On a rotation, the bitmaps have to change shape, right?15:47.41 
  from XxY to YxX ?15:47.47 
mattchz yes.15:47.51 
Robin_Watts Can we 'reconfigure' a bitmap like that? Surely you have to free/recreate ?15:48.07 
mattchz http://developer.android.com/reference/android/graphics/Bitmap.html#reconfigure%28int,%20int,%20android.graphics.Bitmap.Config%2915:48.27 
paulgardiner I assumed that is what mattchz meant by reconfigure15:48.34 
  ... same memory different aspect ratio15:48.50 
Robin_Watts right.15:48.56 
mattchz yeah. I’m not sure how that would work with stride15:49.00 
Robin_Watts Wasn't aware that was around, and yes, stride.15:49.12 
mattchz but, two threads writing to the bitmap would be bad anyway - corruption15:49.27 
paulgardiner Ooo! API Level 19. That will lose us some devices15:49.39 
mattchz oh, bah.15:49.47 
  I hadn’t noticed that either.15:49.53 
  :(15:49.55 
paulgardiner mattchz: I think it's arranged to perform the rendering always on the same thread15:50.06 
mattchz actually, in some Android versions, AsyncTasks all run on the same thread.15:50.28 
paulgardiner I have recollection of actually setting parameters to assure it15:50.55 
jogux refrains from comment about android fragmentation. cos other wise I'd say something like "you mean the compatibility library doesn't solve this?". oops.15:50.59 
paulgardiner ensure (something like that)15:51.07 
mattchz jogux> yeah, it sucks.15:51.51 
  then again, you shouldn’t make assumptions about how the API works anyway.15:52.12 
jogux it was more the reconfigure thing that triggered me to get snidey tbh :)15:52.31 
paulgardiner Perhaps we should add the .get calls anyway and then not have to worry about strange interactions between different async tasks15:52.33 
mattchz what’s wrong with the reconfigure?15:52.45 
  get calls?15:52.57 
jogux matt: you can't use it because too many devices are on old crap versions of android :-)15:53.07 
paulgardiner mattchz: I think we include the source for a particular version of async task15:53.20 
mattchz jogu> that’s true. Then again, Apple “solve” this problem by just not supporting old hardware at all.15:53.41 
paulgardiner and I think in any case, I set some parameters somewhere to say what thread it ran on15:53.44 
mattchz paul> oh, right15:54.01 
  yeah.15:54.54 
  " * <p>When first introduced, AsyncTasks were executed serially on a single background15:54.55 
  * thread. Starting with {@link android.os.Build.VERSION_CODES#DONUT}, this was changed15:54.55 
  * to a pool of threads allowing multiple tasks to operate in parallel. Starting with15:54.57 
  * {@link android.os.Build.VERSION_CODES#HONEYCOMB}, tasks are executed on a single15:54.58 
  * thread to avoid common application errors caused by parallel execution.</p>"15:54.58 
jogux so. SO. they enabled alien_threads as the internal (soft) threads were crashing on ios6. I'm fairly certain the reason it's crashing it because it's not actually initialising the semaphore it uses. But I'm tempted to just delete all the code for soft thread support on iOS. [this came up because xcode6 threw a deprecated warning for the code.]15:55.04 
mattchz paul> ok, so perhaps the only solution is to only try reconfiguring the bitmap on API 19 devices15:56.36 
  which kinda defeats the point, as it’s likely the older devices that have less memory and thus trigger this problem :(15:56.53 
Robin_Watts So the underlying problem here is that when we rotate, we can sometimes fail to allocate the new bitmaps?15:57.24 
mattchz Looks like it from the stacktrace; I haven’t managed to reproduce it myself15:57.38 
  We can catch the exception.15:57.50 
Robin_Watts Is it possibly just that the old bitmaps are still being held onto, and so we can't spare the memory?15:58.03 
  perhaps by a currently running async task?15:58.15 
paulgardiner Maybe on old devices a recycle call is needed15:58.21 
mattchz it’s possibly that, or possibly the fact that on old OS’s the recycle call is asynchronous15:58.32 
Robin_Watts hence if we just waited a bit and retried we might be OK ?15:58.37 
mattchz it’s possible it would work.15:58.50 
paulgardiner So we already call recycle?15:59.03 
mattchz nope, not AFAIK15:59.17 
paulgardiner Calling .get on all asynctasks when we close down is sounding more and more sensible15:59.30 
mattchz How long can these tasks run? We ideally don’t want to block the UI threadby calling them during a rotation.15:59.51 
paulgardiner The reader has a method for running a function on each view15:59.52 
  ReaderView I mean16:00.07 
Robin_Watts We have a mechanism within MuPDF for killing renders that are taking too long (the "cookie")16:00.32 
mattchz Is that like a pal_thread_shutdown?16:01.23 
  i.e. flag?16:01.34 
Robin_Watts mattchz: Kinda.16:01.42 
  When we kick off a render run, we can pass in a pointer to an fz_cookie.16:02.06 
  That's a structure with various fields in.16:02.12 
  One of those fields is a "cancel" flag, and the render checks that flag occasionally.16:02.31 
  So if the caller sets that flag, the render exits fairly quickly.16:03.14 
  I think we must use that to cope with cancelling/restarting HQ renders.16:03.50 
mattchz ah, right.16:05.19 
  I wonder if this bitmap reconfigure thing is worth doing anyway for devices that support it, as it’ll reduce churn16:05.40 
Robin_Watts sounds plausible.16:06.14 
mattchz I’d say it’s probably not worthwhile, other than the fact I’ve already implemented some of it :)16:06.31 
Robin_Watts AIUI, in order to make it so you can call that function on the platform where it exists and not have it cause errors on other ones, you need to wrap it in a couple of layers of classes, right?16:07.53 
mattchz I think you can just use an if (SDK_INT > 19) type thing16:08.20 
  if it’s a new class you have to do the wrapping thing, I think.16:08.28 
Robin_Watts mattchz: The problem, AIUI, is that when the class is loaded, it resolves all the functions it calls.16:09.06 
mattchz yeah, we do that already16:09.14 
  (see copySelection in MuPDFPageView.java)16:09.27 
Robin_Watts ok.16:09.29 
mattchz (I was looking at that earlier, as I had to add a compiler annotation to stop Eclipse from complaining)16:09.48 
Robin_Watts I just had this memory of having to do something horrible before.16:09.49 
mattchz Yeah, I’ve done that in the past, and it’s horrid16:10.09 
paulgardiner I remember looking at the cancel flag and thinking it would be very difficult to use in the Android app. Can't remember the details now, but something to do with the threading and not being sure which render was being told to stop16:15.25 
Robin_Watts paulgardiner: Well, you'd need a cookie per async task, and a way of getting to them...16:16.54 
  With the .get that might be possible now?16:17.01 
mattchz The get() is called on the asynctask itself to get its result. It’s like join()16:18.05 
  but there’s nothing to stop us keeping a list of outstanding AsyncTasks16:18.22 
paulgardiner I think every AsyncTask is already held in a member of some class or other. The rendering ones are in PageView I think16:19.21 
  So sending a message to all PageViews could do it16:19.35 
  And ReaderView knows all the current PageViews16:20.03 
mattchz We possibly can do it when we reuse the PageView16:20.16 
  i.e. the code I’ve got so far preserves the adapter over a rotate16:20.36 
  and then the adapter’s code to reuse a pageview will do the bitmap reconfiguration. It could also stop the asynctask and create a new bitmap on older Androids16:21.42 
  hmm. no. we need to stop all the asynctasks first, because they use a shared HQ bitmap16:23.42 
  I think?16:23.53 
paulgardiner Maybe the adapter could tell the pageviews to reconfigure when it is handling one out to ReaderView and the pageviews reconfigure method could first stop the async tasks16:46.05 
  I may be misremembering some of how it works though16:46.23 
mattchz I think that’s what I was saying, but then I realised we had to stop all the asynctasks in advance I think, because they share a HQ bitmap?16:46.53 
  possibly.16:47.06 
Robin_Watts I thought the Async tasks were either drawing the fuzzy or drawing the hq.16:49.44 
paulgardiner There should be only one pageview using the hq bitmap and hence only one async task accessing it at any one time, although the current code might not be doing a great job of ensuring that16:49.45 
Robin_Watts as such the async tasks should only have 1 bitmap. What paul said.16:50.16 
jogux robin_watts: you're going to be okay with me replacing one generated file in the source tree with a much less evil generated file in the source tree, right? :-)16:54.26 
Robin_Watts jogux: Urm... probably. You make it sound like I shouldn't be ?16:54.53 
jogux I thought it was you that generally complained about generated things within the source tree?16:55.08 
paulgardiner Hmmm! We probably have to be very careful where we call AsyncTask.get because we'll stall the UI... well, unless we can get the cancel flag working whereupon it would return very quickly16:55.15 
Robin_Watts oh, right, yes.16:55.18 
  But changing one for another seems reasonable :)16:55.34 
jogux great, ta :-)16:55.41 
mattchz paul> yeah - that was what I was thinking earlier when I was talking about blocking the main ui thread16:55.45 
jogux [I did try and think of a non-generating into source tree solution, but they all seem far worse and don't fix the issue I'm trying to solve]16:56.10 
mattchz so much for not worrying about locks and threads, hehe ;)16:56.36 
paulgardiner mattchz: and if .get was safe to call from the UI thread, it might make sense to call it from the already existing method of PageView that sort of shuts it down (I think there is such a method).16:57.00 
kens OK off now, night all16:57.13 
mattchz yeah - releaseResources() :)16:57.15 
mattchz is slightly confused now, as my page views don’t seem to be getting reused on rotation anyway.16:57.40 
  oh, the cache of views is in the ReaderView, not in the adaptor (and it’s the adapter I’m preserving on rotation).16:58.46 
  ARRGH!16:58.48 
  ok, so this isn’t going to work, I guess.17:00.51 
paulgardiner_ Maybe a seperate bitmap store class would make sense, which everything else uses to obtain bitmaps.17:05.06 
Robin_Watts jogux, pedro_pc: This code has lots of logic in it for "get the txLevel I am at" etc.17:05.34 
mattchz paul> I wondered that, but wasn’t sure how decide when to evict them.17:05.55 
Robin_Watts all of which gets messed up by me adding TxLevel-1-ph etc.17:06.01 
tpw_rules i'm trying to make ghostscript go faster converting pdfs to postscript. this is for a limited print server and a pdf with one image and one line of text takes several minutes to convert17:06.14 
jogux robin_watts: darn :(17:06.21 
  robin_watts: does it get messed up less by the other ideas?17:06.31 
Robin_Watts Rather than forcing myself to redo all this, I am tempted to try the 3rd option, that of having a 'NotAPlaceholder' option.17:06.43 
  I suspect that I actually need both "Placeholder" and "NotAPlaceholder" selectors.17:07.06 
pedro_pc ...or by a slightly grubby getTxLevel() which knows how to handle TxLevel and Txlevel-ph ?17:07.12 
Robin_Watts pedro_pc: I've been playing with that kinda thing for a while.17:07.36 
  and it looks like it's not going to be a nicely self contained change.17:07.51 
henrys tpw_rules: if you think the test file is noticeably slower than say acrobat producing postscript report a bug at bugs.ghostscript.com17:07.55 
pedro_pc :(17:07.58 
  the curse of epage...17:08.06 
paulgardiner mattchz: I wasn't thinking of it as a cache so much. Just preload it with the 4 bitmaps that are needed and make that the thing passed across during a rotate17:08.23 
  Pageview already has a releaseBitmap method (although I'm not completey sure what it does). It could stop asynctasks and NULL the reference17:10.03 
  the reference to the bitmap17:10.15 
  It probably does that already17:10.22 
mattchz and that’s called in onDestroy(), so should happen on rotation.17:10.44 
jogux does a little dance. You can now open the xcode project file that's in the epage source tree in xcode. and you can edit it in xcode! and commit your changes without having to fiddle with the file in a text editor! [or one of them, at least]17:15.17 
mattchz jogux> have you found a way to edit all of the epage source in xcode?17:16.03 
  without building it as part of the alien?17:16.14 
  something like that would be handy for mupdf.17:16.35 
jogux you can edit it no problem, albeit you have to manually open the file.17:16.42 
mattchz yeah; that doesn’t help with searching the code base etc.17:16.56 
jogux the annoying thing (which I intend to prod at a little) is that you can't set breakpoints17:16.58 
  mattchz: ah. hm.17:17.18 
mattchz for mupdf, i’m currently using a separate editor for the core17:17.20 
jogux mattchz: will you could drag in all the source files, but not add them to the target17:17.29 
mattchz and a third editor for andorid ;)17:17.32 
jogux I thought about doing that for epage, but there's far too many files.17:17.39 
mattchz jogux> yeah, I wondered about that.17:17.42 
  yeah, and multiple implementations of the same file17:17.53 
jogux or, rather, it's far too difficult to figure out which files you do need. yeah.17:18.02 
  Robin did some clever stuff in visual studio, though I don't know if that lets you search across the stuff in the FBS too. possibly due to VS's browse file things?17:18.46 
Robin_Watts jogux: It does.17:18.58 
  Being able to search (and do 'goto definition') was the big motivator for me.17:19.24 
  mattchz: MuPDF builds from a native VS solution.17:19.49 
  But gs and epage do not. We have a solution for each that calls out to the underlying make build.17:20.10 
mattchz nod.17:20.36 
Robin_Watts We do however include all the files as entries in the solution so that we can search them.17:20.43 
mattchz I guess it wouldn’t be that hard to add a native xcode solution for mupdf.17:20.48 
  but more stuff to maintain17:20.58 
Robin_Watts I did have an xcode solution for either gs or mupdf that did the same thing.17:21.02 
  I think it may have been gs.17:21.12 
jogux robin_watts : oo. excellent. that gives me hope it's possible and worth spending time on then.17:21.38 
mattchz bah. cmd+w mistake17:21.40 
Robin_Watts and I haven't kept it up to date with xcode updating every week.17:21.42 
mattchz nod17:21.56 
Robin_Watts I hate and despise xcode.17:22.12 
pedro_pc right, I'm off home. Catch you later17:22.12 
mattchz I think I’m going to draw a class diagram.17:22.27 
jogux robin_watts: I mostly feel the same about VS17:22.31 
  I suspect it's mostly down to familiarity.17:22.37 
mattchz I mostly feel the same about whatever IDE I’ve just switched to using ;)17:22.48 
Robin_Watts For years people have developed a language about what stuff means; configurations/building/deploying/testing.17:23.00 
  And xcode just throws all that existing grammar out the window and does its own thing.17:23.19 
mattchz VS/eclipse/android studio are as bad17:23.41 
Robin_Watts I like VS. Can't comment on the rest.17:24.09 
  Which is why I bought VisualGDB.17:24.25 
mattchz I mean, in terms of all having different config languages17:24.27 
Robin_Watts It means I can debug linux and/or android stuff from within VisualStudio.17:24.51 
  mattchz: I don't mean the fact that they use something other than makefiles.17:25.27 
mattchz oh, you mean the defintion of stuff like ‘target’ etc17:26.17 
Robin_Watts exactly.17:26.22 
mattchz yeah, schemes/targets/configurations etc. confuse me17:27.39 
  then again, Xcode was based on Project Builder for Next, so not sure which came first ;)17:28.47 
Robin_Watts jogux: Can a group have more than one selector on it?17:30.52 
jogux I think so. looked like there were some groups like that in your edr dump17:31.14 
Robin_Watts oh, hmm. Each group can only have one type though.17:31.45 
jogux I'm sure it can have multiple somethings going by the debug output17:32.06 
  eg: Group, idx = 8 refcount = 1 type rect PlaceholderID='1' PlaceholderType='body' attr:(shared)0011 inline:(shared)0007 styles Shape id='2' manager=Drawing17:32.59 
  the platholderid='1' is just a string I think, ditto placeholdertype17:33.10 
  I'm just not sure what the terminology for them is17:33.16 
mattchz so, in summary, what do you think we should do?18:23.47 
  presumably we should have a stab at stopping and waiting for the async tasks18:24.04 
Robin_Watts waits for the logs to catch up to see what I missed.18:24.18 
mattchz despite the risk of locking up the UI?18:24.20 
  you’ve not missed anything, I think18:24.37 
Robin_Watts I think that waiting for the async tasks to catch up on a rotation is not unreasonable.18:24.58 
mattchz and in other cases where we reuse the page view?18:25.12 
Robin_Watts If we can cancel tasks, so much the better.18:25.21 
  what other cases do we reuse the page view?18:25.28 
  Changing to/from reflow ?18:25.36 
mattchz when a page goes off screen, I think18:25.37 
  we keep page n-1, n, and n+1, I believe18:25.55 
Robin_Watts We do.18:26.00 
mattchz and throw away everything else.18:26.02 
Robin_Watts We'd rather not flip a page and then cause a glitch in the ui.18:26.15 
mattchz mm18:26.23 
Robin_Watts If we can cancel async tasks, then that might not be too bad.18:26.48 
  why do we need to wait when we flip a page?18:27.00 
mattchz at the moment we are cancelling() them. we just don’t wait for them to finish.18:27.08 
Robin_Watts Surely the bitmap doesn't need reconfiguration in that case ?18:27.25 
mattchz ah, right. I was thinking about multiple tasks writing to the bitmap, but they’re all serialised, aren’t they.18:27.44 
Robin_Watts mattchz: We are cancelling them, but just not properly cancelling them?18:27.50 
  i.e. we do AsyncTask.cancel, but that doesn't poke the cookie etc ?18:28.10 
mattchz we call cancel(), which is not guaranteed to work, nor does it wait for the cancellation to actually happen, nor are we poking the cookie (I think)18:28.24 
  although Paul mentioned something abot problems with using cookies on Android18:28.47 
paulgardiner Just a quick thought. I'm not sure we need to stop Async tasks when we rotate, provided we ensure we don't display what's in the bitmap until we have performed the new render in the new orientation.18:31.34 
Robin_Watts On phones where the reconfigure is possible (and works), sure.18:32.04 
mattchz For other phones, we need to destroy the bitmap ASAP and recreate.18:32.17 
  or we could wait until the render has finished, and do it then.18:32.27 
Robin_Watts On phones where we can't reconfigure and we throw away the bitmap and make a new one we have to stop the async task.18:32.30 
paulgardiner Oh. I see. Yes18:32.31 
mattchz (btw, API 19 is KitKat, which is the very latest version :()18:32.45 
paulgardiner I haven't been following the conversation18:32.45 
  Right.18:32.55 
mattchz I guess we should forget about reconfiguration altogether18:33.31 
Robin_Watts mattchz: I think we should keep it in mind for future stuff, but at the moment, I'd guess we have to ensure we work well on all non kit-kat devices.18:34.20 
mattchz yep.18:34.27 
Robin_Watts i.e. if we come up with a solution for other devices that can be enhanced for kit-kat, then great18:34.40 
mattchz So, firstly, we should probably stop the async tasks properly, i.e. set the cookie, call cancel(), call get()18:34.52 
Robin_Watts mattchz: I would have thought that was something well worth looking at.18:35.10 
  because presumably that'll help in normal use too?18:35.30 
mattchz yes. although it’s potentially going to cause glitches.18:35.41 
paulgardiner Agreed, although using the cookie may be hard.18:35.43 
Robin_Watts paulgardiner: Why?18:35.53 
paulgardiner Robin_Watts: I can't remember exactly. But I looked at it before and it seemed difficult to ensure you stopped the correct render.18:36.26 
Robin_Watts If we are keeping the AsyncTask handles around, then keeping a cookie per Async task around doesn't seem like it should be much harder.18:36.30 
  As long as we only use each cookie for one async task there should be no confusion.18:36.57 
paulgardiner Maybe I didn't have them serialised at the time - or maybe I was entirely mistaken.18:37.06 
Robin_Watts If we can queue multiple async tasks for an HQ redraw or something, then it's a harder job, but the point of this is that we'd only have one HQ redraw async task outstanding, right?18:37.56 
  I think I have PH and NPH tags going in to my pptx Edr correctly. Woo Hoo!18:38.39 
mattchz I’ve no idea what that means, but well done :)18:38.52 
paulgardiner We do have multiple outstanding async tasks: the pages are independent.18:41.13 
  But maybe it's okay because we have them all on a single thread.18:41.30 
Robin_Watts paulgardiner: I mean that if we can cancel them now, we should end up with a maximum of 4, right?18:41.58 
  fuzzy for n-1, n, n+1 and hq for n18:42.27 
  or maybe not even that many.18:42.33 
paulgardiner Yes. I believe we already call cancel. We just don't use the cookie or wait18:43.12 
  Multiple cookies? Maybe that does it anyway. I thought I remembered its being a single global flag.18:44.31 
  Anyway, I'm sure mattchz can suss it out. I have to go.18:44.56 
mattchz np, thanks for your help!18:45.10 
  I’m heading soon, too.18:45.22 
Robin_Watts paulgardiner: How can it be a single global?18:47.02 
  Maybe that's the problem :)18:47.09 
Robin_Watts is being called for food too in a mo.18:47.29 
mattchz np, can discuss it tomorrow, if you’re not fed up of my stupid questions yet ;018:48.00 
  presumably it’s the cookie passed to fz_run_display_list() i want to frob?18:51.37 
  (it’s NULL currently)18:51.40 
  ah, it’s passed to a few methods.18:53.35 
  I think I can see what I need to do anyway, thanks18:55.30 
  g’night all18:57.23 
 Forward 1 day (to 2014/06/19)>>> 
ghostscript.com
Search: