| <<<Back 1 day (to 2012/11/01) | 2012/11/02 |
mvrhel | henrys: are you there? | 05:12.15 |
henrys | missed you mvrhel talk to you tomorrow sometime. | 05:45.18 |
kens | Oh no, the XPS revenant is rising again... | 13:18.59 |
tor8 | kens: 692182? | 14:21.31 |
kens | No, support email | 14:21.41 |
tor8 | the guys using version 8.71? | 14:22.18 |
kens | Yep :-) | 14:22.24 |
UweS | Hi! | 14:49.04 |
| Any mupdf developers around? | 14:49.14 |
Robin_Watts | yup. | 14:49.41 |
UweS | Great :-) | 14:49.59 |
| I'm using mupdf 1.0, which is marked as stable in gentoo. | 14:50.40 |
| Today I created a pdf with gnuplot, which was by mistake, hm, 5 Meters high or so (in 100% zoom level) | 14:51.39 |
| When I open the file, my xserver suddenly crashes and restarts immediately | 14:52.42 |
Robin_Watts | Probably cos mupdf is creating a very large bitmap. | 14:52.56 |
UweS | With evince the file is opened correctly | 14:53.04 |
Robin_Watts | Does mudraw render it OK ? | 14:53.17 |
UweS | have to test this, just a moment. | 14:53.50 |
| What do I have to type? | 14:55.34 |
tor8 | UweS: Robin_Watts: it shouldn't affect the x server. mupdf draws images over x11 by chopping them up into square tiles to reuse shared memory buffers. | 14:55.37 |
| see x11_image.c | 14:55.41 |
Robin_Watts | tor8: but the window will presumably be large. | 14:56.24 |
| and that might trip a bug in the x server ? | 14:56.38 |
tor8 | Robin_Watts: no, we clip that to a max of 90% of the screen size | 14:56.44 |
| I think... | 14:56.49 |
Gigs- | Robin_Watts: mutool -ggg worked great on making those "linearized" xrefs with generation 6 and broken offsets normal again | 14:58.00 |
UweS | Ok, mudraw renders the image correctly | 14:58.27 |
| If anyone of you wants to have the image for testing purposes I can send it to you. | 14:59.35 |
| I mean the pdf, of course | 14:59.49 |
tor8 | Robin_Watts: hm, we only limit the size when resizing on a page change in shrinkwrap mode, so you may be on to something there | 15:00.05 |
Robin_Watts | UweS: Could you create a bug on bugs.ghostscript.com and attach it there with full details of your system etc please? | 15:00.08 |
Gigs- | Robin_Watts: I have a somewhat offtopic question though, my program to rename colorants uses a regex to rename them re.sub(r"(/"+ gFromColor +r")([()<>\[\]{}/%\s])", r"/"+ gToColor +r"\2", pdf_file)... basically searching for strings containing the colorant name and replacing... the problem is that some subset of our files have CMYK named as spot colors... when I try this the files break badly. Is it not allowed to have a spot colorant named | 15:00.26 |
| "Cyan" or "Magenta"? | 15:00.26 |
Robin_Watts | Gigs-: Fab. If you use -l too, then you should get linearized out (assuming you're running a recent git version) | 15:00.44 |
kens | Spots named Cyan and Magenta are legal | 15:00.57 |
Gigs- | I don't want them linearized anyway | 15:00.58 |
| kens: can you think of why my regex seems to break if I'm renaming a spot to CMYK? | 15:01.16 |
Robin_Watts | Gigs-: I bow to kens superior knowledge on this. | 15:01.17 |
kens | Gigs- : not really, can you put an example before and after up ? | 15:01.47 |
Gigs- | the second parens on it is basically just "valid string delimiters", it's a lot simpler than it looks | 15:01.50 |
UweS | Robin_Watts: Don't know when, but I'll mark it in my calendar as a ToDo entry :-) | 15:02.07 |
Gigs- | kens: ok let me process one | 15:02.13 |
Robin_Watts | UweS: Thanks. | 15:02.22 |
UweS | Have a nice weekend! Ciao | 15:03.33 |
henrys | yeah! no hpgl/2 or pcl mail today | 15:07.46 |
kens | So far.... | 15:07.52 |
| Not end of the business day yet :-) | 15:08.02 |
Gigs- | kens: hmm it seems to be working now, weird | 15:09.21 |
kens | :-) | 15:09.28 |
Gigs- | kens: I wonder if it's because the numbers we used for cmyk are shorter | 15:09.32 |
kens | The support engineer effect at work | 15:09.39 |
Gigs- | and \17<delimiter> might match something other than the color names | 15:09.47 |
| like, stuff in a compressed stream | 15:10.01 |
kens | err I don't speak regex that well | 15:10.06 |
| But its entirely possible that a binary stream will contain stuff like that | 15:10.22 |
| Faitly unlikely, though | 15:10.31 |
| Fairly | 15:10.36 |
Gigs- | yeah, is there any way to more correctly identify when a string is containing a colorant name? | 15:10.40 |
kens | Yes, interpret the PDF file :-P | 15:10.59 |
Gigs- | hehe | 15:11.03 |
| if I did muck up a compressed stream, would there be a checksum that would catch it normally? | 15:11.41 |
kens | No, no checksum at all | 15:11.50 |
Gigs- | :( | 15:11.54 |
kens | If you alter the content, then its broken | 15:11.59 |
| What sort of errors did you get ? | 15:12.08 |
| And how are you dealing wioth compressed object streams ? | 15:12.27 |
Gigs- | if I remember right it would corrupt it pretty badly, to the point that ghostscript wouldn't render it | 15:12.36 |
kens | Well modifying a binary stream woudl do that | 15:12.51 |
Gigs- | I guess what I'll have to do ultimately is a regression test on everything | 15:13.04 |
kens | You could do this in Ghostscript, with a bit of PostScript hacking | 15:13.10 |
Gigs- | it's already pretty much done the regex way | 15:13.22 |
kens | redefine setcoolorspace so that you examine the space, if its /Separation, check the name and replace if required. | 15:13.42 |
Gigs- | we have some deviceNs that need renaming too | 15:13.56 |
kens | OK so check DeviceN too | 15:14.05 |
| Can do ita ll in hte same place | 15:14.12 |
| let me retype that.... | 15:14.24 |
| You can do it all in the same place | 15:14.31 |
| I'm not convinced that a 'dumb' approach ignoring the context will ever work 100% reliably | 15:14.58 |
| You really need to know that you are dealing with a colour space string | 15:15.15 |
Gigs- | I think you are right, but it seems to have worked 99.9% of the time | 15:15.39 |
kens | Sure, if 99% is good enough, then you are OK. | 15:15.57 |
Gigs- | We are already live with my regex'ed PDFs (except the ones with numeric CMYKs), so I think from here I'll just have to regression test them vs the old ones | 15:16.20 |
kens | Hmm, what's a 'numeric CMYK' ? | 15:16.44 |
Gigs- | the whole point of this project is to convert all our colorant names because we had a system of putting ink numbers in the files instead of color intent names | 15:17.11 |
kens | Oh, I see | 15:17.20 |
Gigs- | in some cases they named CMYK like 17,18,19,20 that represented certain inks | 15:17.31 |
| we are fixing that now and changing the files to have PANTONE XXX C/CMYK instead of meaningless ink numbers | 15:17.52 |
kens | Makes sense | 15:18.04 |
Gigs- | we had already started using CMYK as CMYK a few years ago so there aren't many files with CMYK named wrong | 15:18.08 |
| so mostly spots | 15:18.37 |
kens | Fair enough | 15:18.44 |
Robin_Watts | mvrhel_laptop: Last day at your conference? | 15:19.14 |
mvrhel_laptop | hi Robin_Watts. yes last day | 15:19.31 |
kens | Is you r brain thoroughly scrubbed now ? | 15:20.18 |
mvrhel_laptop | so I have to say that overall they (MS) seem to be moving in a good direction. with more focus on C++ and DirectX and, less on the managed code | 15:20.31 |
| kens: Yes my brain is pretty fried right now | 15:20.43 |
kens | mean more as in brain-washed | 15:20.56 |
mvrhel_laptop | hehe | 15:21.07 |
| well yes. funny I am ready to write some C++ apps | 15:21.19 |
Robin_Watts | mvrhel_laptop: I've got some more images online from the ETS stuff. I think with the last couple I can see the 'black pixels in the transitions'. | 15:21.25 |
| They are caused by the random noise stuff. | 15:21.58 |
mvrhel_laptop | Robin_Watts: Ah | 15:22.05 |
Robin_Watts | but if your brain is fried already, let's not further overload it with this. | 15:22.31 |
| Essentially though, all this depends on a change I've made to the code to stop it being completely broken. | 15:22.55 |
| So I am at a loss to understand how anyone has ever successfully used this :( | 15:23.21 |
mvrhel_laptop | Robin_Watts: I was wondering the same thing | 15:25.18 |
| also, how did the customer make it work | 15:25.23 |
| it did they not really | 15:25.31 |
Robin_Watts | indeed. | 15:25.31 |
mvrhel_laptop | that is, is the issues he is seeing from not really getting it to work correctly | 15:25.58 |
Robin_Watts | Well, it's possible that the SSE version works correctly and the C version doesn't. | 15:26.25 |
mvrhel_laptop | Robin_Watts: So without the noise, do things look better than with FS? | 15:26.26 |
Robin_Watts | I've not even looked at that. | 15:26.30 |
mvrhel_laptop | Robin_Watts: oh | 15:26.30 |
Robin_Watts | but I think he was trying both SSE and C interchangably. | 15:26.50 |
mvrhel_laptop | Robin_Watts: there is a comment someplace in the code that the accelerated versions are not dot for dot with the C code | 15:26.54 |
Robin_Watts | mvrhel_laptop: Right, but it seems to me that there is a pretty glaring flaw in the C stuff. | 15:27.19 |
henrys | just missed you last night mvrhel_laptop | 15:27.20 |
mvrhel_laptop | henrys: oh I was just going to tell you about windows 8 and PDF at least on the slate and the phone | 15:27.43 |
Robin_Watts | The multi-plane optimisation makes stuff look nicer. | 15:27.54 |
mvrhel_laptop | microsoft wrote their own viewer app called reader | 15:27.55 |
| when you try to open something on the phone it will take you to the store to download it (for free) | 15:28.12 |
| the slate comes with it installed | 15:28.17 |
| it apparently opens pdf and xps. hyperlinks did not work in it | 15:28.38 |
Robin_Watts | The "bias according to distance" stuff, I am unsure about. | 15:28.47 |
mvrhel_laptop | it does have word search | 15:28.53 |
| I did not try any complex pdfs with it | 15:29.01 |
Robin_Watts | The random noise makes stuff look worse, IMHO. | 15:29.02 |
mvrhel_laptop | Robin_Watts: that is what I would have expected | 15:29.11 |
| I did a bunch of studies on that years ago | 15:29.21 |
| and saw the same thing | 15:29.25 |
Robin_Watts | years and years ago, paulgardiner and I worked on various video codecs. | 15:29.41 |
mvrhel_laptop | it is handy at breaking up some patterns but overall you lose deatil | 15:29.52 |
| detail | 15:29.54 |
Robin_Watts | (pre mpeg stuff, so all black magic). | 15:29.58 |
mvrhel_laptop | cool | 15:30.11 |
Robin_Watts | We had one codec where we added some simple dithering, and it made a MASSIVE difference. | 15:30.22 |
mvrhel_laptop | places where you have major quantization, dithering is very helpful | 15:30.56 |
Robin_Watts | just mindblowingly better detail; we started to see smoke in the background of scenes etc. | 15:31.00 |
mvrhel_laptop | where you already are doing dithering (e.g. halftoning) you don't generally want to add noise | 15:31.18 |
| off to another talk on native code usage.... | 15:31.40 |
henrys | mvrhel_laptop:it's just called "reader" | 15:31.44 |
Robin_Watts | You may be right. | 15:31.44 |
mvrhel_laptop | yes | 15:32.04 |
| yes to henrys | 15:32.10 |
Robin_Watts | henrys: I think there was a "Reader" app on the Windows 8 preview I downloaded. | 15:32.24 |
| Not sure I ever made it work :( | 15:32.43 |
mvrhel_laptop | http://windows-reader-metro.en.softonic.com/ | 15:32.49 |
paulgardiner | Robin_Watts: yeah, I remember that. It was just a simple +1 -1 checkerboard, but made a huge improvement.# | 15:32.57 |
mvrhel_laptop | so visual studio pro includes the profiler | 15:35.02 |
| you don't need the fancy team edition | 15:35.23 |
Robin_Watts | mvrhel_laptop: Where is the reverse debugger? | 15:35.39 |
mvrhel_laptop | good question | 15:35.56 |
| I can talk the VS people today | 15:36.08 |
Robin_Watts | Actually, if memory serves their reverse debugger only worked for managed code... so possibly they don't have one any more :( | 15:36.20 |
mvrhel_laptop | talk to the... | 15:36.20 |
| ah | 15:36.26 |
Robin_Watts | They should license from undoDB. | 15:36.33 |
henrys | I just spoke with some guy at undoDB asking them for a mac os x version. He wanted me to fill out a survey at cambridge which I did. % time coding vs. debugging type thing | 15:38.04 |
| so the windows approach should be make a list of why our reader is better and knock on MS's door. So there is the solution and the problem. I doubt our's is better without hw accel. | 15:40.03 |
mvrhel_laptop | henrys: right now their app is the only one that shows up in the store | 15:40.29 |
| it would be nice to get ours in there | 15:40.35 |
Robin_Watts | Theirs will certainly be hw accelerated. They have been banging on about how everything is HW accelerated and much faster in windows 8. | 15:41.20 |
mvrhel_laptop | I wonder how well they do with some complex PDFs | 15:42.04 |
| bbiaw | 15:44.55 |
henrys | windows mobile phone market share is on an uptick but at 3.5 % and competing against iOS and droid hard to imagine them taking a lot of the pie. | 15:51.29 |
Robin_Watts | Wow. Another thing I think is wrong with this code. | 15:53.30 |
| He's applying a scale in what seems to me the wrong place. | 15:53.49 |
| I think mvrhel and I should arrange a time next week to sit down and go through the code together. | 15:54.44 |
henrys | makes sense, Robin_Watts | 16:06.11 |
ray_laptop | Hi, Robin_Watts. I've read the logs w.r.t. your work on ETS. Thanks for digging into this mess. | 16:10.44 |
Robin_Watts | ray_laptop: You're welcome. It's been interesting, if mind boggling :) | 16:11.06 |
ray_laptop | I know Raph got good looking output, so now I wonder how. | 16:11.08 |
Robin_Watts | Well, the output I'm getting now looks good. I can walk you through the examples if you want. | 16:11.36 |
ray_laptop | Have you looked at the differences to the rinkj/evenbetter-rll.c ? (in case the problems crept in with the "improvements") | 16:12.09 |
Robin_Watts | ray_laptop: Not yet, no. | 16:12.19 |
| So there is development history hidden in there? | 16:12.31 |
| Right, that's v1.33 | 16:13.50 |
| and that looks to be broken in the same ways. | 16:14.45 |
| And no useful history there whatsoever :( | 16:16.23 |
ray_laptop | Robin_Watts: I didn't see any updates in the log history . Just the "bulk" changes for the most part | 16:16.25 |
Robin_Watts | yeah. | 16:16.42 |
ray_laptop | Robin_Watts: have you pushed your fixes up to the public git repo (and where was that, again ?) | 16:17.30 |
Robin_Watts | ray_laptop: It's deliberately not a public repo. | 16:17.51 |
ray_laptop | I may as well switch over to a clone of it | 16:17.57 |
| Robin_Watts: I meant a repo that we can see | 16:18.09 |
Robin_Watts | But it's in my homedir where we can share it between ourselves. | 16:18.13 |
| And I haven't pushed the latest changes yet. | 16:18.21 |
ray_laptop | Robin_Watts: OK. What's the URL, please ? | 16:18.44 |
Robin_Watts | I'm just rearranging them into a sane series of small steps now. | 16:18.49 |
| (Hmm, amateur alliterators are almost always assholes). | 16:19.03 |
| $ git remote -v | 16:19.26 |
| origin robin@ghostscript.com:/home/robin/sauce/ETS.git (fetch) | 16:19.28 |
| origin robin@ghostscript.com:/home/robin/sauce/ETS.git (push) | 16:19.30 |
ray_laptop | Robin_Watts: you mean 'shuffling' not rearranging, right ? | 16:19.44 |
Robin_Watts | I mean splitting out changes from my 1 uber commit into lots of smaller ones. | 16:20.16 |
ray_laptop | Robin_Watts: I was just extending your alliteration -- I should have put a ;-) smiley on that comment | 16:21.40 |
Robin_Watts | ray_laptop: Ah! Very good. Too smart for me at this time on a friday. | 16:22.04 |
ray_laptop | my twins and I play alliteration games sometimes. | 16:23.02 |
| it's good for their vocabulary development. Both of them scored 100% proficient on the CA standardized writing test (the whole 7th grade class at their school scored "proficient" or "advanced" -- VERY rare in CA) | 16:24.49 |
| Robin_Watts: I don't follow those git instructions above | 16:28.19 |
| Robin_Watts: don't I just clone your repo as usual ? | 16:28.57 |
Robin_Watts | ray_laptop: That was a paste from my repo. You want to use: | 16:30.49 |
| git clone ray@ghostscript.com:/home/robin/sauce/ETS.git ETS.git | 16:31.06 |
| but give me an hour or so to get my changes in to avoid conflicts. | 16:31.23 |
ray_laptop | Robin_Watts: no rush. I just wanted to look at the things you've found (in between banging my head against the wall on cust 532's stuff) | 16:32.27 |
Robin_Watts | right, I've not pushed them yet. | 16:32.46 |
ray_laptop | I'll just go back to head banging for a while. | 16:32.53 |
Robin_Watts | Ah! OK, so the original code wasn't as broken as I'd thought. | 17:20.05 |
henrys | Robin_Watts:what is the latest status of mupdf & gs with windows 8? | 17:54.52 |
Robin_Watts | henrys: The latest result was that I had gs building for metro, in so far as I had a build that stripped out all the calls to WIN32 specific APIs. | 17:57.09 |
| So no display device. | 17:57.18 |
| What I ended up with was a command line exe/dll that could be called from the metro world. | 17:57.58 |
henrys | and mupdf? | 17:58.04 |
Robin_Watts | I have no memory of having looked at mupdf. | 17:58.30 |
| BUT mupdf doesn't call any win32 APIs except in the viewer app. | 17:58.45 |
| so mudraw should work fine. | 17:59.16 |
| So basically, my belief is that for both gs and mupdf if we have customers wanting to build them into their own Metro, sorry TIFKAM, apps then we are good to go. | 18:00.21 |
| We don't have viewer apps that run in the TIFKAM world though. | 18:01.00 |
| (I count the display device as a viewer app) | 18:01.12 |
| People can of course run the existing WIN32 viewers in the desktop world. | 18:01.31 |
| Does that make sense ? | 18:01.33 |
henrys | yes | 18:01.53 |
| good enough for my meeting. | 18:02.49 |
mvrhel_laptop | henrys: I may fool around a bit with building some Windows 8 apps with gs and with mupdf based upon what I have learned this week to see if there are any issues | 19:27.48 |
Robin_Watts | mvrhel_laptop: For gs, you need to predefine METRO=1 and use the usual msvc makefiles. | 19:28.24 |
mvrhel_laptop | essentially, most apps will be built with xaml and c++ and the gs or mupdf operators should be wrapped up as asynchronous windows runtime calls | 19:28.53 |
| Robin_Watts: ok thanks | 19:28.57 |
Robin_Watts | mvrhel_laptop: Sounds like a repackaging of the DLL ? | 19:29.46 |
| The DLL already has a defined API (the gsapi stuff, essentially), so if those were exposed in the right way, would that fit the bill? | 19:30.25 |
mvrhel_laptop | Robin_Watts: really those API calls need to be wrapped with a c++ operator that is invoked asynchronously. | 19:31.11 |
| it should not be too difficult | 19:31.35 |
| famous last words | 19:31.51 |
Robin_Watts | mvrhel_laptop: Right, but that's not a huge task, that's going to require a massive amount of refactoring, right? | 19:31.57 |
mvrhel_laptop | hence my desire to give it a go | 19:31.59 |
Robin_Watts | Righto. | 19:32.05 |
mvrhel_laptop | no there should be no refactoring | 19:32.09 |
| they (MS) really wants to make the use of existing libraries in native code very easy to use | 19:32.32 |
| so that they get more app developers to port their code | 19:32.42 |
| that was this mornings talk | 19:32.52 |
| Robin_Watts: but I think it would be worth it to go through the excercise. I have a little color app that uses gs that I have been wanting to build | 19:34.00 |
| to show off the color management options of gs | 19:34.10 |
Robin_Watts | mvrhel_laptop: It certainly sounds worthwhile. | 19:34.52 |
| When current windows devs look to use gs, I think they are pleased to see a DLL. | 19:35.08 |
| When windows 8 devs look to use gs, I think they will be pleased to see a whateverTheNameForTheWrappedUpThingYouWantToMake is. | 19:35.35 |
mvrhel_laptop | yes. gs solution does not include a static lib does it? | 19:35.57 |
| mupdf has the static lib and no dll | 19:36.05 |
| any particular reason for this. | 19:36.25 |
Robin_Watts | mvrhel_laptop: There is a build option to get a static lib. | 19:36.27 |
mvrhel_laptop | oh ok | 19:36.30 |
Robin_Watts | At least in the unix build. I added that while doing one of the board ports. | 19:36.48 |
mvrhel_laptop | oh I see the lib | 19:37.25 |
| and the dll in gs | 19:37.28 |
| nevermind | 19:37.31 |
Robin_Watts | mupdf has no DLL because... we haven't needed one, and we've been trying to keep platform specifics to a minimum, I guess. | 19:38.02 |
mvrhel_laptop | right | 19:38.09 |
Robin_Watts | And when you have a DLL that kinda freezes the API, and until very recently we've not had what we've considered a frozen API. | 19:38.34 |
mvrhel_laptop | Robin_Watts: so in gs, how do I create the static lib in windows? | 19:39.09 |
| I guess it is not created with the build all | 19:39.19 |
Robin_Watts | mvrhel_laptop: It's not. | 19:39.30 |
| just looking. | 19:40.20 |
| First I have to find the target definition in the maze of tiny makefiles all alike. | 19:41.17 |
| ok. in the top level PDL makefile there are things like pcl-lib: | 19:42.37 |
| or ls-lib | 19:42.44 |
| ls-lib was the one I was working with at the time. | 19:42.51 |
mvrhel_laptop | so is there a similar thing for gs? | 19:43.35 |
Robin_Watts | And that looks to be pcl specific. | 19:43.39 |
mvrhel_laptop | right | 19:43.46 |
| heading to a talk in 2 minutes.... | 19:43.58 |
| the future of c++ ..... | 19:44.05 |
Robin_Watts | If I find it, I'll burble here. | 19:44.11 |
mvrhel_laptop | ok thanks! | 19:44.15 |
| ttyl Robin_Watts | 19:44.19 |
Robin_Watts | night. | 19:44.25 |
mvrhel_laptop | night have a good weekend | 19:44.33 |
Robin_Watts | mvrhel, ray: (For the logs) OK. That's all the changes to the ETS code pushed. | 19:57.05 |
| My comments show the areas I am confused by; I don't really understand the ETS weighting scaling that's done, and the wcl stuff just seems wrong to me. | 19:58.08 |
| mvrhel: (Again for the logs) I cannot see a windows target for a lib for gs. | 20:00.58 |
| I suspect you'll need to do some makefile hackery in gs/psi/msvc.mak | 20:01.17 |
| If you look at line 1082 there is the target for $(GSDLL_DLL): | 20:02.27 |
| mvrhel: Commit mailed with makefile changes. | 20:27.23 |
| mvrhel_laptop: finished now? | 23:58.43 |
mvrhel_laptop | Robin_Watts: yes. trying to clear my head. Thanks for the email about the lib build | 23:59.06 |
| Forward 1 day (to 2012/11/03)>>> | |