| <<<Back 1 day (to 2014/07/02) | 2014/07/03 |
gadabout | i am new to ghostscript i got the gs914w.exe | 07:11.54 |
| is that all there is to it | 07:12.05 |
kens | What else were you expecting ? | 07:12.19 |
gadabout | cause it says all the sources but i am having problems | 07:12.28 |
kens | That's the installer, it does not contain source code, you need to pick up a source code archive if you want the source | 07:12.53 |
gadabout | oh ok what all can i use it for i am on a ms system | 07:14.02 |
kens | Seriously, if you don't know what its for, why did you download it ? | 07:14.32 |
gadabout | i was interested in the encapsulated post script and pdf viewer but i am not use to the code to view documents from people | 07:15.26 |
kens | OK GHostscript is a full PostScript and PDF interpreter and rendering engine (a RIP). You can use it to interpret and render PostScript (including Encapsulated PostScript) and PDF file, in addition there are some high level output devices included which can output to PostScript, EPS, PDF, PCL, PXL and XPS. It is *not* a viewer, though it can be used as such with teh display device, but it is not intended as such and owuld be comparatively crude. | 07:17.19 |
| You can use GSview instead, thich is a viewer application and uses Ghostscript to render the input. | 07:18.04 |
gadabout | thank you for the interpretation i was confused in the understanding of it than i just need to learn how to use the ghostscript interpret and render so i can use it for my devices | 07:19.33 |
kens | If you want to use Ghotscript to perform rendering for another application you will have to abide by the AGPL. Assuming this isn't a problem then yes, you can use Ghostscript to render PostScript and PDF to a bitmap, which you can further use in an appliaction | 07:20.53 |
gadabout | thank you kens you are very informative i have been trying to understand this for awhile | 07:23.19 |
kens | No problem | 07:23.29 |
gadabout | what are the most common uses people use ghostscipt nowadays | 07:23.58 |
kens | Umm, that probably depends what you consider to be 'common'. GHostscript is included in every Linux distribution where it is usually part of the CUPS printing system. It is used by gsview, hwich is a PostScript/PDF viewer, evince uses it for PostScript. I've just beenreading a Stack Overflow report which indicate4s its used in the 'R' environment. In addition its commonly used by people doing 'print to PDF' solutions, particular | 07:26.55 |
| ly on Windows. Its sold commercially as a PostScript interpreter and can be found in desktop printers. | 07:26.55 |
| There are probably other uses we don't even know about, since its a AGPL open-source application | 07:27.24 |
gadabout | thats what i was looking for i was trying to see the uses it plays in an ms system since in linux it is a basic program but for ms it only has a few applications that i can make possible | 07:29.40 |
kens | That depends what you want to do with PostScript. On Linux its there as part of the print system, which is not required for Windows. However, for a 'print to PDF' solution on Windows you do require somethign like Ghostscript, and it is part of the printing system, so in that sense it is like CUPS. All the other applications are as applicapble on Windows as on Linux. | 07:31.15 |
gadabout | well what got me looking into it was i was on irc in the 90s and just recently got back on and was looking for a good client and i ran in ghostscript thinking it was an irc client | 07:33.35 |
kens | Ah, no it doesn't do that :-) I'm using Miranda as an IRC client, some of my colleagues use Chatzilla and are happy with that. | 07:34.15 |
gadabout | i didnt know if there was a certain one for people on freenode that was preferred and i wasnt sure if irc was still the preferred program | 07:34.31 |
kens | There's no 'preferred' client as far as I'm aware, anything that talks IRC will do. | 07:35.03 |
gadabout | i was just looking for something that had some features and was useful for the times | 07:35.53 |
kens | Like I said, I use Miranda, others use Chatzilla, there's also mIRC, whatever you find that you like really. | 07:36.40 |
gadabout | i know when i was on back then i would just try scripting it out but i dont have all that time for a new one and wanted one with something useful | 07:36.41 |
| miranda a script or an addon on | 07:40.06 |
kens | miranda is an application, | 07:40.19 |
gadabout | i was searching it now and it shows a mbot | 07:40.24 |
kens | Its a chat client, supports several different kinds of chat protocols | 07:40.49 |
gadabout | i found it and looked up chatzilla that one is more of an addon to browsers | 07:46.05 |
pedro_mac | hi folks | 07:49.02 |
chrisl | good morning | 07:49.50 |
jogux | morning all | 07:53.22 |
kens | Morning pedro_mac, jogux | 07:58.58 |
| Hmm, can't connect to peeves :-( | 08:09.08 |
| And teh dashboard says peeves and peeved are both down, rats | 08:09.40 |
chrisl | Didn't they go down a while back, and probably won't be back until Ray is back from vacation | 08:12.28 |
kens | peeves was OK till about 10 minutes ago | 08:12.43 |
| Got 8 of the 9 files I wanted off it | 08:13.00 |
chrisl | Oh, well, I can't connect either | 08:13.04 |
| Can't you use the test file downloader on the regression dashboard? | 08:13.26 |
kens | Its a fuzzing file | 08:13.35 |
chrisl | Yes | 08:13.42 |
kens | Hmm, well I suppose I can try...... | 08:13.51 |
| crazy filenames though, I'll see if I can cut/paste it | 08:14.09 |
chrisl | Yeh, you'll need some of the path, and there's probably no type extension | 08:14.48 |
kens | THere is a type extension, but its buried in a sub-folder under fuzzing | 08:15.15 |
| I'm not sure I can recall the whole path | 08:15.25 |
chrisl | Get it from the bug | 08:15.54 |
kens | I'm trying, first i HAVE TO DOWNLOAD THE LOG FILE | 08:16.14 |
| oops caps lock | 08:16.19 |
| OK looks like I found it | 08:16.51 |
jogux | right. I'm now pretty certain thathttp://www.picsel.com is NOT hosted at fasthosts, which is why changing the site of fasthosts does not work. | 08:17.31 |
| I did always think it odd that fasthosts would be hosting stuff at bytemark. | 08:18.14 |
kens | Why did we think it was hosted at fasthosts ? | 08:18.20 |
jogux | because I asked ron "is it hosted at fasthosts" and he said yes :-S | 08:18.33 |
kens | Ah, well I suppose that was reasonable | 08:18.44 |
jogux | I wonder if I need to go back to Miah, I suspect it may be on his hosting and I don't know if anyone has a login for it. | 08:19.20 |
chrisl | jogux: doing a lookup, picsel.com is hosted by vh03.darksilence.net | 08:23.01 |
| I mean hosted on...... | 08:23.25 |
jogux | ah, bah, I did a whois, didn't think to check dns :-) | 08:23.27 |
| thanks chrisl | 08:23.38 |
chrisl | The actual hosting is done by BYTEMARK COMPUTER CONSULTING LTD | 08:23.52 |
jogux | yeah, that bit I got. bytemark is actually run by a guy I know from ages back :) | 08:24.24 |
pedro_mac | site template looks like itâs drupal | 08:24.36 |
jogux | I think I'll need to go back to mace then, ron said he didn't have any other passwords, unless Robin_Watts or so do. | 08:24.39 |
chrisl | In York...... interesting.... | 08:24.47 |
jogux | pedro_mac : the main site is expression engine, the user guides are a malcolms wrapper around smarty | 08:25.04 |
| chrisl : yeah. I presume stuff is cheaper up there, bit odd not hosting in telehouse though :) | 08:25.44 |
| they do stupendously well though | 08:25.59 |
pedro_mac | funky - EE has a smarty-like template language too | 08:26.05 |
chrisl | jogux: just interesting as I used to live in York... | 08:26.15 |
jogux | chrisl : ah :) | 08:26.20 |
chrisl | jogux: FWIW, if the worst comes to the worst, I'll be in York next month, I can go in and threaten violence ;-) | 08:27.43 |
jogux | hehe | 08:28.46 |
| I suspect I just need to get hold of Miah :) | 08:28.56 |
chrisl | From what you say, there might be issues with moving the hosting to the current GoDaddy host - don't *think* we have full Unix shell hosting, there | 08:30.33 |
jogux | ah right | 08:31.45 |
chrisl | It's probably just a question of upgrading the type of hosting we have, but it's something to note | 08:32.17 |
jogux | drops Miah an sms. | 08:32.35 |
| chrisl : yeah, I'll leave that to Ron (although he doesn't really know unix, so may need a bit of help). | 08:33.05 |
| all we want to do right now is change an image and one line of text :) | 08:33.21 |
chrisl | I *think* the GoDaddy is on Robin's card | 08:33.35 |
jogux | what a tangled web we weave | 08:33.57 |
Robin_Watts | yeah, I have godaddy log in details. | 08:34.16 |
jogux | miah reckons Ron does have the login for the hosting. but he's going to send it to me anyway. | 08:34.17 |
| I'm wondering if we need an IT section on the wiki, this is pretty ridiculous :-S | 08:34.46 |
pedro_mac | boggles the fact that theyâd use a CMS and not use the frontend admin for stuff like that | 08:35.06 |
jogux | pedro_mac : the manuals aren't CMSed; they're all templated in a special way so that all the different variants (ios/android/blackberry/blahblahblah phone / tablet / whatever) are all generated from a single source doc (aiui) | 08:35.57 |
| it's essentially a completely seperate site from the main picsel website | 08:36.21 |
pedro_mac | ok, put another way, I boggle the fact that the website is doing that, rather than using some in-house tools being run on the source docs when the manuals change then generating the platform-specific docs and uploadign them to the website | 08:37.37 |
jogux | pedro_mac : yeah, that bit seems slightly odd. I'd have generated static pages too I think. | 08:38.52 |
paulgardiner | What's doing the instantiation of the templated version? | 08:42.48 |
| pedro_mac: I have a pete-sog branch in my repo. It's commits have the same effect as you branch just reordered a bit. I moved that part that you identified as part of the wrong commit and I've moved the general build changes to the start so that we might commit those to golden independently of the rest | 08:50.16 |
jogux | paulgardiner: it's generated on demand by some php when accessed (and then cached) | 08:50.24 |
| I believe, anyway. | 08:50.41 |
paulgardiner | So we just need to take on the php? Oh hang on, the problem isn't about moving it. It's about location the logo. Is that really that hard? | 08:51.21 |
pedro_mac | paulgardiner: cool. I have a few additional commits on the android-sog-gdauth branch to fix up some regular SO breakages too. | 08:51.43 |
paulgardiner | Oh right. When you push those, I'll take them on too. | 08:52.11 |
jogux | paulgardiner: this will not be hard once I can access the actual site :-) | 08:52.19 |
paulgardiner | jogux: right. :-) | 08:52.32 |
jogux | paulgardiner: the issue is more a lack of documentation about where things are. | 08:52.39 |
pedro_mac | paulgardiner: they should be there just now (pushed last night). Thereâs one oddity on startup in the regular SO (it fails to start as it thinks weâre trying to set content prior to requestFeatures() - Iâm looking at diffs between the branch and master just now | 08:55.09 |
paulgardiner | Is this a problem only on the branch? | 08:55.56 |
pedro_mac | paulgardiner: yes, master is fine | 08:56.08 |
paulgardiner | That's partly why I pushed the general changes to the front of the list of commits, so those can be tested on their own to see if they affect the regular SO. | 08:57.37 |
| You might be better taking on my branch | 08:57.47 |
pedro_mac | paulgardiner: yeah, that sounds like a plan | 08:58.46 |
paulgardiner | I haven't yet been able to reorder so that "Do package naming properly on android" is before all the GD specific stuff, but I'm working on it. | 09:00.02 |
| pedro_mac: might be an idea if I take on those extra commits of yours. Would you say they were fix ups of previous commits, cos I can role them into the previous ones if that's the case? | 09:03.21 |
| ? in the wrong place | 09:03.29 |
pedro_mac | paulgardiner: sure, that would be great - mostly added ifdef guards for Good/securefs | 09:04.30 |
paulgardiner | Right. Probably best not take on my branch yet then. I'll just fiddle a little more. | 09:05.14 |
pedro_mac | ok, cool - thanks. I âll probably be another hours or so finding/fixing this startup problem | 09:05.51 |
paulgardiner | Hmmm. Actually for that you might still be better using my branch because you can test at the point in the branch where only the non-Good-specific commits are applied. If the problem is still apparent there it would cut down the search | 09:08.54 |
| ... but whatever seems best to you... | 09:09.22 |
pedro_mac | paulgardiner: sure, may be worthwhile. I may well do that if the android_postlink and PicselViewer mods donât show anything obvious | 09:11.41 |
jogux | is trying to setup windows builds (so I can use Robin's solution thing). VS2010 install only seems to be offering me 64 bit compilers, is that going to work? | 09:16.02 |
jogux | tries it anyway :) | 09:16.39 |
pedro_mac | uses x86 | 09:16.45 |
| we should have access to both 64 and x86 on msdn | 09:17.06 |
paulgardiner | pedro_mac: so "Restore the internal library setup call previously done from the (async) Good auth method" is a fix up for "Switch back to the legacy Good authentication model for android"? If so I'll combine those. | 09:17.43 |
pedro_mac | paulgardiner: spot on | 09:18.19 |
Robin_Watts | jogux: You will need x86 compilers, I think. | 09:24.53 |
paulgardiner | pedro_mac: "Make Good specific auth..." also a fixup for the same commit? | 09:24.54 |
Robin_Watts | ffs. So I tracked down what had been going wrong with my commit. | 09:25.12 |
pedro_mac | paulgardiner: yep, should be | 09:25.20 |
Robin_Watts | I'd forgotten to init a variable to 0. | 09:25.21 |
| It was working in the debug build, but not in the release. How to waste a day... | 09:25.33 |
jogux | robin_watts: oops :-( | 09:26.45 |
| valgrind or gcc should've picked that up really :-S | 09:27.07 |
Robin_Watts | jogux: Was passed as an address into another function, so they couldn't know. | 09:28.25 |
jogux | ah. :-( | 09:29.03 |
paulgardiner | pedro_mac: "Remove Good-specific code from the generated java app if we're not doing a Good build" - first hunk looks like a fixup for "Do package naming properly on android" - but not sure about the second hunk | 09:57.05 |
pedro_mac | looks | 09:57.41 |
| paulgardiner: your right about first hunk. second should really have been in âSwitch from using a GDLaunchActivityâ¦â | 10:00.14 |
paulgardiner | pedro_mac: great ta | 10:00.49 |
pedro_mac | git commit squashing is a pretty awesome feature | 10:02.21 |
paulgardiner | yeah. rebase -i is so handy | 10:04.42 |
| pedro_mac: just pushed my pete-sog branch again. Now has those latest commits worked in | 10:14.30 |
pedro_mac | paulgardiner: great - thanks. Just found that problem on startup (a setFullscreen() call which switched order with the activity onCreate() - its the other way round in the Good build. Go figure. | 10:15.53 |
paulgardiner | The one last reordering I'd like to do is to move "Do package naming properly on android" before all the GD-specific stuff, but that looks hard. I pushed it down past many of them | 10:15.57 |
mattchz | Anyone like to review my last two commits please? http://git.ghostscript.com/?p=user/matt/mupdf.git;a=summary | 10:16.23 |
pedro_mac | paulgardiner: yeah, just due to the fact it hits UE2ViewerApp? | 10:17.56 |
paulgardiner | pedro_mac: I'm wondering about having another go at getting new mode of Good Auth working: allowing multiple activities, but with a singleton ue2 context servicing them (perhaps just refusing new requests if busy) Does that make any sense, or am I misundertanding the problem? | 10:18.19 |
| pedro_mac: it's the android-postlink.py changes that I'm having most probs with for the reordering. | 10:19.00 |
pedro_mac | paulgardiner: mm, guess its a bit more fiddly. | 10:19.40 |
| paulgardiner: the singleton UE2 was what I was looking at doing, but it looked like a bit more work. I think it should be feasible too, but I dropped back to the old model as we really need to get this out (and if Good do anything about supporting singleTask then weâd have no work to do on it) | 10:21.26 |
paulgardiner | yeah true | 10:21.59 |
pedro_mac | the alien layer is already instanced, so it looked like primarily a rework of the activity and its current state (local variables) | 10:22.23 |
pedro_mac | has a patch (one of a few experiments) reworking the activity but its not complete | 10:22.57 |
| I reckoned the path of least resistance to get v1 out would be best and we can revisit this | 10:23.25 |
paulgardiner | Is there something I can read on how the two GD modes work? Or can you describe it briefly? | 10:23.43 |
pedro_mac | logically it shouldnât be too different to what youâve done for muPDF | 10:24.16 |
| paulgardiner: the androif update guide has most of it - Iâll get you a link | 10:24.40 |
| basically they used to advocate a separate auth activity in your app, and an Event Listener which would receive auth /policy notifications and store some state info, launch your activities etc | 10:25.36 |
| now they have moved (or starting advocating) a cleaner âstate modelâ and an interface which your activities can implement to handle all auth notifications in the activity class itself | 10:26.21 |
| this also removes the requirement to derive from com.good.gd.Activity... | 10:26.53 |
| its a much nicer implementation | 10:27.17 |
paulgardiner | And then what goes wrong when we try the new way? | 10:27.27 |
pedro_mac | they donât allow your activities to be singleTask - I got a good deal of it working, but you end up with a bunch of crashes where weâre calling alien layer functions with a null picselcontext | 10:28.31 |
| doing a singleton properly should sort that I believe | 10:28.51 |
| I had also been musing on running it as a service | 10:29.54 |
mattchz | jogux: that PDF you sent me the other day is encrypted | 10:29.59 |
pedro_mac | but then I returned to my senses | 10:30.08 |
jogux | mattchz: you say that like I have a clue what pdf I sent you or why :-) | 10:30.21 |
mattchz | no password, but has protection to prevent cânâp | 10:30.25 |
| the one you couldnât annotate | 10:30.30 |
jogux | ahh, right, gotcha. | 10:30.34 |
paulgardiner | pedro_mac: yeah that makes a lot of sense, but I guess quite a big change | 10:30.35 |
jogux | mattchz : that makes sense then. albeit perhaps it might be nice if the UI said that somewhere... but, meh :) | 10:30.53 |
mattchz | possibly we should show the button, but pop up a dialog explaining when it is tapped. | 10:31.23 |
| Iâll open a feature request | 10:32.06 |
paulgardiner | pedro_mac: "Do package naming properly on android" adds code to generate settings.json for the GD build. Is that specific to the updated SDK, or would that still be needed if it were applied before the SDK update? | 10:33.44 |
| pedro_mac: maybe that part is really a fixup for the SDK update | 10:34.41 |
pedro_mac | paulgardiner: hmm, yeah - thatâs part of the ânew methodâ - rather than having a separate auth activity call initialize(packagename, version) the individual activities call their own gdinitialise() which reads the package details from the settings.json file | 10:36.18 |
| (they also have debug log filtering in that file, which looks like it is honoured regardless of which auth method you use) | 10:36.57 |
paulgardiner | Ah right. I may be able to do that last bit of reordering then | 10:37.07 |
pedro_mac | so⦠I guess my answer is that we probably donât need it | 10:37.20 |
jogux | mattchz: do you have any more iOS fixes pending in the list / done? Just wondering if there should be another test flight build, or the existing build should be submitted to apple, or what :) | 10:37.22 |
mattchz | I need to look at a CBZ which was crashing it. | 10:38.22 |
| apart from that, I donât think there is anything. | 10:38.40 |
tor8 | mattchz: do you have a link to the CBZ that was crashing? | 10:51.53 |
mattchz | yeah. I think itâs actually a generic iOS issue. We donât catch the exception from fz_open_document | 10:52.12 |
| Iâm just trying to fix it, but Iâll get you the link. | 10:52.34 |
tor8 | mattchz: yeah, I think Robin spotted that. still wonder why the file doesn't open properly. | 10:52.39 |
mattchz | tor8: http://www.copperwood.com/pub/Elf%20Receiver%20Radio-Craft%20August%201936.cbz | 10:53.08 |
| seems to be problem with the zip. Iâve not really looked into it though. | 10:53.20 |
tor8 | mattchz: hm. that file works fine on desktop mupdf... | 10:54.31 |
mattchz_ | oh, hmm. it does appear to be corrupted. Truncated, I think. | 10:56.10 |
| So, false alarm. But Iâll fix the crash nayway | 10:56.23 |
mattchz | paulgardiner/robin_watts: there are three commits for review now at: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=summary | 11:05.09 |
| (no rush though) | 11:05.20 |
| With the most recent one, I wasnât sure if use of ivars (without fz_var()) was safe or not. | 11:05.56 |
| ah, ENOROBINWATTS | 11:06.07 |
paulgardiner | mattchz: Look fine, except you probably need fz_var(doc) and fz_var(self) in the second one. | 11:08.48 |
jogux | woohoo, I managed to update http://www.picsel.com/docs/user-guide/smart-office/en-gb/2.1/ios/tablet/introduction so it doesn't say (C) Picsel International (in administration)! | 11:09.00 |
mattchz | paulgardiner: ok, cool, Iâll change that. | 11:09.12 |
pedro_mac | jogux: cool :) | 11:10.49 |
tor8 | mattchz: fz_var(doc) | 11:11.00 |
| self doesn't change inside the try-block so doesn't need to be protected with fz_var | 11:11.14 |
mattchz | it does ;) | 11:11.28 |
| (change) | 11:11.35 |
| better? http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=598e69fb9f793fe1ca5be904d92e8e4da765cc76 | 11:11.53 |
tor8 | oh... you're changing the return value. nvm then! | 11:11.56 |
mattchz | nvm? | 11:12.16 |
tor8 | mattchz: LGTM | 11:12.17 |
| nevermind | 11:12.21 |
mattchz | ah :) | 11:12.23 |
| the original code did that too. | 11:12.26 |
| I just added another instance. | 11:12.36 |
tor8 | yeah. I'm still sleepy apparently :) | 11:12.37 |
mattchz | cool. | 11:12.38 |
| np :) | 11:12.43 |
| I would have put those in before, but I wasnât sure if the same applied to objective-C ivars. Not sure if they can be register based. | 11:13.02 |
tor8 | IIRC self is just like any other variable | 11:13.32 |
| given that you can turn a SEL into a function pointer to call directly with the self argument | 11:13.43 |
mattchz | Yeah, I guess for self, yeah. | 11:13.52 |
| For âdocâ, not sure. | 11:13.57 |
| I suspect doc gets resolved to self->doc | 11:14.25 |
tor8 | oh yeah, I missed that. my memories of objc are before apple added all these fancy features. | 11:14.57 |
| then I reckon we don't need the fz_var on the doc | 11:15.14 |
| but I'm not exactly confident | 11:15.31 |
mattchz | me neither. letâs leave it in then :) | 11:15.42 |
tor8 | I would prefer to know and do the right thing, otherwise everyone who comes across the code is going to be just as confused and afraid to change things. | 11:16.53 |
mattchz | yeah. I guess Robin will know. | 11:17.28 |
| (I already pushed it, Iâm afraid, but I can always change that in a later commit if it turns out not necessary) | 11:17.44 |
tor8 | mattchz: "references to instance variables are translated by the compiler to expressions that dereference the self pointer" found somewhere on the internet about ObjC and Blocks | 11:20.02 |
| I wonder if it uses a fixed 'self' or goes via the local variable self (i.e. does changing 'self' affect 'doc'?) | 11:20.28 |
mattchz | ah, okay, so what I expected. | 11:20.30 |
| good question :/ | 11:20.52 |
tor8 | I hate implicit voodoo like instance variables. I much preferred when you had to write 'self->doc' (if that was ever the case...), but I guess that's why so many C++ programmers prefix all instance variables with 'm' | 11:21.48 |
mattchz | obj-c is all implicit voodoo :-D | 11:22.16 |
tor8 | the newer flavors that overload '.' are insane | 11:22.30 |
mattchz | I like it | 11:22.35 |
| but I hated it at first. | 11:22.41 |
tor8 | self.view gets translated to [self view] and self.view = 5 into [self setView:5] | 11:22.53 |
jogux | gets intreged by the talk of changing self and looks | 11:22.58 |
tor8 | well, it's not really C anymore | 11:23.03 |
jogux | mattchz : If you're not using ARC, that code leaks ([self release] is missing) | 11:23.22 |
mattchz | ah, nice. I guess it already did before. | 11:23.39 |
| (old code nilled self too) | 11:23.50 |
jogux | nods | 11:23.54 |
tor8 | I doubt we're using ARC unless paul added it since he took over | 11:24.10 |
mattchz | tor8: weâre not. | 11:24.18 |
| I was wondering if we should turn it on. | 11:24.53 |
tor8 | or rewrite in Swift... ugh. | 11:25.18 |
mattchz | I wonder if calling [self release] is even safe | 11:25.50 |
| [self autorelease] would be safer. | 11:25.57 |
jogux | mattchz: self release is fine afaik | 11:26.13 |
tor8 | [self release] would free, but if you never touch self or any instance variables afterwards it should be fine | 11:26.40 |
mattchz | not explicitly, no. | 11:26.53 |
tor8 | but with the automatic reference counting that Blocks add, you never can be sure | 11:27.18 |
jogux | I don't see any reason for that block (I presume it's the one in dealloc we're talking about) to capture self. If it does you're well into undefined behaviour territory | 11:29.39 |
mattchz | which block? | 11:30.07 |
tor8 | there are no ^{} blocks in use here, so you should be safe. just talking about the general case. | 11:30.11 |
| the ^{} blocks add automatic reference counting, which can get you into trouble in destructors | 11:30.34 |
mattchz | there is a block at the start of the function, but thatâs just to wait for any async tasks (I assume) | 11:30.34 |
jogux | I have no idea what that block at the start of the function is for :-S | 11:31.08 |
mattchz | To wait for the async queue to drain, presumably. | 11:31.21 |
| (I puzzled at first too) | 11:31.27 |
Robin_Watts | back. | 11:31.58 |
tor8 | the block is to sync with the worker queue so we don't use the fz_context from multiple threads | 11:32.05 |
| dispatch_sync(queue, ^{}); | 11:32.16 |
jogux | tor8: ah, right :) | 11:32.18 |
Robin_Watts | if in doubt, use fz_var. The compiler might not need it, but people reading the code do :) | 11:32.18 |
tor8 | instance variables shouldn't be a doubt (like any pointer derefence writes) for fz_var though? | 11:33.12 |
Robin_Watts | tor8: Probably not, but the fact we are having this question suggests that it's clearer to the reader that it's safe if we add an fz_var. | 11:34.27 |
tor8 | I'd argue the opposite... by adding it here we're saying we are wrong elsewhere. | 11:35.08 |
| and just making the situation more confused | 11:35.16 |
jogux | I think I'd just avoid changing self within a block :-) | 11:35.49 |
mattchz | or not use fz_try() stuff in objective C code. | 11:38.31 |
Robin_Watts | mattchz: yeah. | 11:40.05 |
mattchz | shame though. | 11:40.26 |
Robin_Watts | That Obj-C exists? yes. | 11:40.37 |
mattchz | heh | 11:40.45 |
jogux | I meant I'd avoid changing self within a try() | 11:40.45 |
mattchz | itâs a shame we still have code the core in C :) | 11:40.54 |
| </controversial> | 11:41.03 |
paulgardiner | What did we decide on the app store releases of SO2? I've had test versions up for a few days now. Do we think they have had adequate testing? Or more to the point, do we think they're likely to get further testing if I wait any longer? :-) | 11:50.17 |
Robin_Watts | paulgardiner: I do not think more testing will be forthcoming unless you physically force people to test it. | 11:52.29 |
paulgardiner | And if I'm holding their finger and moving it on the device, that'll probably not lead to any testing I wouldn't have done myself. | 11:54.03 |
Alex90 | Hi and thx for the stack overflow answer (http://stackoverflow.com/questions/24532030/mupdf-get-every-image-coordinates-from-pdf-page). So until now i know that the fz_image block is added in the fz_text_fill_image_mask and from here on i will need those pointers mentioned in the answer ;)) if someone can help | 11:57.25 |
Robin_Watts | Alex90: Well, it should be a simple enough job to extend the fz_image_block structure to have an fz_matrix in it, and to assign *ctm into that in fz_text_fill_image_mask. | 12:00.07 |
tor8 | if all you want is image locations, you might be better off writing your own fz_device | 12:00.41 |
| and just fill in the image drawing functions, leave the others NULL | 12:00.58 |
Alex90 | hmm i would do that but i am not that good with c and the rendering was assigned because i had to much free time, I think i will try the solution from Robin_Watts but my question is after i have the matrix saved i aply that to the image or? | 12:03.32 |
Robin_Watts | Alex90: Do you understand matrices as used in 2d rendering? | 12:04.05 |
Alex90 | aa not that much, i kind of understend how they are used here from reading a lot of the code but that is preaty much it. | 12:05.04 |
Robin_Watts | conceptually the 6 elements in the fz matrix (a,b,c,d,e,f) are arranged into a 3x3 matrix as follows: | 12:05.31 |
| a b 0 | 12:05.34 |
| cd 0 | 12:05.39 |
| e f 1 | 12:05.41 |
| Then any given point (x,y) will be transformed by that matrix by doing a multiplication of (x y 1) by that matrix. | 12:06.18 |
Alex90 | i also now saw that the fz_image_block already has a fz_matrix in it | 12:06.33 |
Robin_Watts | so the image of x,y under the image transformation will be: x' = a*x + c*y + e y' = b*x + d*y + f | 12:07.32 |
| hence (0,0) (one corner of the image) will map to (e,f) | 12:07.48 |
| and (1,1) (the other corner of the image) will map to (a+c+e,b+d+f) | 12:08.20 |
| For images at a multiple of 90 degrees this will give you nice easy results. | 12:09.02 |
| For images at intermediate angles, it's harder, but all the information is there. | 12:09.16 |
Alex90 | aha ok then will put the explanation in a safe place and start going at it | 12:10.35 |
| and also i think it is ok to use the already existing matrix from fz_image_block_s | 12:11.14 |
Robin_Watts | Alex90: So there is. We don't actually seem to use it though :) | 12:11.25 |
| You need to set that matrix at the appropriate points. | 12:11.43 |
tor8 | yeah, we never set the matrix field | 12:12.28 |
Robin_Watts | tor8: That's clearly an omission on our part (probably my fault when I refactored all this) | 12:13.21 |
tor8 | Robin_Watts: have you seen http://bugs.ghostscript.com/show_bug.cgi?id=695321 | 12:17.42 |
Robin_Watts | tor8: yes, but I haven't had a chance to look into it yet. | 12:18.29 |
| I suspect he's right. | 12:19.04 |
tor8 | chrisl: have you had time to look over the metrics yet? | 12:38.12 |
| http://www.adobe.com/devnet/acrobat/wwdistiller.html has the PDF Core 14 font metrics. | 12:39.05 |
Robin_Watts | oh, thank god. | 12:46.11 |
| jogux, paulgardiner, pedro: A couple of commits on robin/master ready to go, please. | 12:46.43 |
| the spaces and the VS solution ones. | 12:46.49 |
paulgardiner | IF data is NULL you return EPAGE_NO_ERROR but *width is not assigned. | 12:55.51 |
| Don't know if that's a bad thing or not | 12:56.10 |
Robin_Watts | paulgardiner: Yes, that's deliberate. | 12:58.59 |
| It means the default value of width set by the calling code is preserved. | 12:59.13 |
| Font_findSpace is only expected to be called from one place (the getWidths function from the Spaces font). | 13:00.00 |
| but I had to code it like this to avoid making the entire contents of Font_Handle available to all the implementers of getWidths. | 13:00.36 |
paulgardiner | Can that loop fail to terminate if openFontsMask has top bit set? | 13:14.24 |
| Wonder if i < sizeof(openFontsMask)*8 might be better | 13:15.27 |
jogux | paulgardiner: Do we need to update the support link in the app, now we have a forum? or are we just going to update where the support link goes to so that it has a link to the forum? | 13:15.29 |
paulgardiner | jogux: I think we were intending to make the link redirect so as we don't have one more reason to delay release | 13:16.15 |
jogux | right. | 13:16.40 |
| oh, there was that support query about dropbox, Pete said he could reproduce it. | 13:17.00 |
| but maybe that's not a reason to hold up the release, so I'd tend to say lets get it submitted to Apple? | 13:17.20 |
paulgardiner | yeah. I reckon. I may look at that later today or tomorrow | 13:18.00 |
jogux | did someone try the android release? | 13:18.21 |
pedro_mac | hasnât tried iOS (if weâre talking about the dropbox save issue) | 13:18.31 |
| on android I managed to save a doc to dropbox if I wasnât already logged in. | 13:18.51 |
jogux | did someone other than me try the iOS release, so that I have someone to blame if it's broken, and vice versa? :) | 13:18.54 |
pedro_mac | once logged in, if I tried to save it failed in the way the OP described | 13:19.12 |
| whatâs our approach for the sos@artifex queries> | 13:20.13 |
| presume weâll direct to the forums first? | 13:20.32 |
paulgardiner | pedro_mac: I pushed another version of pete-sog. Now the first 7 commits are non-Good-specific. Do you think we should look at pushing those to golden? I tested a regular so build at that point in the branch. | 13:21.15 |
pedro_mac | paulgardiner: yes, I think its worth getting what we have committed - its at least at the point where we have a tested file-transfer implementation | 13:22.13 |
paulgardiner | Oh. I meant just the non-Good-specific stuff | 13:22.35 |
pedro_mac | sure - I was just keen to hold off until I knew the basic app worked | 13:23.06 |
mattchz | this âselfâ issue | 13:24.33 |
| oh, ignore me. | 13:24.48 |
paulgardiner | Only reticence I have about it is that I can build perfectly well without those fixes, so not sure why they are needed. | 13:25.48 |
| Different SDK/NDK versions maybe | 13:26.13 |
pedro_mac | the NDK stuff isnât about building successfully - its about bombing out when it fails (as it doesnât currently) - we can end up building an apk which has wrong/inconsistnet stuff in it | 13:27.24 |
paulgardiner | Yeah sorry I can see the need for that one | 13:27.53 |
pedro_mac | the AR change - I think there have been changes on master since it was done so possibly not needed now - havenât trawled through to find what changed though | 13:28.21 |
| gen-patch may be similar too | 13:28.34 |
paulgardiner | The response file one. That's one I can build without | 13:28.34 |
pedro_mac | Iâd say dump it then | 13:28.46 |
| is that a vs2010 build? | 13:28.53 |
paulgardiner | yeah 2010 | 13:29.09 |
| ... but if you've needed then maybe others will. | 13:29.29 |
| Actually it's only that one and the gen-patch one I'm questioning. The rest I can see why we need them | 13:30.20 |
| The gen-patch one I'm questioning only because I assume Robin_Watts at least has been running it under Windows without problem. | 13:30.55 |
| I'm leaning towards taking them anyway because they certainly don't add problems. | 13:32.03 |
| Forgot to target my feedback: | 13:33.12 |
| Robin_Watts: Can that loop fail to terminate if openFontsMask has top bit set? | 13:33.25 |
| Robin_Watts: Wonder if i < sizeof(openFontsMask)*8 might be better | 13:33.35 |
mattchz | robin_watts/paulgardiner/tor8/jogux> http://www.cocoawithlove.com/2009/04/what-does-it-mean-when-you-assign-super.html | 13:33.48 |
| Is interesting. | 13:33.50 |
| It implies that changing of self /will/ have an effect. | 13:34.01 |
| on ivar accesses | 13:34.13 |
| (and self is basically just a parameter to the function) | 13:34.56 |
| so, overall, I think: | 13:35.40 |
| we need fz_var(self) | 13:35.45 |
| we donât need fz_var(doc) | 13:35.49 |
| we should be releasing self before nilling it | 13:35.57 |
pedro_mac | paulgardiner: Iâm using android-ndk-r8e - possibly makes a difference (Iâm not sure I had seen issues with AR before on windows android builds) | 13:37.55 |
paulgardiner | No, I'm using r8e too. | 13:38.51 |
pedro_mac | Iâd be inclined to drop that one then | 13:39.19 |
paulgardiner | Yeah, can revisit it if it is needed. | 13:39.58 |
pedro_mac | nods | 13:40.14 |
paulgardiner | pedro_mac: what tests were you conducting that were showing up the problems in SOG? (I may look at this more while you are away) | 13:41.10 |
pedro_mac | paulgardiner: the issues with singleTask/singleTop? | 13:42.16 |
paulgardiner | Those for one, and the problems you are still seeing with the legacy version | 13:42.54 |
Robin_Watts | paulgardiner: back. | 13:43.05 |
| paulgardiner: I wondered about the loop termination thing too. | 13:43.14 |
| but I've basically copied exactly what all the other code uses. | 13:43.23 |
paulgardiner | Oh okay. Guess top bit is never set | 13:43.41 |
| And if it is a problem and we want to fix it, it would probably be best done later as a separate commit fixing all the cases | 13:44.50 |
pedro_mac | paulgardiner: the problems have all shown themselves switching in and out of the task - primarily via filetransfer testing with AppKinetics and GfE, but also switching from the PicselViewer activity to the home screen then back agian repeatedly | 13:45.06 |
paulgardiner | pedro_mac: okay thanks | 13:45.44 |
pedro_mac | the problems with the new authentication model look like they are exclusively own to mutli-instance invocation - null picsel context in various alien calls when we resume the app (pointerDown, timer mainly) | 13:46.32 |
| the problem with the old auth method (our current approach) is an assert in Pal_Thread_blockReschedules() where weâre trying to set the same blocking mode the thread is already in | 13:47.28 |
| that could possibly be benigng, but I think its more likely a case of us resuming the app in a state we dont expect to be in | 13:48.14 |
paulgardiner | yeah scary nasty stuff | 13:48.45 |
| Robin_Watts: what's nremain? | 13:49.35 |
Robin_Watts | nremain = number of glyphs remaining to be mapped. | 13:49.55 |
mattchz | jogux/tor8/robin_watts/paulgardiner: howâs this look> http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=0239617d6a57e7846d75a52948615a1cb8a6e56c | 13:50.07 |
Robin_Watts | You set it to the length initially (so 1 in the new code as we are passing in a single glyph) and if it finds that glyph in its set it maps it. | 13:50.38 |
paulgardiner | Yeah see it now | 13:50.46 |
Robin_Watts | and decrements nremain. | 13:50.47 |
jogux | mattchz: seems sane to me. | 13:50.55 |
tor8 | mattchz: LGTM | 13:51.08 |
mattchz | thx, | 13:51.19 |
tor8 | modulo the typo in the commit message :) | 13:51.22 |
mattchz | ah, dâoh. Iâll fix that | 13:51.39 |
paulgardiner | Robin_Watts: am I understanding right: this makes getWidths recursive, but only to one level? | 13:54.17 |
Robin_Watts | Yes. | 13:54.50 |
| essentially, when the getWidths for the 'spaces' font is called, if certain spaces are requested (figure space, punctuation space, ideograph space), we go looking for those sizes in all the other fonts. | 13:55.48 |
| (all the other fonts in the current fallback chain). | 13:56.00 |
paulgardiner | Right. | 13:56.13 |
Robin_Watts | A figure space is supposed to be the same width as a digit is, so we look up some digits. | 13:56.28 |
| a punctutation space is supposed to be the same width as '.' etc. | 13:56.43 |
paulgardiner | Ah. Got to where your comment says it's potentially recursive now. :-) | 13:58.39 |
| Can't see anything wrong. Nice solution. | 13:59.59 |
| Looking at the other now | 14:00.08 |
| Can rubber stamp the second. | 14:01.16 |
Robin_Watts | Ta. | 14:02.50 |
| jogux: Hmm. a pdf export of the getting-started document using the test shell looks fine to me :( | 14:04.16 |
jogux | robin_watts : urgh. that makes it more of a pain. :( | 14:04.33 |
| I hope it breaks in windows ue2fileviewer. | 14:04.44 |
Robin_Watts | will try that in a mo. | 14:05.03 |
paulgardiner | subsampling thing? | 14:13.35 |
jogux | paul: very possible, but unless it's massively scaled down it the source image must be well under 320 pixels wide :) | 14:14.04 |
Robin_Watts | Saving the original picture out of powerpoint gives me a 102x112 png. | 14:14.55 |
paulgardiner | It was the best image I could get hold of, and I did ask around | 14:15.05 |
jogux | right. so we *really* shouldn't be subsampling something that size :-) | 14:15.23 |
| (not that this leaves me any suggestions as to what on earth we are doing!) | 14:15.35 |
Robin_Watts | So how the hell is the PDF export giving me a PDF with a 100x110 image in it!? | 14:15.47 |
jogux | :-) | 14:16.41 |
chrisl | tor8: yes, I looked through the glyphs lists this morning - they seem fine, as best as I can tell | 14:20.39 |
Robin_Watts | jogux, paulgardiner, pedro_mac: The last commit on robin/master is good to go too. | 14:21.09 |
| It doesn't change the ATS precommit tests, which is why I was holding off on it. | 14:21.27 |
paulgardiner | LGTM | 14:23.00 |
pedro_mac | Robin_Watts: yup, seems like a sensible default to me | 14:23.47 |
Robin_Watts | pedro_mac, paulgardiner: Ta. | 14:31.20 |
mattchz | Thereâs a new ios MuPDF release on testflight, if people want to try and break it ;) | 14:34.08 |
| Interesting. | 14:37.46 |
| MuPDF seems to support the multiple document thing in Android L without any changes. | 14:37.56 |
jogux | mattchz: impressive. | 14:52.05 |
mattchz | at least, when launching from Gmail. Not when launching from Downloads. | 14:52.42 |
| (because with downloads the doc appears part of the Downloads task) | 14:52.56 |
Robin_Watts | ok, so the png in the actually pptx is 100x110. god knows what ppt is doing with it, but at least the version I am getting to save in the test shell is sane. | 14:56.49 |
| mattchz: I never doubted it would work for a second. | 14:57.00 |
mattchz | :) | 14:57.11 |
Robin_Watts | jogux: Do you have a copy of the crap exported pdf to hand? | 14:59.20 |
alexg | Hi, is there any hope that gs-9.15 comes out this summer? | 14:59.28 |
Robin_Watts | could you mail me it please? | 14:59.30 |
jogux | robin_watts: sure | 14:59.36 |
Robin_Watts | alexg: 9.15 is due out in september | 14:59.42 |
| We release in march and september each year. | 15:00.00 |
kens2 | (more or less ;-) | 15:00.07 |
alexg | Ah, great. Thanks, Robin! | 15:00.35 |
Robin_Watts | alexg: np. | 15:00.43 |
jogux | robin_watts: sent. | 15:01.48 |
Robin_Watts | jogux: Thanks. | 15:01.55 |
jogux | robin_watts: I may or may not have drawn all over it | 15:02.04 |
| iOS preview seems to think I haven't. mupdf thinks I have. :-( | 15:02.16 |
jogux | is fairly sure that's mupdf 1.5 too | 15:03.41 |
| it'd be nice if occasionally I could go near things without them breaking. | 15:04.08 |
mattchz | http://bugs.ghostscript.com/show_bug.cgi?id=695328 is interesting. | 15:10.49 |
| Iâd not heard of libhoudini before. | 15:10.56 |
| turns out itâs an emulator that lets you run ARM android binaries on x86 | 15:11.13 |
| http://commonsware.com/blog/2013/11/21/libhoudini-what-it-means-for-developers.html | 15:11.26 |
| Iâm guessing we just donât support that at all. | 15:11.38 |
| I guess we should probably be building natively for x86. | 15:14.04 |
kens2 | is inclined to agree. I can't believe we will be willing to support someone using a translation layer | 15:14.38 |
| He shoudl build it natively for x86 himself instead of trying to use an ARM binary on x86 | 15:15.11 |
mattchz | tbh, perhaps he doesnât even realise. I hadnât realised the Galaxy Tab 3 was x86! | 15:15.34 |
Robin_Watts | mattchz: We do build a dedicated x86 version for google play. | 15:15.35 |
kens2 | Sounds liek he should use that then | 15:16.05 |
mattchz | Heâs using the library. I guess he should be building the ndk stuff for x86 then. | 15:16.21 |
kens2 | The library is x86 ? | 15:16.35 |
mattchz | I mean, he should build the mupdf library for x86. | 15:16.47 |
kens2 | Yes, I would say so | 15:16.52 |
| I would guess he's using an ARM SDK ? | 15:17.25 |
| Perhaps as you say he doesn't realise. I would also drop the severity from critical to normal. "Your crisis is not our problem" | 15:17.52 |
mattchz | I think the NDK has all the compilers in, possibly. | 15:17.53 |
jogux | mattchz : boggle re galaxy tab 3 / x86. | 15:18.04 |
paulgardiner | jogux: Just tried building for the app store. I had two directories "Distribution - AdHoc-iphoneos" and "Distribution - AppStore-iphoneos", but only the AdHoc one has a .ipa file in it. | 15:19.02 |
fstd | regarding mupdf: is there a more straightforward way to scroll to the bottom of a page than '.' followed by ',' (which strikes me as a crude way to do it)? | 15:19.23 |
jogux | paulgardiner: I'd probably open the project and do project->archive. | 15:19.30 |
| possibly after making sure the 'archive' option in the scheme is setup to use the distritubion-appstore configuration | 15:20.13 |
paulgardiner | yeah I guess. Looks like the intention was that it be automatic | 15:21.23 |
jogux | paulgardiner: I think under xcode 5 it wasn't possible to trigger project->archive automatically | 15:21.48 |
| s/automatically/programmatically/ | 15:21.56 |
| and, annoyingly, there's no command line tool for submitting to the appstore :( | 15:22.16 |
paulgardiner | But doesn't the AdHoc one require that? It builds okay. | 15:22.29 |
| I mean the archive | 15:23.00 |
jogux | paulgardiner: the build system builds the ipa by hand I think (it's just a zip file) | 15:23.43 |
| project->archive is a specific operation that puts an archive somewhere you can then find it in xcode's organiser and submit to the appstore directly from there | 15:24.16 |
paulgardiner | Oh I see | 15:24.33 |
jogux | there's at least a 50% chance something is wrong with the setup that will cause the appstore upload to fail (ceritificates/profiles/randomness etc :-( ) | 15:25.29 |
paulgardiner | Strange the build has done as much as it has towards the AppStore build then: It has created the Smart-Office.app directory with all the bits in | 15:26.00 |
jogux | paulgardiner: yeah, I think it runs as much as it can, nominally so that ATS can check the build is not too broken (cbw) | 15:27.24 |
paulgardiner | Right. That would make sense | 15:27.42 |
jogux | mattchz: I tried the latest iOS build, it's not hideously broken afaics. | 15:29.00 |
mattchz | thanks | 15:29.23 |
| I can upload it to Apple when everyone is happy | 15:29.33 |
jogux | unless tor8 wants to try it I'm not sure anyone else is likely too | 15:29.46 |
| oh, he dropped off | 15:30.06 |
mattchz | Hmm, I spotted one minor bug. The annotation tools arenât disabled when entering reflow mode on iOS. | 15:31.54 |
Robin_Watts | So, pdfExportImageDpi is set to 72. | 15:36.15 |
| and the sourceResolution for this image is set to 299. | 15:36.28 |
| so we downsample by 4. | 15:36.57 |
pedro_mac | Robin_Watts: 72 is pretty poor esp. given that most folk will likely print | 15:37.29 |
Robin_Watts | pedro_mac: Indeed. | 15:37.53 |
jogux | I'm not entirely sure I see why sourceResolution would/should be relevant. | 15:38.16 |
Robin_Watts | Me either. | 15:40.04 |
| I could understand it if the images were being subsampled to the point where they were just good enough for a given output dpi, but we don't have that knowledge here. | 15:40.50 |
jogux | well we could have a maximum dpi or something? | 15:42.46 |
| we know the page size in inches and current transform, right? | 15:42.59 |
Robin_Watts | jogux: Not at this point. | 15:44.01 |
kens2 | Wow, WIndows 7 just BSOD'ed on me, first time ever | 15:44.12 |
Robin_Watts | All the images used are put into a 'resource list'. | 15:44.16 |
| and the resource list doesn't know how they are to be used on the page. | 15:44.36 |
jogux | robin_watts: oh, ah, hrm. | 15:44.38 |
Robin_Watts | I think we just dump the images at full size and be done with it. | 15:45.03 |
jogux | that feels wrong but seems better than the current situation. | 15:45.28 |
Robin_Watts | Either we need to give a configuration option for the desired dpi, and we need to actually make it work... (which is hard) | 15:47.38 |
| or we need to ensure that quality is "the same as the input file". | 15:47.50 |
| I suspect the latter is the sanest course. | 15:48.02 |
jogux | nods. | 15:48.25 |
| or offer some kind of 'save as a really small pdf' option. but.. meh. | 15:48.39 |
| your approach is simple, sounds good :-) | 15:49.15 |
Robin_Watts | ugh. The pdf export encodes all images as PNGs. | 15:59.40 |
jogux | although I presume we know how the images are used when we add them to the resource list, so could add a 'maximum needed dpi' type field to the list? | 15:59.45 |
| ugh! | 15:59.52 |
Robin_Watts | jogux: We could. | 16:00.01 |
| I went through this for MuPDF a while ago, modifying it so that we passed fz_image's rather than fz_bitmaps. | 16:01.07 |
| part of the reason being so that we could ask an fz_image for it's source data so we could output it again. | 16:01.25 |
jogux | are they image component handles in the resource list? | 16:01.52 |
| grr. I'm still installing vs2010 updates. (partly because SP1 didn't want to install from windows update.) | 16:04.33 |
Robin_Watts | jogux: They are, yes. | 16:06.57 |
jogux | so we nominally have the source type there, and could ask the image component to encode to whichever it thought best of jpeg/png/whatever. | 16:07.30 |
| or rather I guess there's no need to reencode at all if we're not subsampling :-) | 16:07.50 |
Robin_Watts | jogux: We could add a 'please give me the source data for this image' API for image handles, yes. | 16:08.17 |
jogux | nods | 16:08.26 |
Robin_Watts | and if that says "no", we fallback to using pngs. | 16:08.33 |
| that's what mupdf does. | 16:08.36 |
jogux | right. sounds good. | 16:08.45 |
Robin_Watts | notes that mattchz is keeping very quiet about now :) | 16:11.38 |
mattchz | Iâd not read that bit. | 16:11.58 |
jogux | tbf it's a fairly trivial change to make :-) | 16:11.59 |
pedro_mac | this is not the MAtt you are looking for⦠| 16:12.01 |
mattchz | There is an API, isnât there? iirc | 16:12.06 |
jogux | mattchz : possibly not an external one | 16:12.22 |
mattchz | Image_getSource() it used to be | 16:12.30 |
| iirc | 16:12.31 |
jogux | oh, hm. | 16:12.36 |
Robin_Watts | Aha, I was just looking to see if there was one :) | 16:12.47 |
mattchz | Did we bin it, because we couldnât guarantee we had the source? | 16:12.51 |
| I remember lots of discussions about it. | 16:12.56 |
Robin_Watts | For this function to work, the Image Component must have been initialised | 16:13.22 |
| * with the Image_Options_RetainSource flag. | 16:13.24 |
mattchz | oh, yeah. that sound sfamiliar | 16:14.03 |
| was there some sort of estream api to get the source? | 16:14.53 |
Robin_Watts | mattchz: The source was an EStream. | 16:15.28 |
| and we Tee it to use it in the image component. | 16:15.38 |
mattchz | ah. | 16:15.57 |
| isnât there an API to get the estream from image? | 16:16.03 |
Robin_Watts | Image_getSource, as you said. | 16:16.11 |
mattchz | (I donâ thave the source handy) | 16:16.25 |
Robin_Watts | but that only works if we have set the Image_Options_RetainSource flag set. | 16:16.32 |
| as the Image_Options_RetainSource flag forces us always to 'Tee' the original EStream so it doesn't get destroyed after use. | 16:17.05 |
mattchz | right. | 16:17.10 |
| that sounds vaguely familiar. | 16:17.27 |
Robin_Watts | At the moment that flag is only set for the Messenger Server. | 16:17.34 |
| I am slightly confused though. | 16:18.22 |
pedro_mac | that really just comes down to available memory doesnât it? | 16:18.22 |
Robin_Watts | I thought we only ever discarded the input when it was larger than the bitmap. | 16:18.40 |
mattchz | we did, afaik | 16:18.54 |
| but to guarantee it to work, we used RetainSource | 16:19.02 |
| yeah, messenger server needed it so that it could put the imaage into efif | 16:19.15 |
Robin_Watts | mattchz: So, we could ignore RetainSource and still call Image_getSource, and it would only work in 'some' cases. | 16:19.35 |
mattchz | I donât know. | 16:19.49 |
| I canât remember | 16:19.54 |
| possibly it wontâ work because it wont have the tee? | 16:20.22 |
Robin_Watts | mattchz: yeah, currently it will fail to give us an estream pointer if that flag is not set. | 16:27.15 |
| but in the 'reopenable' case, we could make it work, I think. | 16:27.32 |
| OK, let me see if I can fix the original problem (the dpi being too small) first. | 16:28.08 |
pedro_mac | heads back home. back later | 16:41.55 |
Robin_Watts | Data in a layout list is in what units? | 16:43.18 |
| 65536ths of an inch? | 16:43.53 |
jogux | I'd presume so | 16:44.15 |
| 16.16 inches. | 16:44.20 |
| give or take any transforms that apply of course :-) | 16:44.50 |
mattchz | Would someone mind reviewing this please: http://git.ghostscript.com/?p=user/matt/mupdf.git;a=commitdiff;h=6085b27ecdd9ebfc0a81208be96464a2998b69c4 | 16:55.56 |
| (then Iâll do another ios testflight build) | 16:56.06 |
Robin_Watts | mattchz: Seems sane. | 17:00.24 |
mattchz | ta. | 17:00.30 |
signnow | Hi everyone! | 17:06.49 |
| Good morning from Los Angeles! | 17:06.57 |
Robin_Watts | evening. | 17:07.21 |
mattchz | Hi :) | 17:08.39 |
| jogux/tor8: thereâs another ios build up if you want to test. | 17:08.42 |
| the only change is that reflow thing. | 17:08.46 |
jogux | breaks it. I'm on a roll today. | 17:13.48 |
| if only I was doing as well at fixing things. | 17:14.36 |
mattchz | Iâm on a roll too, at breaking things. | 17:14.52 |
| turns out that x86 guy was using this: http://www.genymotion.com/ | 17:18.55 |
| (Iâve never tried it, but looks interesting) | 17:19.23 |
jogux | so he was feeding an arm so to something expecting an x86 so, or genymotion is just borked? | 17:20.03 |
mattchz | Iâm guessing genymode uses this âlibhoudiniâ thing to run arm binaries on x86, but I donât know for sure. | 17:20.32 |
jogux | ah right. mm. | 17:20.49 |
jogux | offs for the night, cyas! | 17:28.26 |
signnow | Robin_Watts: I have a question about GNU GPL for MuPDF | 17:31.26 |
Robin_Watts | signnow: go for it. | 17:31.54 |
signnow | If I use MuPDF & want to alter it to customize for my Android app, is that a violation of GNU GPL? | 17:32.06 |
Robin_Watts | The GNU GPL says that you can make any alterations you like, provided that anyone you give a copy of the app to, has the right to get the source code of your entire app, with all the changes in it. | 17:33.09 |
signnow | I see. | 17:33.58 |
Robin_Watts | So, as long as you are happy to give away the entire source code to your app, (both the MuPDF bits and the non MuPDF bits) you are fine. | 17:33.58 |
signnow | I work for a big corporation that needs an Android app to display & alter PDF documents like EchoSign/DocuSign | 17:34.33 |
Robin_Watts | Even if you don't make any changes to MuPDF and just link it in with your app, you still need to give the entire source code away. | 17:34.43 |
signnow | I see. | 17:34.52 |
Robin_Watts | signnow: OK, and are they going to be happy about giving away the source code to their app? | 17:35.03 |
signnow | Nope. Is there a way to have it private licensed with out giving away the source code? | 17:35.18 |
Robin_Watts | Absolutely. | 17:35.24 |
signnow | ok. What would be the pricing & procedure to understand that licensing? | 17:35.37 |
Robin_Watts | We release MuPDF both under the GNU GPL and under the Artifex commercial license. | 17:35.51 |
| We don't have a on-size-fits-all price. | 17:36.06 |
| s/on/one/ | 17:36.13 |
signnow | ok | 17:36.19 |
Robin_Watts | What you should do is to contact Scott.Sackett at artifex.com and explain what you need. | 17:36.40 |
signnow | ok | 17:36.50 |
Robin_Watts | He'll ask you lots of questions (many of which won't apply to you), just answer them as best you can. | 17:36.56 |
| The idea is to give him the best idea you can about what you actually want. | 17:37.08 |
| He'll then get back to you with a licensing proposal. | 17:37.22 |
| If you don't get a reply within a couple of days, let me know. | 17:37.33 |
| It's rare, but we have had the odd mail to him go missing. He's usually very good about replying quickly. | 17:37.53 |
signnow | ok, I emailed him just now! | 17:40.34 |
| Until he replies, I will explore what MuPDF can offer me | 17:41.01 |
| I want to use it within my Android application / add annotations etc | 17:41.22 |
Robin_Watts | signnow: Sure. The commercial version is identical to the GPL version, so you can use that for eval. | 17:41.51 |
| Feel free to ask questions here. | 17:41.57 |
signnow | ok, thank you :) | 17:42.58 |
| I am sure I will have a bunch of questions! lol | 17:43.08 |
| Do I have to use MuPDF as a external Android library? | 17:44.28 |
| so I can use it within my own Android app? | 17:44.46 |
Robin_Watts | The core of MuPDF is written in C. | 17:44.51 |
| As such there will always be a native library involved. | 17:45.01 |
| but it can absolutely be rolled into your app so it appears seamless. | 17:45.13 |
signnow | So, I would just copy the JNI folder & run ndk-build within my personal app? | 17:45.37 |
Robin_Watts | signnow: Well, you need the java classes too. | 17:45.56 |
signnow | ok | 17:46.04 |
Robin_Watts | The android specifics for the viewer are written in java. | 17:46.15 |
| (and the mupdf.c JNI layer itself). | 17:46.28 |
| everything under there is just portable C that works on every platform under the sun. | 17:46.41 |
signnow | ok | 17:47.11 |
| Does this mean, that I develop my app by copying all Java classes and JNI folder into my Android app? | 17:47.57 |
Robin_Watts | signnow: That seems a reasonable place to start. | 17:48.32 |
signnow | ok. | 17:48.37 |
| I found something else online. | 17:50.16 |
| This link discusses this differently | 17:50.25 |
| http://dixitpatel.com/integrating-pdf-in-android-application/ | 17:50.26 |
| about MuPDF | 17:50.32 |
Robin_Watts | signnow: That's based on MuPDF 1.2, which is just over a year old. | 17:51.08 |
signnow | ok. | 17:51.18 |
Robin_Watts | but it's still broadly the same. | 17:51.20 |
signnow | ok | 17:51.26 |
Robin_Watts | I would *definitely* be working with the newest version though. | 17:51.47 |
| Your best bet is to clone our git repo and import from that. | 17:52.10 |
| That way you can pull in new changes as we make them. | 17:52.17 |
mattchz | ok, all, nn | 18:04.11 |
signnow | Got it. I am on the latest version from Git | 18:12.50 |
pedro_mac | paulgardiner: Iâve built from your pete-sog branch but the app is a bit broken (looks like it hasnât merged manifests). Iâll take a look at what has changed | 18:43.14 |
paulgardiner | pedro_mac: Hmmm, should be identical to yours at the tip. I diffed the ends of your and mine and diffs showed nothing. | 18:44.51 |
| Then I took out the path separater fix. | 18:45.29 |
pedro_mac | probably nothing major. | 18:45.34 |
| yeah, it wont be that :) | 18:45.41 |
| just going to have some grub now, but Iâll take a look after that | 18:45.59 |
paulgardiner | Oh. Then I rebased onto golden/master. That must be it. Until I did that it was identical | 18:47.15 |
| Maybe not. That's just 3 commits, none of which look like they could affect that | 18:48.19 |
| I'm just pushing the version of yours I was working to back to my repo as pete-sog-old, but I still see no diffs other than Robin_Watts's 3 commits | 18:52.21 |
Robin_Watts | 1 commit on robin/master for review. No hurry. Tests running now, but I don't think they test pdf export. | 19:09.25 |
| In fact, 2 commits there. | 19:13.37 |
signnow | Hi Robin_Watts | 20:10.11 |
| Using MuPDF, can I add Android specific views on the document? | 20:10.35 |
| MuPDF only allows a Ink annotation to be drawn. | 20:10.51 |
| Is it possible to add my own annotations? | 20:11.09 |
Robin_Watts | (for the logs): The PDF export commit failed tests. Will fix it tomorrow. | 23:01.16 |
| Forward 1 day (to 2014/07/04)>>> | |