| <<<Back 1 day (to 2013/04/23) | 2013/04/24 |
Robin_Watts | TTOTD: When trying to build stuff on peeves, don't ssh to casper. | 09:55.13 |
| Do printfs from the non main pthread appear on stdout? | 12:44.15 |
chrisl | They should do, yes | 12:46.14 |
henrys | good thing I assigned that bug to chrisl, that guy is a bit much for me ;-) | 13:39.55 |
kens | Which bug henrys ? | 13:40.10 |
henrys | 693932 | 13:40.51 |
kens | Oh yes, that one,I read the emails...... | 13:41.28 |
| henrys did you see Math had produced a patch for bicubic downsampling in pdfwrite for me ? I'm impressed he's done it so fast | 13:42.19 |
henrys | yes he is a very good contributor that's why I asked ray to review his other bounty and pay him. | 13:43.16 |
chrisl | henrys: I seem to be attracting these ranty folks just now :-( | 13:43.27 |
kens | henrys I'll review teh bicubic patch promptly | 13:43.48 |
| Onfirs sight it looks good | 13:43.55 |
henrys | he does point out a problem with the URW license. URW wouldn't like that. | 13:43.55 |
chrisl | And a problem with the website - I'll fix that shortly | 13:44.25 |
henrys | he does seem like a clever fellow maybe we can exploit him in some way but I'm not creating temp files in pcl ;-) | 13:45.51 |
chrisl | We could do it in the device, but it's well known (pretty much a FAQ) that TIFF output is not streamable, from anywhere | 13:46.51 |
| Okay, GhostPCL web page updated to reference AGPL rather than GPL | 13:51.57 |
henrys | chrisl:I think it should just break with an error message if a non streamable output is requested. | 13:52.12 |
chrisl | henrys: I have an update which does that, but it means adding a way to check if the file is seekable, which we didn't already have. | 13:53.05 |
henrys | chrisl: error return from seek or something? | 13:54.21 |
chrisl | henrys: error return from seek is not reliable, unfortunately - a lot of the time, non-seeking files just ignore seek calls, and don't return an error :-( | 13:55.10 |
henrys | oh I didn't know that. | 13:55.38 |
chrisl | henrys: what I've got uses fstat() and checks if it's a "regular file" (which are always seekable) | 13:56.02 |
henrys | chrisl:that might explain why his jobs worked in the past. Maybe the seek was in the device code - as ray said but didn't really have an effect. | 13:57.00 |
tor8 | Robin_Watts: const warnings in draw_device.c lines 2112 and 2114 (in fz_bound_path | 13:57.58 |
| _accurate) | 13:58.00 |
chrisl | henrys: given that he's using tiffg4, I can't see how it would ever work - you'd end up with a broken TIFF file | 13:58.04 |
Robin_Watts | tor8: will fix. | 13:58.14 |
| It's been ages since I looked at the tiff format. Is it feasible to read tiffs without relying on the offset pointers? | 13:59.04 |
tor8 | bug 693931 works in sumatra... | 13:59.08 |
henrys | chrisl:he seems like the sort that would notice that but I could be wrong. | 13:59.14 |
chrisl | henrys: Well, unless the old code did use a temporary file in these cases - if that's the case, we should probably implement that | 14:00.05 |
tor8 | Robin_Watts: you need the offsets for the strips from the header, but since that always comes first I think it ought to be possible | 14:00.32 |
henrys | Robin_Watts:I swear I remember it working before too, but that is not to be trusted ;-^ | 14:00.41 |
Robin_Watts | tor8: For non compressed things, I could believe that the old code used to calculate the strip offsets before writing started. | 14:01.29 |
| For compressed things that's obviously not possible. | 14:01.45 |
tor8 | oh nvm, the IFD that has the offsets can come anywhere | 14:02.23 |
Robin_Watts | Does the strip data have headers on? Is it like jpeg where you can walk the file block by block and find the data that way (and assume that the data is sent in order?) | 14:02.48 |
tor8 | Robin_Watts: as long as you're writing it out as one single strip it ought to be possible | 14:02.49 |
| no headers, just raw data | 14:02.57 |
| check the code in fitz/image_tiff.c for a simple baseline tiff reader | 14:03.09 |
henrys | it would be simple enough to pull up an old ghostscript but I wednesday is a bad day for extra credit. | 14:03.51 |
Robin_Watts | So... could we make libtiff send the IFD with the offsets *after* the image data in the non seeking case ? | 14:03.57 |
chrisl | Robin_Watts: since this has come up regularly with the libtiff developers, and they've always said firmly it *must* be seekable, I doubt there are any (easy) solutions | 14:05.23 |
| FWIW, at a quick glance, I don't seen anything in the old code that falls back to using a temp file | 14:07.39 |
henrys | I really think that is ugly are we really doing that for pdfwrite - does it work to stdout? Maybe I misread the bug report | 14:09.58 |
kens | pdfwrite uses temp files. It works to stdout | 14:10.36 |
| Providing you don't try to linearize it | 14:10.49 |
henrys | yuck I guess I should correct my bug comment. | 14:15.14 |
chrisl | But pdfwrite doesn't use temp files *just* to allow streaming output | 14:15.32 |
kens | No,it uses tempfiles for *many* reasons, one of tehm being to choose themost efficient compression method | 14:15.54 |
ocelot | hi | 14:17.01 |
| i have a question ! | 14:17.06 |
| how can i use encryption feature in android ? | 14:17.19 |
| actually i want to decrypt something | 14:17.43 |
| with muPDF android | 14:17.49 |
| anyone there ?! :D | 14:18.10 |
Robin_Watts | ocelot: be patient | 14:18.17 |
ocelot | ok;) | 14:18.26 |
Robin_Watts | mupdf on android should pop up a box asking for a password when you try to open a passworded document. | 14:18.45 |
| is this not working for you? | 14:18.57 |
ocelot | i want to do it with code! im customizing it | 14:19.05 |
| but i found no method relating to decryption in mupdf.c | 14:19.33 |
Robin_Watts | Clearly there must be, otherwise the existing app wouldn't be able to do it :) | 14:20.02 |
ocelot | lol | 14:20.12 |
Robin_Watts | but it is fair to say that mupdf.c does not expose the entirety of mupdf's API. | 14:20.36 |
ocelot | i found it :D JNI_FN(MuPDFCore_needsPasswordInternal)(JNIEnv * env, jobject thiz) | 14:20.47 |
Robin_Watts | We just expose enough of the C API for our purposes. If you are customising it, you will almost certainly need to make changes there yourself. | 14:21.11 |
| The mupdf.c code is very much an 'internal unsupported' interface. | 14:21.29 |
ocelot | i found my way ! thank you! | 14:22.17 |
Robin_Watts | fab. | 14:24.13 |
henrys | mupdfers:I watched a video where bruno towage. itext author, was saying they've ported everything to android but there is nothing out there to use the interesting stuff:forms, signatures, etc. I was going to drop him an email and just tell him we do have that stuff but if one of you would like to do it, fine by me. They have a pretty good customer base and referrals are possible. Here the vid: http://itextpdf.com/summit.php 10:4 | 14:25.58 |
Robin_Watts | henrys: I'd be happy for you to contact him. | 14:30.17 |
henrys | okay | 14:30.35 |
chrisl | henrys: the old <8.70 code does *seem* to work with stdout - but I've no idea how. fseek() is not throwing an error when seeking on stdout!! | 14:34.58 |
Robin_Watts | chrisl: Just copy that version of fseek then and we'll be fine :) | 14:36.11 |
chrisl | Robin_Watts: I don't actually know what in libtiff is throwing the error he reports | 14:37.28 |
henrys | chrisl:I would just make it illegal and move on. | 14:39.47 |
chrisl | henrys: that is my plan - the old code should *not* work. I'll commit the change after a quick cluster test. | 14:40.56 |
mvrhel_laptop | ok. I have figured out what I need to do to my project to make it a real winrt example. should not be too difficult. | 14:42.02 |
Robin_Watts | famous last words :) | 14:42.23 |
mvrhel_laptop | henrys: so I am going to be out for a bit during the late morning and afternoon. have to pick up my father at the airport | 14:42.29 |
henrys | okay | 14:42.59 |
mvrhel_laptop | having him stay here for 11 days is going to slow me up a bit, but hoping I can take him to his brothers for part of the time.... | 14:43.03 |
henrys | can he write code? | 14:43.29 |
Robin_Watts | can he write documentation? :) | 14:43.55 |
mvrhel_laptop | he can test it... | 14:44.00 |
| he is pretty good with a hammer which I think he would like to use on his windows machine now and then | 14:46.09 |
henrys | bbiaw, errand. | 14:46.35 |
kens | Robin_Watts : ping | 15:33.25 |
Robin_Watts | pong | 15:33.49 |
kens | got a minute to talk me through putting stuff on my private repository on casper ? | 15:34.10 |
Robin_Watts | Sure | 15:34.14 |
| Do you have your private repo set up as a remote ? | 15:34.33 |
kens | Actually I have to reboot first, give me a second (I brokeMingW) | 15:34.38 |
Robin_Watts | ok. | 15:34.44 |
kens | OK MingW workign again now | 15:39.28 |
Robin_Watts | ok. git remote -v | 15:39.34 |
kens | I have 2 entries on casper (fetch and push) | 15:39.56 |
Robin_Watts | kens: You have 2 fetch and 2 push, or 1 fetch, 1 [ush? | 15:40.24 |
kens | casper ken@ghostscript.com:/home/ken/repos/ghostpdl.git (fetch) | 15:40.29 |
| casper ken@ghostscript.com:/home/ken/repos/ghostpdl.git (push) | 15:40.29 |
| cluster regression@ghostscript.com:/home/regression/cluster/gitbridge/ghostpdl ( | 15:40.29 |
| fetch) | 15:40.29 |
| cluster regression@ghostscript.com:/home/regression/cluster/gitbridge/ghostpdl ( | 15:40.29 |
| push) | 15:40.29 |
Robin_Watts | Just paste the results :) | 15:40.30 |
kens | origin ken@ghostscript.com:/home/git/ghostpdl.git (fetch) | 15:40.30 |
| origin ken@ghostscript.com:/home/git/ghostpdl.git (push) | 15:40.30 |
Robin_Watts | Ok, so casper is your personal repo. | 15:40.44 |
kens | Yes, I beleive so | 15:40.51 |
Robin_Watts | So you've committed your changes locally? | 15:40.54 |
kens | I have, yes | 15:40.58 |
Robin_Watts | git push -f casper master | 15:41.04 |
kens | But the casper repo is not at all up to date | 15:41.06 |
| Looks like that will take a minunte | 15:41.40 |
Robin_Watts | That says "Make the 'master' branch on casper be the same as the master branch here" | 15:41.49 |
kens | As its updating the whole lot (8 months of cxhanges) | 15:41.54 |
Robin_Watts | And that's all there is to it. | 15:42.01 |
kens | ah, thanks Robin, hopefully I can point henrys at that now | 15:42.17 |
| 2MB 26% done.... | 15:42.32 |
| well it says its done :-) Thanks robin | 15:44.15 |
Robin_Watts | np. | 15:45.35 |
kens | goodnight folks | 16:12.26 |
Robin_Watts | tor8: ping | 16:41.09 |
ray_laptop | time for another BGPrint clusterpush. Found that the icc_table was the problem in bg printing threads. That''s why "only" 5000 jobs segfaulted -- not all pages have ICC colorspaces. | 16:42.17 |
Robin_Watts | Most of the translations for the google play description are in. | 16:43.28 |
| and none of the app strings have been translated, so it looks like they are indeed separate orders. | 16:44.00 |
| I'll order the app strings now. | 16:44.07 |
ray_laptop | oops, forgot to test the build on peeves. I hope it builds on linux -- not just windows :-/ | 16:47.18 |
Robin_Watts | I've got a really wierd error with mupdf here. | 16:56.46 |
| sometimes, on certain files I'm seeing crashes in the mujstest runs. | 16:57.05 |
| so I've taken one of these test files, and I run it repeatedly until it crashes. | 16:57.27 |
| It always crashes at the same point, when it crashes. | 16:57.45 |
| but it doesn't crash every time. | 16:57.55 |
| It seems that I'm finding a matching pixmap in the store. but the location returned has never been put into the store. | 16:58.26 |
tor8 | Robin_Watts: evening | 16:59.55 |
Robin_Watts | tor8: evening. | 17:00.02 |
henrys | Robin_Watts:is milestone 5 complete I meant to ask you that at the meeting. | 17:00.05 |
| ? | 17:00.07 |
Robin_Watts | henrys: I can't remember what milestone 5 was. If it's image extraction then no. | 17:00.31 |
tor8 | is mujstest multithreaded? | 17:00.37 |
henrys | yes image extraction | 17:00.46 |
mvrhel_laptop | ok. I have actually made a winrt compoenent in c++ to open up a stream for mupdf. testing if I can call it in csharp, but off to airport now. bbiaw | 17:01.10 |
Robin_Watts | tor8: it involves callbacks from the js, so kindof. | 17:01.14 |
| henrys: no. I have images being extracted now, but no effort is made to guess where they go in the output. | 17:01.42 |
| and probably they should be rescaled a bit in some cases. | 17:01.49 |
| so progress has been made, but it's not complete. | 17:02.01 |
| I'm firefighting for customer 530 at the moment. | 17:02.12 |
| tor8: essentially mujstest is basically mupdf with the window/mouse bits replaced with pixmaps and events from a script. | 17:03.17 |
| I suspect that there is a degree of variation in timings due to callbacks from the js. | 17:03.54 |
tor8 | Robin_Watts: I hate race conditions... | 17:05.30 |
| we should rewrite the whole thing in Rust! | 17:05.36 |
| or consider adopting some CSP based multithreading architecture (which means wedding to a specific way of doing multithreaded work with mupdf, but lets us do the work behind the scenes) | 17:06.25 |
| maybe something to consider for 1.4 | 17:06.36 |
Robin_Watts | CSP? Really? | 17:08.13 |
| Do we mean the same thing by CSP? Communicating Sequential Processes? As in C.A.R.Hoare etc? | 17:08.41 |
tor8 | yeah. that one. | 17:08.53 |
Robin_Watts | hehe. Hoare was the head of Comlab when I was there. paulgardiner was his RA :) | 17:09.21 |
tor8 | erlang style. or limbo. or go with its channels and goroutines. | 17:09.22 |
| "RA"? | 17:09.45 |
Robin_Watts | Research Assistant | 17:10.14 |
tor8 | oh! | 17:10.24 |
| you know all the famous uk computer science people! | 17:10.33 |
Robin_Watts | paulgardiner used to work in a company that specialised in proving systems correct/incorrect using CSP. | 17:11.05 |
| tor8: I do? | 17:11.14 |
tor8 | well, there is graham nelson of inform fame too | 17:11.39 |
Robin_Watts | The elusive Mr Nelson. He was Oxford Mafia too, so I know him (virtually) | 17:12.07 |
| but back to the problem... I cannot see how I can ever pull a "val" out of the hash table, that I never put in! | 17:13.37 |
tor8 | what little experience I have with multi-threading is doing CSP like stuff ages ago, and the recent clusterf*ck with objective C and Blocks, so I may be biased | 17:13.41 |
| Robin_Watts: are you getting the onesky emails? | 17:16.03 |
Robin_Watts | I am. | 17:16.09 |
tor8 | good. | 17:16.33 |
| so, the hash problems. are we initialising the hash slots with memset? | 17:16.52 |
Robin_Watts | tor8: I believe so. | 17:17.20 |
| yes, we are. | 17:17.32 |
tor8 | then it's doubly odd if you are getting garbage out... | 17:17.39 |
Robin_Watts | and we're not hitting the resize code at any point. | 17:17.54 |
ray_laptop | I just pulled down Hoare's book from 2004. Seems pretty well written (unlike many). Nice to see a formal approach taken since I've "home grown" so many multi-threaded pre-emptive os's and had to come up with the rules for people to follow to avoid problems | 17:18.13 |
tor8 | ray_laptop: http://swtch.com/~rsc/thread/ is a nice intro if you're new to the concept | 17:18.57 |
Robin_Watts | ray_laptop: I have a dead tree version of it somewhere. It was (I think) the second computer text book I needed for my degree. | 17:19.36 |
ray_laptop | tor8: I'm not really new to multi-threading concepts, since I wrote my first "real time executive" in 1977 (back then they were all really threads since it was a monolithic link) | 17:20.47 |
| Robin_Watts: version of Hoare's book ? | 17:21.13 |
tor8 | ray_laptop: I meant CSP in particular. | 17:21.16 |
ray_laptop | tor8: Oh, OK. thanks. | 17:21.29 |
Robin_Watts | ray_laptop: Yeah. I have the prentice hall edition. | 17:21.32 |
ray_laptop | well, I guess my changes compiled. I'm a bit concerned that so many nodes went down. I wonder if it was my changes ??? | 17:23.15 |
Robin_Watts | ray_laptop: Aren't those nodes all in Miles office? | 17:34.49 |
| The value I'm getting back is not even a malloced block. | 17:37.24 |
| I think I know what the problem is at last. | 23:25.12 |
| It's a combination of a bug, and a race condition. | 23:25.23 |
| I can fix the bug easily, but that will leave the possibility of the race condition in there (it'll just happen much much less) | 23:25.54 |
| I think I can fix the race condition with a little bit more refcounting. | 23:26.12 |
| Forward 1 day (to 2013/04/25)>>> | |