| <<<Back 1 day (to 2015/02/16) | 20150217 |
tor8 | Robin_Watts: none of the stuff is particularly end-user facing | 09:18.35 |
| Robin_Watts: reference counting fz_path/text, and added a set of helper functions to reduce the amount of lock/unlock boilerplate for reference counting are in commits on tor/drop | 10:06.19 |
| if you give those the nod, I'll push drop to master if the clusterpush doesn't fall over | 10:06.53 |
Robin_Watts | looking now. | 10:08.53 |
| Being really picky... | 10:11.08 |
| if (p) { ....... return something; } return 0; | 10:11.19 |
| That's better done as: if (!p) return 0; ...... return something; | 10:11.39 |
| why make someone read all the way through the long block just to see the return 0 ? | 10:11.55 |
| removes a big block of indentation too. | 10:12.51 |
tor8 | but it's such a small block! :) | 10:14.50 |
Robin_Watts | Urgh. whitespace wars :( | 10:15.57 |
| removing { } from after fz_try etc feels so wrong | 10:16.34 |
tor8 | really? that's why we've been super paranoid with the do/while(0) dancing (that, and having break target) in the macros... | 10:18.12 |
| and the 'bloat' of needing 6 lines of braces for a one-line try-protected call has always bothered me | 10:18.40 |
Robin_Watts | tor8: I said it felt wrong. I didn't necessarily say it *was* wrong :) | 10:18.48 |
tor8 | so I'm trying using unbraced oneliners and it helps a bit | 10:19.08 |
Robin_Watts | if (path->refs > 1) .... I would prefer if (path->refs != 0), but again that's me being picky. | 10:19.32 |
tor8 | my other thought was adding a fourth macro, #define fz_finally(ctx) fz_catch(ctx) fz_rethrow(ctx); | 10:19.34 |
| which commit (path->refs > 1) ? | 10:20.08 |
Robin_Watts | (cos for *some* things you can have static ones on the stack, with -ve numbers) | 10:20.12 |
| 4th one down. | 10:20.15 |
| tor8: I've thought of fz_catch_and_rethrow() before. | 10:20.49 |
tor8 | sorry, don't find what you're referring to | 10:21.06 |
Robin_Watts | bah. 5th one down, sorry. | 10:21.21 |
| Disallow modification of shared fz_path and fz_text. | 10:21.31 |
tor8 | oh, right | 10:21.34 |
| then you mean != 1 | 10:21.49 |
Robin_Watts | I do. sorry. | 10:21.57 |
tor8 | but we can't have texts and paths statically | 10:21.58 |
| but I see your point in terms of symmetry | 10:22.09 |
Robin_Watts | No, but I'm dumb enough to cut and paste this for the next ref counted object :) | 10:22.20 |
tor8 | I'll fix, in case we do add statically allocated paths and text objects (which would make sense for say rects) | 10:22.29 |
Robin_Watts | I think that's all the whining I can manage :) | 10:23.41 |
tor8 | much less than I anticipated :) | 10:23.57 |
| you've been desensitized by SOT | 10:24.09 |
| Robin_Watts: no cluster differences | 10:27.37 |
| so with the 'shared fz_path' refs != 1 fix, it's good to push? | 10:27.59 |
Robin_Watts | yeah. | 10:28.05 |
tor8 | carpet yanking time, WOO! | 10:28.13 |
Robin_Watts | You've updated android right? | 10:28.31 |
tor8 | yes, android should be good | 10:28.39 |
Robin_Watts | that leaves ios and win8 | 10:28.45 |
tor8 | ios is in a mess | 10:28.53 |
| and win8, did mvrhel move that to a separate repository yet? | 10:29.02 |
Robin_Watts | tor8: I cannot see such a separate repo. | 10:29.40 |
tor8 | ah, crap. android needs fixing for the fz_page change. | 10:30.39 |
| I'll do that now. | 10:30.41 |
Robin_Watts | The qt version shares some code with the win8 one, so it's just possible that updating the win8 one will make the qt one work. | 10:31.34 |
| but I wouldn't bet on it. | 10:31.38 |
tor8 | should we get paulgardiner or jogux to fix the ios one? | 10:34.04 |
Robin_Watts | dunno. | 10:35.33 |
| perhaps fred. | 10:46.32 |
henrys | Robin_Watts: curious if after your phone incident with your carrier if you kept your online account? I'm back to mail billing but that's a pain. | 14:36.05 |
| tor8: why do we need a mujstest for every mupdf commit? | 14:38.24 |
tor8 | henrys: doesn't your bank have proper electronic identity services based on cryptographic devices or codes? | 14:40.50 |
| henrys: no idea, you'll have to ask Robin_Watts about mujstesting | 14:40.59 |
| henrys: it's testing the javascript in forms in mupdf, not mujs | 14:41.21 |
| it case there was any confusion about that | 14:41.36 |
henrys | tor8: right I was thinking there might be a way to identify when the form related stuff changed and only run the tests for that but that's probably not worthwhile and too difficult to tease out. | 14:44.32 |
tor8 | henrys: yeah. though we very rarely do touch that stuff, so we could move it to a manually invoked test if it takes a lot of cluster time | 14:45.56 |
henrys | tor8: this is my verizon account (cell phone carrier), they also sell phones. So somebody breaks into your account, buys a phone and it's billed to your account. | 14:45.59 |
tor8 | henrys: ah, so changing credit card and password isn't enough? | 14:47.49 |
henrys | tor8: it seems like there should be an identity challeng when you ask to ship something to a new address but I don't know if that was hacked around or they just don't bother. | 14:47.57 |
tor8 | they probably don't bother ... any sort of challenge in web shopping hurts the conversion rate (from just browsing to actually buying stuff) | 14:49.21 |
| I'm sure they've calculated the loss from covering for identity theft and weighed that against the lost shopping any inconvenience causes | 14:50.14 |
Robin_Watts | henrys: I was with EE. The fraud was with O2. It was completely unrelated to me. | 14:52.01 |
| hence I didn't change anything. | 14:52.08 |
tor8 | Robin_Watts: fz_device rework is up on tor/master | 14:52.27 |
henrys | tor8:probably but you'd think a phone carrier could drop you a text but two factor schemes have problems too. | 14:52.33 |
tor8 | banging on the pdf_process stuff now | 14:52.33 |
| thinking of making a pdf_processor struct much like the new fz_device with subclassing instead of the current process/processor/csi | 14:53.08 |
| henrys: don't forget you're talking about telecoms... :/ | 14:53.46 |
FreezingCold | I have a doc that's been turned into a PDF by GNU Ghostscript 7.06 (Windows), and I'm trying to get some usable text out of it | 15:01.48 |
kens | You're almost certainly out of luck then. | 15:02.00 |
Robin_Watts | FreezingCold: OK, stop there. | 15:02.02 |
FreezingCold | When I try to copy paste something, I get stuff like "4XDWWHVWVWULSVUHTXLUHGRQV" | 15:02.15 |
Robin_Watts | Try again with a more modern version of gs. That's a decade or so old, I think. | 15:02.17 |
FreezingCold | Robin_Watts: I didn't create the PDF. | 15:02.26 |
kens | Bets bet is OCR | 15:02.37 |
Robin_Watts | They you're out of luck. | 15:02.56 |
| s/They/Then/ | 15:03.01 |
FreezingCold | Why can't I reverse it though? PDF viewers are able to decode it as something | 15:03.06 |
kens | Tesseract maybe ? | 15:03.08 |
Robin_Watts | PDF viewers know how to render the glyphs. | 15:03.18 |
kens | FreezingCold : no, they draw the glyphs as instructed, they don;t know what the glyphs represent | 15:03.30 |
Robin_Watts | They don't know what glyph corresponds to what unicode value though. | 15:03.33 |
FreezingCold | =\ | 15:03.48 |
| that sucks | 15:03.49 |
kens | Tha'ts hte way it is. | 15:03.57 |
| Like I said, try OCR | 15:04.07 |
Robin_Watts | Newer versions of gs may well do a better job. | 15:04.12 |
tor8 | note, *may*, it also depends on the format and how well constructed the input document is | 15:04.47 |
FreezingCold | Robin_Watts: I'm trying to create a list of the most unsafe places to eat in the city, I feel like I'm not going to get a lot of support from the city to change their data so I can make a joke better :p | 15:05.13 |
kens | And how the conversion is specified, its possible these days to convert all text to outlines,so there is no text in the PDF file. | 15:05.20 |
| FreezingCold : use OCR software, several will take PDF as an input | 15:05.40 |
| Apparently Google Docs can do this | 15:06.25 |
| http://www.makeuseof.com/tag/3-free-ocr-tools-convert-files-editable-documents/ | 15:06.39 |
| paulgardiner : any idea on this one : | 15:08.33 |
| http://stackoverflow.com/questions/28564204/adding-annotation-to-mupdf-android | 15:08.33 |
paulgardiner | kens: just looking | 15:11.25 |
kens | thanks | 15:11.29 |
FreezingCold | kens: heh, kinda sucks that PDF's destroy so much | 15:15.29 |
| *these PDFs | 15:15.35 |
kens | FreezingCold : its a by product of the conversion on a truly ancient version of Ghostscript. | 15:15.49 |
| As tor8 said, current versions generally do not do so, although I should point out that if the original document produced unreasable PostScript, the PDF will be unreadable too. We cannot reconstruct ionformation once its gone. | 15:16.26 |
Robin_Watts | tor8: Removing the embedded context in fz_stream caused lots of SEGVs. | 15:20.59 |
tor8 | Robin_Watts: huh... now that I look more closely at the regression mail I got back... why is it testing ghostpdl when I run it from a mupdf repository? | 15:22.35 |
Robin_Watts | tor8:eh? No idea. | 15:22.54 |
tor8 | Robin_Watts: it's not compiling properly in some commits... might be rebase having messed up | 15:24.33 |
Robin_Watts | purge more embedded contexts fails to build at all. | 15:24.39 |
| yeah. | 15:24.41 |
tor8 | should we squish and recommit? | 15:24.44 |
Robin_Watts | Force push back to the last commit that worked? | 15:24.56 |
| Then fix the broken ones and push ? | 15:25.11 |
tor8 | Robin_Watts: yeah, force push back, I'll squash the broken ones and see what doesn't work | 15:25.29 |
| most of these could be squashed without much loss in history | 15:25.44 |
henrys | is the cluster broken? everything's been idle for a while and there's quite a queue. | 15:26.22 |
Robin_Watts | henrys: yes, something is up. | 15:28.35 |
| it will restart in a mo. | 15:28.40 |
| or I'll kick it. | 15:28.46 |
mvrhel | tor8: so are your changes all done? I will do the fixes in win8 if yes | 15:29.05 |
Robin_Watts | mvrhel: almost... | 15:29.15 |
mvrhel | then maybe we can do the split off/ | 15:29.16 |
| ok | 15:29.23 |
henrys | ugh meeting time already. | 15:30.02 |
fredross-perry | morning all | 15:30.25 |
kens | Morning | 15:30.30 |
henrys | fredross-perry: howdy. | 15:30.37 |
marcosw | morning all | 15:30.49 |
kens | Morning Doktor Marcos | 15:30.58 |
henrys | marcosw: I'm diggin' those new customer numbers ;-) | 15:31.05 |
marcosw | henrys: great | 15:31.28 |
henrys | mvrhel: let's start with gsview and when we can get a beta up? It seems ripe to get out in the open and get some feedback. It is a beta. | 15:32.29 |
chrisl | rayjj: I can't get access to cust 532's ftp site - has the IP address changed in the last 6-8 months or so? | 15:32.38 |
rayjj | chrisl: no, no change | 15:32.50 |
chrisl | Hmmm..... | 15:33.02 |
rayjj | chrisl: let me try it to make sure *I* can still get in | 15:33.26 |
marcosw | rayjj: is that on peeves or one of the machines I have control over? | 15:33.28 |
kens | Customer 532's own ftp site marcos | 15:33.42 |
marcosw | kens: okay, so unlikely to be something I did then :-) | 15:34.03 |
henrys | chrisl: do you have a goal date for the release. I'm debating changing something in PCL, more likely to add it now if you were thinking end or march as opposed to mid march. | 15:34.07 |
rayjj | chrisl: OK, so I can still get in. Let me find the password for it. | 15:34.08 |
chrisl | henrys: it will be late March, because of the staff meeting, and the mini-break after the meeting | 15:34.43 |
rayjj | henrys: hopefully not changing to the OTF fonts | 15:34.45 |
mvrhel | henrys: yes. let me make another installer to disable a couple things related to printing then I am fine releasing to beta | 15:34.49 |
henrys | chrisl: okay thanks. | 15:35.11 |
rayjj | dreads another week+ of massive regression reports | 15:35.19 |
Robin_Watts | marcosw: The cluster is unhappy. | 15:35.45 |
henrys | chrisl: I was looking more carefully at the fonts - we've doubled the number of glyphs which surprised me. | 15:35.53 |
Robin_Watts | Probably better for you to perform CPR than me :) | 15:35.59 |
chrisl | henrys: I was expecting more, actually, only doubled is quite good.... | 15:36.25 |
marcosw | Robin_Watts: I took it down for a bit, I was seeing lots of error compiling mupdf. but I've almost convinced myself it's just an error in the source. | 15:36.56 |
henrys | rayjj: yeah I'm going to use these fonts. Folks have asked for greek and cyrrilic. | 15:37.00 |
Robin_Watts | marcosw: It was an error in the source. | 15:37.08 |
| I've just forced pushed us back to sanity. | 15:37.15 |
marcosw | the odd thing is that the cluster nodes running ubuntu 10.04 don't find the error. | 15:37.30 |
Robin_Watts | tor is fixing the commits and will push fixed versions in a mo. | 15:37.32 |
henrys | chrisl: interestingly the adobe set in acrobat is more like our old set size wise. | 15:38.09 |
marcosw | Robin_Watts: I've restarted the cluster master. is there anything you need me to do? | 15:38.59 |
chrisl | henrys: but Acrobat usually uses the Windows TTFs, hence they get greater coverage | 15:39.05 |
| On windows, of course..... | 15:39.20 |
henrys | I added 3 new items to the workflowy under GS, Build, configuration and platform specific. Have a look before the meeting. we can discuss them now if anybody wants. | 15:39.45 |
rayjj | Robin_Watts: tor: You guys don't test compiles before pushing commits to golden ? | 15:40.09 |
Robin_Watts | rayjj: We do. | 15:40.24 |
rayjj | chrisl: email sent with cust 532 FTP site info. (cc'ed support) | 15:40.32 |
henrys | chrisl: it uses TTF when you ask for the core pdf fonts? I didn't know that. | 15:40.33 |
Robin_Watts | but something went wrong with the tests here. | 15:40.34 |
chrisl | rayjj: thanks.... | 15:40.45 |
tor8 | Robin_Watts: okay, now it looks like it's running the latest commit on my clusterpush | 15:41.11 |
rayjj | Robin_Watts: running ubuntu 10 ??? ;-) (but I shouldn't talk, I've avoided updating peeves) | 15:41.20 |
chrisl | henrys: yeh, it seems to, if they are available. | 15:41.21 |
tor8 | if I call "clusterpush mupdf" it runs ghostpdl, but if I just run "clusterpush" it seems to do the right thing | 15:41.32 |
marcosw | how in the heck does gcc 4.4.3 not find these two statements to be a conflict?: | 15:42.01 |
| pdf_signer *pdf_keep_signer(pdf_signer *signer) | 15:42.02 |
| pdf_signer *pdf_keep_signer(fz_context *ctx, pdf_signer *signer); | 15:42.02 |
tor8 | rayjj: I thought I did... but apparently I tested the wrong thing | 15:42.08 |
chrisl | rayjj: I'm in! Thank you. | 15:42.26 |
paulgardiner | kens: I replied to that stackoverflow question... hopefully based on a correct memory of how that stuff works. | 15:42.41 |
kens | thanks Paul | 15:42.51 |
rayjj | tor8: oh, yeah. the old test this, push that -- I think I've done that a few times :-) | 15:42.53 |
henrys | chrisl: so in theory you could access all the CJK glyphs say in Courier Windows TTF from a pdf using core fonts? | 15:42.55 |
rayjj | chrisl: Great! So at least now everyone that might need it also has the login info (everyone that gets support email) | 15:43.39 |
chrisl | henrys: possibly - it would depend on being able to get an encoding that would work. Generally, you load them as a CIDFont for that | 15:43.47 |
tor8 | Robin_Watts: could you back origin/master up all the way to 4fe9caa? | 15:44.31 |
marcosw | Robin_Watts: restarting the cluster didn't work; I'm looking at it. | 15:45.01 |
henrys | rayjj: was I supposed to get an email - I don't see it? | 15:45.10 |
Robin_Watts | marcosw: Give me a mo... | 15:45.11 |
marcosw | Robin_Watts: np | 15:45.16 |
rayjj | henrys: oops. Sending it now to support | 15:45.46 |
henrys | beyond the new agenda items I'm good anybody else have stuff for the meeting? | 15:46.04 |
mvrhel | henrys: so I still have some work this week with stefan. Hopefully I can get that resolved quickly | 15:46.51 |
Robin_Watts | marcosw: OK, go for it. | 15:46.55 |
tor8 | henrys: we need to find an apple user to update the mupdf ios viewer | 15:46.56 |
Robin_Watts | tor8: done. | 15:46.59 |
| fred, paul or joseph would seem to be the obvious candidates. (Or henrys?) | 15:47.21 |
henrys | tor8: fredross-perry is your guy. | 15:47.23 |
tor8 | Robin_Watts: and don't forget to zap the cluster | 15:47.24 |
Robin_Watts | tor8: have done. Just waiting for marcos to shock it. | 15:47.36 |
fredross-perry | iâll do it. Whatâs to be updated? just building with the latest muPDF code? | 15:48.08 |
rayjj | chrisl: my stoopid email tool (Thunderbird) is picking up random email addresses in preference to ones in my address book :-( | 15:48.15 |
tor8 | fredross-perry: yeah, the stuff I'm about to drop on master later today | 15:48.39 |
fredross-perry | ok drop me a line when itâs done. | 15:48.54 |
chrisl | rayjj: your mail reached me okay..... did you see my private chat question? | 15:48.54 |
henrys | rayjj: wow accessible with naked ftp? They need some better sysadmin going on over there. | 15:49.32 |
rayjj | henrys: yeah, no kidding. | 15:49.51 |
| chrisl: I don't see a private chat window from you | 15:50.10 |
chrisl | rayjj: I've definitely got one open - I do it by e-mail if that's easier..... | 15:51.00 |
| henrys: the Japanese contingent have a "proper" doc/file sharing setup, but it's a *huge* PITA to use | 15:51.41 |
henrys | marcosw: do you have the new macpro? | 15:53.02 |
| marcosw: well not new... but the latest one. | 15:53.54 |
Robin_Watts | The turbo trashcan? | 15:54.26 |
marcosw | henrys: no, my macpro is older than yours. | 15:54.43 |
rayjj | chrisl: did you see my reply on the private chat (polaris) ? | 15:55.30 |
henrys | a buddy of mine has it. I'm amazed how small it actually is in real life. He's a designer and he just takes it on the plane for customer visits. | 15:56.12 |
Robin_Watts | henrys: Does he check the monitors? :) | 15:56.34 |
chrisl | rayjj: yes, thanks - that's exactly what I need | 15:57.04 |
marcosw | henrys: I've played with it in the apple store. even running at full load it's very quiet (of course my 2008 macpro is quiet at full load too, so I don't know why I'm surprised). | 15:57.24 |
henrys | Robin_Watts: nope the clients have everything he needs he just brings the trash can ;-) | 15:57.48 |
marcosw | Robin_Watts: is everything okay with mupdf on the cluster? I expected a whole bunch of jobs to show up in the queue but that didn't happen. | 15:58.21 |
Robin_Watts | marcosw: I removed all the jobs, and backtracked the git history. | 15:58.36 |
rayjj | chrisl: BTW, I discovered why I didn't see the private chat -- I didn't have alerts on for that *and* I had "tab strip" unchecked in the View menu | 15:58.44 |
Robin_Watts | the jobs will show up when tor pushes fixed versions :) | 15:58.47 |
tor8 | marcosw: I'm going to hammer it as soon as my current clusterpush says ok | 15:58.49 |
henrys | moving over to skype for the next meeting. | 15:59.28 |
chrisl | rayjj: well, it's not something we use very often - I just figured as we'd be talking file names and project names, it was safer to keep it quiet | 15:59.35 |
marcosw | I understand. I'll remove the logs of the jobs that have been erased from the git history (shades of 1984, being able to edit history like that). | 15:59.40 |
rayjj | chrisl: agreed | 15:59.59 |
Robin_Watts | marcosw: That's the appeal of git. Anything where I can edit my pratfalls out gets my vote. | 16:02.34 |
tor8 | argh, why is mujstest taking so looooooong | 16:03.47 |
| Robin_Watts: okay, clusterpush looks good. could you sanity check the squashed set of commits on tor/master? | 16:08.50 |
Robin_Watts | ok. | 16:09.02 |
rayjj | chrisl: BTW, thanks for jumping on cust 532's issue so promptly | 16:15.48 |
chrisl | rayjj: NP, I was pleased it turned out to be an easy one! | 16:19.28 |
Robin_Watts | tor8: Subject to snowblindness, it looks fine :) | 16:19.29 |
tor8 | Robin_Watts: alright, here goes, take two :) | 16:20.19 |
rayjj | ahh... I think I found the fix for the (long standing) crash if pattern-clist is used and we are filling a mask with a complex clip path (as from a character) | 16:50.37 |
FreezingCold | What's a CFF font file? | 16:50.52 |
chrisl | FreezingCold: Compact Font Format | 16:51.14 |
| FreezingCold: http://en.wikipedia.org/wiki/PostScript_fonts#Compact_Font_Format | 16:52.33 |
FreezingCold | Can I convert it to anything usable? | 16:52.37 |
kens | Defien 'usable' | 16:52.51 |
| Its a perectly sound font format in its own right | 16:53.09 |
FreezingCold | well, the text I have is stored in glyphs from what I understand | 16:53.32 |
| wondering if I can get creative with OCR to automatic generate it's own training data from that font | 16:53.48 |
kens | Hmm. Not how I would put it. | 16:53.48 |
chrisl | FreezingCold: so what font format would you like it in, rather than CFF? | 16:54.44 |
FreezingCold | chrisl: uh, ttf? | 16:55.10 |
kens | You can convert it to OTF with CFF outlines or to a type 1. Converting to a TTF would require rewriting the outlines | 16:55.13 |
| WHich means loading it into fontforge and exporting as a ttf | 16:55.30 |
FreezingCold | The fonts are called like KWIGZR+Arial_Italic0150 | 16:55.34 |
| what's the 0150? | 16:55.38 |
kens | Yes, that indictaes its a font subset | 16:55.43 |
| No idea what the 0150 is | 16:55.50 |
| Possibly an artefact of the o(extremely old) version of GS | 16:56.06 |
FreezingCold | it is | 16:56.14 |
kens | KWIGZR+ indictaes its a font subset | 16:56.18 |
FreezingCold | What does each letter stand for? | 16:56.32 |
kens | Nothing | 16:56.36 |
| I would be surprised if an OCR package needs training to use Arial Italic | 16:57.21 |
| Nut if it does, I would use Arial Italic | 16:57.34 |
| But* | 16:57.39 |
FreezingCold | It doesn't exactly, but the output is messy | 16:57.45 |
tor8 | Robin_Watts: hm, the cluster doesn't have openssl installed? | 16:58.15 |
Robin_Watts | tor8: Urm? | 16:58.31 |
kens | The fact that its a subset font probably explains why the text can't be copied/pasted | 16:58.34 |
FreezingCold | kens: hold on, installing fontforge | 16:58.46 |
tor8 | the ifdef HAVE_OPENSSL else branch is what is tested on the cluster | 16:59.10 |
| (causing the compile fail, I guess I missed one squash) | 16:59.33 |
| I manually tested all the revisions locally | 16:59.43 |
| I manually tested *building* all the revisions locally | 16:59.59 |
FreezingCold | sweet, I got all the letters out of the font | 17:00.06 |
| https://i.imgur.com/wiLe5nG.png | 17:00.11 |
Robin_Watts | tor8: I don't see why this would be a problem now when it wasn't before. | 17:01.09 |
tor8 | cluster fails to compile, because it isn't compiling the same code as I am | 17:01.35 |
| due to ifdef variations :( | 17:01.48 |
| the commit two down the pipe will fix the ifdef compile | 17:02.04 |
Robin_Watts | Do you want to rebase that back and squash it? | 17:02.31 |
| I'll reset the cluster to 681039767f | 17:02.48 |
tor8 | I'm not too bothered, but it does mean we never test the openssl code on the cluster | 17:02.49 |
| but if you think we should reset and squash, I'm game | 17:03.05 |
FreezingCold | kens: the cff seems to follow a sane pattern. I don't get why this info can't be used to extract text | 17:03.13 |
tor8 | having done it once already, can't hurt to do it again | 17:03.15 |
Robin_Watts | Yeah, let's go for a clean fix. | 17:03.17 |
kens | FreezingCold : because it'll be different on the next font you try | 17:03.34 |
| Or the next file. | 17:03.39 |
FreezingCold | Right, so why can't the font be extracted per file? | 17:03.50 |
kens | I dohn't understand your question | 17:04.21 |
FreezingCold | Each text area has a cff font right? | 17:04.40 |
marcosw | tor8: so the openssl issue would explain why only some cluster nodes are reporting a compiler error? | 17:05.05 |
kens | Nothing to do with 'rea' Where text is drawn the text is in a font, it may or may not be a CFF font | 17:05.08 |
tor8 | marcosw: yeah. | 17:05.21 |
Robin_Watts | marcosw: Ah! Maybe the cluster is testing both branches, just on different nodes :) | 17:05.41 |
marcosw | that does raise the question of if all of the cluster nodes should be identical or not. | 17:06.31 |
tor8 | Robin_Watts: okay, I have a squished commit ready on tor/master, whenever the cluster is ready | 17:07.30 |
Robin_Watts | it should be ready now. | 17:15.44 |
| marcosw: Yes, ideally they should all be identical (in terms of the appropriate software installed) | 17:16.08 |
| tor8: on windows: | 17:32.27 |
| 2>c:\artifex\mupdf.git\thirdparty\mujs\jscompile.c(112) : warning C4090: 'function' : different 'const' qualifiers | 17:32.38 |
| 2>c:\artifex\mupdf.git\thirdparty\mujs\jscompile.c(140) : warning C4090: 'function' : different 'const' qualifiers | 17:32.40 |
| 2>c:\artifex\mupdf.git\thirdparty\mujs\jsgc.c(19) : warning C4090: 'function' : different 'const' qualifiers | 17:32.48 |
| 2>c:\artifex\mupdf.git\thirdparty\mujs\jsgc.c(20) : warning C4090: 'function' : different 'const' qualifiers | 17:32.50 |
FreezingCold | Does converting from pdf to ps lose any information? | 17:42.44 |
Robin_Watts | FreezingCold: Yes. | 17:42.59 |
FreezingCold | oh :( | 17:43.16 |
Robin_Watts | But whether it loses any information that you care about is a different question. | 17:43.21 |
| Essentially the problem here is that you have a document that might contain the string "Hello World" | 17:43.45 |
| Your PDF creator has been clever, and rather than embed all the font, it's embedded just the letters "Helo Wrd" | 17:44.18 |
| It probably put H in as char 1, e in as char 2, l in as char 3 etc. | 17:44.42 |
| so the string in the PDF file is 1,2,3,3,4,5,6, etc rather than the ascii codes you're expecting. | 17:45.24 |
| consequently when you copy and paste from it, you get garbage. | 17:45.35 |
| All you can do is to 'print out' the file to a bitmap, then use OCR to use its magical knowledge about what each letter looks like. | 17:46.06 |
FreezingCold | it actually has the "correct" spacing. e.g. e is 55 and g is 57 (which 56 is empty) | 17:49.36 |
| hmm, I need to find an old version of gs to install that handles font subsets horribly to test out :p | 17:50.27 |
chrisl | FreezingCold: the problem is, the results are highly dependent on the input - for example, the problem may not have been Ghostscript's PDF output, but may have existed in the original Postscript, if the original was Postscript | 17:53.39 |
FreezingCold | chrisl: isn't it ghostscript that decides things like font subset embedding? | 17:54.12 |
chrisl | FreezingCold: maybe. If the complete font is used in the input, Ghostscript will by default, subset the font in the PDF output. But the original producer of the Postscript or PDF input may have subsetted the font before Ghostscript ever saw it | 17:55.56 |
FreezingCold | My case is definitely the former | 17:56.23 |
chrisl | How do you know? | 17:56.40 |
FreezingCold | If it's the latter, wouldn't manual identification of each letter work? | 17:56.51 |
marcosw | Robin_Watts: that brings up the question of what the "appropriate software" is. | 17:57.00 |
FreezingCold | chrisl: https://i.imgur.com/wiLe5nG.png | 17:57.12 |
chrisl | FreezingCold: No, once the glyph mapping is lost, Ghostscript cannot reinstate it | 17:57.19 |
Robin_Watts | marcosw: It does. openssl, I think. | 17:57.23 |
FreezingCold | chrisl: I know gs can't do it itself, I'm trying to do it myself. | 17:57.32 |
| I'm aware what I want doesn't exist. | 17:57.39 |
chrisl | FreezingCold: right, what I'm saying is that trying an earlier version of Ghostscript may not help you, unless you also have the original file from which your PDF was created | 17:58.21 |
marcosw | yeah, I know that (now). but presumably there are other #ifdefs in the code that are effected by what libraries are installed. | 17:58.33 |
FreezingCold | chrisl: I'm just trying to create a smaller file to experiment with :) | 17:58.58 |
| If those spaces/gaps aren't there, manual identification would still be somewhat quick | 17:59.20 |
| you're going to have like a-z, A-Z and 0-9 most likely, easily under 50 char | 17:59.45 |
chrisl | FreezingCold: nevertheless, if the problem was not caused by Ghostscript, then using Ghostscript to create a smaller test case isn't necessarily going to help | 18:02.50 |
marcosw | Robin_Watts: based on Makerules, libcurl is also used by mupdf, though none of the cluster nodes appear to have it installed. | 18:13.17 |
Robin_Watts | marcosw: Only if we build mupdf-curl | 18:14.04 |
| and we don't for cluster stuff, AIUI. | 18:14.23 |
eto | hello | 18:16.51 |
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. | 18:16.51 |
eto | can mupdf be compiled without x? | 18:16.58 |
| i would like to use it for image generation ons erver | 18:17.24 |
Robin_Watts | Then it's not mupdf you want. It's mudraw. | 18:17.35 |
marcosw | Robin_Watts: okay, i won't worry about libcurl. I've added libssl-dev to the install instructions for setting up a cluster node and will install it on the existing nodes. | 18:17.39 |
eto | Robin_Watts: yes mudraw is the tool but on all oses i use it's built from single package | 18:17.56 |
Robin_Watts | make build=release HAVE_X11=no | 18:18.15 |
malc_ | Robin_Watts: js_none needs updating w.r.t. lastest round of prototype changes | 18:24.08 |
eto | Robin_Watts: so i can just this into my modified package build and shit not depend on x in any way? | 18:24.18 |
Robin_Watts | malc_: Thanks. Everything is in flux at the moment :) | 18:24.27 |
eto | sorry i meant it not shit | 18:24.37 |
Robin_Watts | eto: indeed. | 18:24.48 |
eto | okay i will try it | 18:24.57 |
| Robin_Watts: what about fontconfig? | 18:25.32 |
Robin_Watts | what about fontconfig? :) | 18:25.47 |
eto | Robin_Watts: hmm seems like fc doesn't need x after all | 18:26.07 |
Robin_Watts | Does mupdf need fontconfig? :) | 18:26.18 |
eto | Robin_Watts: is there some detailed compilation page? | 18:26.25 |
| Robin_Watts: according to freebsd makefile - yes it needs it | 18:26.39 |
| Robin_Watts: or more rpecisely mupdf package needs it | 18:26.53 |
tor8 | Robin_Watts: a bug in msvc | 18:27.22 |
| it thinks const char ** means the array is const as well as the pointers | 18:27.37 |
eto | Robin_Watts: okay i will describe it like this currently we fork from php into imagemagick to do pdf conversion | 18:27.52 |
| Robin_Watts: but imagemagick want to pull in cups and various other things | 18:28.09 |
| Robin_Watts: i thought about recompiling it without ghostscript (which wants to pull-in cups) and use mudraw for page draw - do you think that is right path? | 18:29.04 |
Robin_Watts | eto: MuPDF will give you faster, nicer results for rendering PDF to bitmaps for screen use than gs will. | 18:29.32 |
eto | Robin_Watts: i thought so | 18:29.46 |
Robin_Watts | So, yes, that sounds sensible to me. | 18:29.48 |
| You can tweak gs to not pull in cups etc, but it's hairier work. | 18:30.07 |
eto | Robin_Watts: so it would be worth time to try to get it work the way i want | 18:30.15 |
chrisl_away | FYI, ImageMagick without Ghostscript won't handle PDF files - it uses Ghostscript for PDFs | 18:31.33 |
eto | chrisl_away: i know | 18:33.37 |
| chrisl_away: but i can use mudraw for that | 18:33.49 |
chrisl_away | eto: why not just use Ghostscript or mudraw directly, and forget about ImageMagick? | 18:34.38 |
Robin_Watts | chrisl_away: I thought that was the idea. | 18:35.13 |
| He wants to call mudraw rather than call imagemagick. | 18:35.21 |
eto | chrisl_away: we use imagemagick for user uploaded photo manip as well | 18:35.29 |
| i would like to get to both without any trace of x support | 18:35.57 |
chrisl_away | Robin_Watts: Well, he mention building ImageMagick without Ghostscript | 18:36.04 |
Robin_Watts | ok. | 18:36.35 |
eto | besides graphicsmagick there is no other cli image editor is there? | 18:36.35 |
| only graphics magick and imagemagick | 18:36.48 |
Robin_Watts | eto: Well, you can build gs with no X and no cups support. | 18:36.52 |
| and then imagemagick with that would work. Might be less work in the short term. | 18:37.14 |
chrisl_away | imagemagick can be built without X support, too..... | 18:37.45 |
Robin_Watts | tor8: leaky jack mcleaky. | 18:37.48 |
eto | Robin_Watts: yes but our transformation baths are mostly GM jgpg,jpe,tiff -> png,jpg and occasional pdf -> png for thumbnails | 18:37.55 |
| Robin_Watts: removing gs from graphics magic should get rid of cups and pdf support - while mudraw draws nicer pdfs and seems to be faster overall | 18:38.45 |
| Robin_Watts: correct logic? | 18:39.00 |
| also scope is longterm | 18:40.16 |
Robin_Watts | eto: updating imagemagick to use mupdf instead of gs will remove the dependency on cups, and should give nicer results, yes. | 18:40.29 |
| but it will stop you ever being able to use postscript input (dunno if that matters to you) | 18:40.46 |
eto | Robin_Watts: is such thing even possible? i am not very familair with imagemagick internals | 18:40.57 |
Robin_Watts | eto: imagemagick spots it's a PDF and shells out to gs. | 18:41.17 |
| It should be possible to shell out to mudraw. | 18:41.26 |
eto | Robin_Watts: no we have no postscript input - we went imagemagick way because gd is very flaky in php with huge images our users thend to push up | 18:41.33 |
Robin_Watts | Though, frankly, you may be as well calling mudraw directly. | 18:41.46 |
eto | Robin_Watts: it would simpler just callm mudraw directly | 18:41.59 |
Robin_Watts | eto: Given a PDF input file, how do you want it rendered? Do you have a specific size in mind ? | 18:42.28 |
| mudraw -o out%d.png -w800 -h800 in.pdf | 18:43.13 |
fredross-perry | iOS: Iâve separated the muPDF functionality into its own library (which will be easily made into a framework). | 18:43.22 |
| | 18:43.23 |
| Iâve pushed everything out of the app delegate into MuLibraryController. The user of the framework will instatiate a MuLibraryController and interact with that. | 18:43.24 |
| Iâm thinking that devs will want to use their own UI, so next I am adding some API to allow them to omit the use of both the libraryâs list of docs, and the navigation bar at the top. After that, some API to allow them to do programmatically what the navigation bar buttons would do. | 18:43.25 |
| | 18:43.26 |
| Thoughts? Feelings? | 18:43.27 |
jogux | fredross-perry: is MuLibrariesController a UIViewController subclass? | 18:44.01 |
fredross-perry | yes | 18:44.08 |
jogux | it's petty, but I'd be tempted to name it MuLibraryViewController then | 18:44.20 |
| (platform idiom etc) | 18:44.33 |
fredross-perry | thatâs fine. | 18:44.35 |
jogux | I'd probably keep the list of docs out of it | 18:45.05 |
Robin_Watts | That will write each page of in.pdf into out1.png, out2.png etc. Each page will have it's largest dimension scaled to be 800 pixels, and the smaller dimension will be appropriately sized so as to keep the aspect ratio correct. | 18:45.13 |
jogux | I can't imagine any would want to use our list, but it could go in a separate DocumentListsViewController or something. I'd see that as more part of the sample app. | 18:46.37 |
| the rest sounds good. an alternative would that as you add the APIs to allow the navigation buttons to be re-implemented outside of MuLibraryController, we actually use that to implement our toolbar rather than having it in MuLibraryController | 18:47.50 |
eto | Robin_Watts: one more thing - given i get time - can one compile static mudraw? | 18:48.29 |
| Robin_Watts: so everything it needs ends up in single blob? | 18:48.44 |
Robin_Watts | eto: That's what the makefiles do by default. | 18:48.45 |
| (if you have the libs it needs in the thirdparty dir, then it builds entirely statically) | 18:49.21 |
eto | Robin_Watts: ah so all the cli tools besides viewer should be completely xless? | 18:49.23 |
Robin_Watts | exactly. | 18:49.30 |
eto | amazing | 18:49.36 |
Robin_Watts | (it needs jpeglib and openjpeg and freetype and zlib etc) | 18:49.54 |
fredross-perry | jogux: Perhaps. When I get there Iâll run some details past you. | 18:49.58 |
eto | Robin_Watts: my c skills are pretty bad i dream of being able to draw pdf pages into framebuffer (opengl) one day | 18:50.26 |
| Robin_Watts: is mupdf library thing i want to look into? | 18:50.45 |
Robin_Watts | eto: You'd do that by drawing to a bitmap, then uploading that bitmap as a texture to opengl, then plotting that. | 18:51.05 |
| You'd probably find it easier to draw to the framebuffer without using opengl. | 18:51.24 |
eto | Robin_Watts: but that bitmap can be in memory right? i don't need tempfiles or anything | 18:51.28 |
Robin_Watts | eto: Right. you'd need to call the mupdf C API for that. Easy enough. | 18:51.56 |
eto | Robin_Watts: currently i am trying to write opengl grid draw i would like to use for image viewer | 18:52.17 |
Robin_Watts | There is an example of how to do it in less than 100 lines of C. | 18:52.24 |
eto | Robin_Watts: i haven't got very far because i don't have enough time | 18:52.30 |
| Robin_Watts: but i intend to work on this - currently i use gliv and i am pretty sad with it's current state | 18:52.55 |
| Robin_Watts: i tried several alt viewers but none fit my needs | 18:53.13 |
| Robin_Watts: thinking about this a lot made me look into mupdf as well | 18:53.42 |
| Robin_Watts: this is slighly aligned to my employers needs | 18:54.02 |
malc_ | eto: which ones have you looked at? | 19:07.54 |
eto | malc_: sxiv feh gpiview and several others | 19:08.48 |
| gpicview | 19:08.53 |
| gpicview is closer while gliv is closest | 19:09.23 |
malc_ | eto: and sxiv for instance is not suitable because... | 19:10.36 |
mvrhel_laptop | crap the named color stuff when the source is an image is not set up to work properly | 19:10.51 |
eto | malc_: bindings are for vimmists, although i changed them still not good enough, and all have problems with scrolling modern huge images | 19:11.32 |
| malc_: you sxiv author!? | 19:11.42 |
malc_ | eto: nope | 19:12.15 |
eto | malc_: in windows irfan was my favorite although i configured that one heavyly as well | 19:12.57 |
Robin_Watts | tor8: commit f84a189d5f94 makes mudraw leak like a very leaky thing indeed. | 19:19.22 |
| And something along the way has broken mudraw -t horribly. | 19:19.58 |
| And the fz_meta calls in the windows code need to be updated to have ctx. | 19:22.01 |
| Oh, god, this isn't a circular reference thing is it? | 19:25.18 |
tor8 | let me take a look at the leaks | 19:26.05 |
Robin_Watts | pdf_annot -> pdf_xobject -> pdf_page -> pdf_annot | 19:26.36 |
| Yeah, that's a problem :( | 19:26.43 |
tor8 | the pdf_page leaks (initialised with the wrong refcount) | 19:27.43 |
Robin_Watts | tor8: where? | 19:29.29 |
tor8 | it's allocated with fz_malloc_struct rather than fz_new_page (which initialises the refcount) | 19:29.51 |
| and the fz_drop_page forgets to free the fz_page struct (it just calls the destructor) | 19:30.03 |
| I've got fixes for those and mupdf-x11 stops leaking on pdfref17 | 19:30.15 |
Robin_Watts | No annotations on pdfref17. | 19:31.01 |
| Try annots.pdf | 19:31.05 |
tor8 | will do | 19:31.09 |
| pdf_get_string_or_stream leaks in calc.pdf | 19:31.52 |
Robin_Watts | I fear circular references are going to be a pain. | 19:31.59 |
| docs hold pages and pages hold docs, right? | 19:32.23 |
tor8 | ugh. yeah. | 19:33.13 |
| we could remove the hard reference from page to doc and leave it up to the client to not free the doc while the pages live | 19:33.36 |
| or actually, no, docs don't hold pages | 19:33.50 |
| so that shouldn't be a problem | 19:33.57 |
Robin_Watts | OK. | 19:34.05 |
| annots holding pages that hold annots is a problem though | 19:34.17 |
tor8 | where do annots hold pages? | 19:34.44 |
| oh, pdf_annot_s holds a pdf_page | 19:35.08 |
| I didn't clean up the pdf_annot/pdf_page API yet | 19:36.02 |
| it still has the same duality thing going on as the document/page functions did | 19:36.15 |
fredross-perry | re: gsview beta, should we also beta the OSX and Linux versions, and how do we do that? | 19:36.20 |
tor8 | but apparently they don't need to, since pdf_annot already holds the pdf_page | 19:36.33 |
| maybe we can zap the annot->page field | 19:36.39 |
| annots don't keep the reference as the code currently exists | 19:37.05 |
| in some places | 19:37.14 |
Robin_Watts | Do you want to rebase your fix back and squash it in? | 19:37.32 |
| Hunting for bugs later on when we have a section of history that does nasty things is not going to be nice. | 19:38.03 |
tor8 | a memory leak I wouldn't worry about backpatching | 19:38.23 |
| fix on tor/master for the pdf_page leak | 19:40.11 |
Robin_Watts | tor8: I found it while looking to see why mudraw -t has broken. | 19:40.42 |
tor8 | Robin_Watts: what is broken with mudraw -t | 19:40.52 |
Robin_Watts | SEGV | 19:40.57 |
tor8 | annots.pdf doesn't leak with my fix | 19:41.37 |
| according to valgrind | 19:41.41 |
| (you're talking about ghostpdl/gs/examples/annots.pdf right?) | 19:41.56 |
Robin_Watts | tor8: Your fix looks good. | 19:42.11 |
tor8 | which file SEGVs/ | 19:42.20 |
Robin_Watts | Personally, I'd rebase it back, cos a neat history is a thing of beauty, but... | 19:42.38 |
tor8 | if we find anything worse later (like the mudraw segv) we can squash | 19:43.02 |
Robin_Watts | mudraw -t pdf_reference17.pdf 1 | 19:43.40 |
tor8 | Robin_Watts: can't reproduce... | 19:44.34 |
Robin_Watts | tor8: On robin/master there is a fix for the windows build. | 19:44.50 |
| trying a rebuild now. | 19:45.09 |
tor8 | 'make nuke' to clear out the generated files as well, in case there's something there | 19:45.27 |
eto | hmm as soon as i select freetype in freebsd port build uptions - it wants to pull in ghostscript | 19:45.39 |
Robin_Watts | yeah, rebuild on the MSVC solution does all that. | 19:45.43 |
tor8 | LGTM | 19:45.46 |
eto | but freetype support should not depend on ghostscript right? | 19:46.25 |
Robin_Watts | I bet freetype has an example app that uses gs for something. | 19:47.13 |
| tor8: OK, rebuild seems to have solved it. thanks. | 19:47.46 |
eto | Robin_Watts: hmm the problem is installed binary freetype and freetype2 packages which has no such dep | 19:48.55 |
| Robin_Watts: port doesn't seem to be picking up i am going to consult with freebsd guys | 19:49.16 |
| ty very much for help | 19:49.21 |
Robin_Watts | eto: What are you trying to build? | 19:49.33 |
| mupdf? | 19:49.41 |
| If you're building mupdf, and you want it statically linked, then you REALLY don't want to be pulling in freetype as as a package. | 19:50.10 |
eto | Robin_Watts: right now imagemgick without postscript | 19:50.15 |
Robin_Watts | oh, right, have at it. Nowt to do with us :) | 19:50.30 |
eto | Robin_Watts: wait arent you imagemagick guys as well? | 19:50.54 |
| roger so you are mupdf and gs solely | 19:51.10 |
Robin_Watts | just mupdf and gs. | 19:51.45 |
eto | Robin_Watts: now i understand im->uses->gs you here are gs and mupdf somehow i forgot you deal only with mu and gs sorry guys | 19:52.31 |
mvrhel_laptop | henrys: I am going to be a bit busy with this stuff for stefan this week | 19:55.56 |
eto | ty guys | 19:56.15 |
Robin_Watts | you're welcome. | 19:56.39 |
mvrhel_laptop | bbiaw | 19:56.45 |
Robin_Watts | tor8: Page 1 of annots.pdf is not rendering correctly for me. Annotations aren't appearing. | 20:08.04 |
| I've got to go now though :( | 20:08.13 |
| will try and check in again later. | 20:08.26 |
tor8 | I see no difference pre and post my work | 20:08.57 |
Robin_Watts | tor8: Do you see any strokes on page 1? | 20:55.24 |
| oh! it might be screen vs print | 20:55.45 |
| Sorry. | 20:55.51 |
FreezingAlt | Robin_Watts: This is odd, Google is able to read those "unreadable" PDFs | 21:02.39 |
| and it doesn't seem to be OCR either. | 21:02.45 |
| How is Google reading these subsetted fonts without OCR? | 21:19.34 |
tor8 | Robin_Watts: so... we're good? | 21:38.14 |
fredross-perry | is there any doc on the recent mupdf API changes? Iâm rebuilding iOS and getting some errors. | 22:15.23 |
| OK, looks like itâs largely passing fz_context * to functions. | 22:27.20 |
tor8 | fredross-perry: yeah, it's pretty much all just passing fz_context to functions | 22:56.38 |
| should be pretty simple | 22:56.43 |
fredross-perry | I see now. Also a few fz_free_xxx have become fz_drop_xxx | 22:57.08 |
tor8 | yeah. the commit messages if you look at the git log should list most of the changes. | 22:57.32 |
| a few renames (free and close become drop, so we always use drop for releasing resources), and adding ctx arguments to almost all functions | 22:58.18 |
| only the basic math and string functions don't always take a ctx | 22:58.43 |
fredross-perry | Iâve got it modified and working, thanks. Iâll do the same to gsview now | 23:20.08 |
| Forward 1 day (to 2015/02/18)>>> | |