| <<<Back 1 day (to 2016/02/07) | 20160208 |
a0or | Hello to everyone. Can I tell what is my problem with mupdf here? | 11:22.36 |
| Or can I contact someone who develop such things. | 11:22.57 |
tor8 | a0or: yes. | 11:23.00 |
a0or | Cool. This what happened me few minutes ago. I try to open pdf file (but I didn´t know that is not complete). | 11:23.53 |
| And mupdf use my cpu and memory 400%. Can this be fix? | 11:24.15 |
| and sorry to my english, of course. :) | 11:24.24 |
| I also use document viewer on my Linux Mint. Mupdf is much lighter but what about this bug. | 11:24.58 |
Robin_Watts | a0or: So, you gave MuPDF a broken PDF file, and it ate CPU? | 11:25.08 |
a0or | Yes yes, thats the point Robin_Watts | 11:25.26 |
malc_ | Robin_Watts: have you noticed '400%' part? since when mupdf went MT? | 11:25.37 |
Robin_Watts | Did it come back to you eventually? | 11:25.41 |
a0or | Some error? No, nothing. | 11:25.52 |
| just frozen all my desktop/laptop. | 11:26.11 |
Robin_Watts | a0or: OK, so when MuPDF is given a broken file, it will try to repair it. | 11:26.15 |
| It's possible that that may take a chunk of CPU time, but it shouldn't take THAT long. | 11:26.34 |
| Can you make the broken file available to us please? | 11:26.45 |
a0or | yes but what about documents viewer? How that program can ttell you that file is not complete? | 11:26.48 |
| Of course Robin_Watts , i will find some uplod site and send you a link. | 11:27.19 |
Robin_Watts | Thanks. | 11:27.23 |
| a0or: What version of mupdf are you using? | 11:27.34 |
a0or | Thanks to you and all others :) | 11:27.35 |
| i think last version, first must check. Will be back soon. | 11:27.59 |
Robin_Watts | malc_: I was putting the 400% down to typical misreporting of CPU/Memory usage. Possibly due to swapping. | 11:28.25 |
| malc_: And MuPDF is capable of MT, just not many people use it that way. | 11:28.46 |
malc_ | Robin_Watts: well aware.. thing is mupdf the tool is among those "many people" so to speak | 11:29.17 |
a0or | well, while file is not uploaded yet (27MB), I found what version i use, it is 1.3-2.I don´t know why, probably I installed mupdf on software manager. | 11:32.42 |
| Actually, sorry about that. But software manager said that (i think it is my mupdf version). Now I see what is wrong. | 11:33.38 |
Robin_Watts | a0or: Wow, that is old. | 11:36.28 |
| You probably want to retry with the latest version. | 11:36.39 |
a0or | Of course I do that. Really don´t know how this I missed. | 11:37.51 |
| Or how linux mint update this software manager. Robin_Watts are you programmer? :D Sorry for offtopic but i am curios. :) | 11:38.35 |
Robin_Watts | a0or: I am one of the MuPDF/GS devs, yes. | 11:38.53 |
a0or | Wow, that´s greate. I believe one day I work some similar job, developer some open source software etc. | 11:40.02 |
| Ok, time to back. Robin_Watts i downloaded newest version of mupdf. I extract this tar.gz but what is next step? | 11:43.24 |
Robin_Watts | a0or: Build it? | 11:43.44 |
a0or | Sorry what? | 11:44.14 |
| Well don´t know how to install this pdf viewer. Any help? | 11:48.42 |
Robin_Watts | a0or: Well, building it, is probably as simple as doing "make" | 11:49.56 |
a0or | Sorry, but don´t know what you´re talking about. | 11:50.47 |
Robin_Watts | a0or: So, you've unpacked the tar.gz ? | 11:51.08 |
a0or | No problem, I´m not smarter guy :D I will found online what and how to do. | 11:51.10 |
| Oh that, of course I am. | 11:51.18 |
Robin_Watts | Right, so cd into the unpacked directory. | 11:51.36 |
| Then type 'make'. | 11:51.42 |
a0or | Ok, now to try this one. | 11:52.04 |
| Installing, can´t believe. :) | 11:53.42 |
| I have some error or what. -> platform/x11/x11_image.c:21:33: fatal error: X11/extensions/XShm.h: No such file or directory #include <X11/extensions/XShm.h> ^ compilation terminated. make: *** [build/debug/platform/x11/x11_image.o] Error 1 | 11:55.02 |
tor8 | a0or: you'll need to install the xorg-dev package | 11:55.18 |
a0or | but how tor8 ? | 11:56.18 |
tor8 | and also the mesa-common-dev and libgl1-mesa-dev, libxcursor-dev, libxrandr-dev, and libxinerama-dev. | 11:56.20 |
a0or | So difficult. | 11:56.39 |
tor8 | using your package manager. linux mint is based on debian? | 11:56.43 |
| then the command line: sudo aptitude install xorg-dev | 11:56.55 |
| etc | 11:56.56 |
a0or | ok tor8 now i will try. | 11:57.50 |
Robin_Watts | So copy_alpha only does 2 or 4 bits. Seriously? WTF thought that was a good idea? | 12:00.11 |
| tor8: Where are we on reviewing the harfbuzz changes? | 12:26.13 |
| If we can get that in, I can rebase sebras changes on top of them. | 12:26.26 |
tor8 | Robin_Watts: just been looking through sebras' alternatives for soft hyphens | 12:27.29 |
| Robin_Watts: is the stuff on robin/harfbuzz the latest? | 12:27.58 |
Robin_Watts | It is. | 12:28.05 |
| sebras/alternative-2... measure_line looks broken to me. c is only ever set in the FLOW_SPACE case as far as I can tell. | 12:33.30 |
tor8 | alternative-1 can't work more than once, overwriting content.text with alternate in case of a line break | 12:34.02 |
| the alternative-1 code looks a lot simpler than alternative-2 | 12:34.19 |
Robin_Watts | I was thinking just the opposite :) | 12:34.43 |
| tor8: I don't understand alternative-2's use of unbreak-line. | 12:35.31 |
| (but that may well be my ignorance rather than any flaw on sebras part) | 12:36.05 |
sebras | hi! | 12:36.39 |
tor8 | Robin_Watts: so you think the alternative that you don't understand is simpler? ;) | 12:36.40 |
Robin_Watts | tor8: potentially, yes ! :) | 12:36.58 |
sebras | Robin_Watts: the idea of unbreak_line() is to remove any potential breaks in a line and only keep the one that was actually used. | 12:37.20 |
Robin_Watts | sebras: Right, but we load the document once, and turn it into nodes (AIUI). | 12:37.43 |
| Then we lay it out, potentially multiple times. | 12:37.53 |
sebras | tor8: is it a problem that it can only work once? | 12:37.55 |
| Robin_Watts: why multiple times? | 12:38.07 |
Robin_Watts | (think of an e-reader where you bump the font size) | 12:38.09 |
sebras | oh... | 12:38.15 |
| then neither of my patches are good (yet). | 12:38.30 |
Robin_Watts | So loading happens once, layout multiple times (AIUI). | 12:38.36 |
sebras | of course. I should have realized. | 12:38.47 |
| back to the drawing board... | 12:38.56 |
Robin_Watts | sebras: Well, deciding to reload when we relayout would be a different route (and one that might have benefits - haven't considered it fully) | 12:39.29 |
| But I am attracted to a solution were stuff like hyphenation nodes don't need a pointer to a '-' cos it's kind of implicit from the type. | 12:40.26 |
sebras | tor8: since you are here now: do you think nodes like hyphens or space nodes will ever use arbitrary characters? i.e. would it be feasible to always deduce the character to use (either when the node breaks a line or not breaks a line) only given the type? | 12:44.54 |
Robin_Watts | https://www.cs.tut.fi/~jkorpela/dashes.html | 12:46.14 |
| There are 26 'dashes or hyphens' in the unicode spec. | 12:46.31 |
tor8 | sebras: I think we can assume that spaces will always be ' ' and hyphens a '-' | 12:46.48 |
| Robin_Watts: using the alternate content variant, I'd say we can use two characters for the glue nodes rather than actual strings | 12:47.28 |
| 0/0, ' '/0, 0/'-' | 12:47.47 |
Robin_Watts | tor8: I was thinking that it'd be nice to move to a mode where 'nodes' are of variable sizes. | 12:48.03 |
| and if we're doing that, we can do away with the text pointers, and just have them as 0 terminated data on the end of the struct. | 12:48.27 |
| Given that most words are going to be 12 chars or less, that's a big memory saving. | 12:48.55 |
tor8 | Robin_Watts: yeah, packing the 'char *text;' at the end using a variable sized alloc could save a chunk of memory | 12:49.25 |
| but don't forget these are all allocated using the pool allocator, so is still aligned to 4 or 8 bytes | 12:49.53 |
| I wonder if the style and image pointer could live together in a union | 12:50.31 |
| though I suspect image flow nodes may also need the style info | 12:50.44 |
Robin_Watts | tor8: Yes, I realise the alignment thing is still important. | 12:50.50 |
tor8 | if going with the alternate content thing, I'd put the content union at the end of the struct and allocate past it | 12:51.47 |
Robin_Watts | I pondered losing the 'next' pointer by packing stuff into an array, with some bits in the header giving 'size' info (as we do for the displaylist device), but then realised that that would stop me being able to split nodes. | 12:52.05 |
tor8 | but be VERY careful using strcpy on a variably sized alloc from a fixed size array | 12:52.09 |
| compiler optimizers using builtin strcpy primitives will barf on that and give the wrong results | 12:52.29 |
Robin_Watts | tor8: Cos of gcc's magic checking stuff? | 12:52.34 |
tor8 | Robin_Watts: yeah. | 12:52.40 |
| I had big problems with that for mujs | 12:52.47 |
Robin_Watts | Gotta love compiler writers. | 12:52.57 |
tor8 | I hate optimizing compilers... | 12:53.06 |
| struct flow { ... union { fz_image *image; char text[4]; } at the end of the struct and then alloc it variably sized | 12:54.08 |
| Robin_Watts: yeah, I think moving to an array rather than a linked list would just complicate matters more than necessary | 12:55.43 |
Robin_Watts | Yeah. It could be made to work if we had a 'split buffer' like editors use and shuffle stuff up and down, but... hassle. | 12:56.29 |
tor8 | the pool allocator means we still have memory locality for performance; and don't waste overhead on system malloc | 12:56.33 |
Robin_Watts | maybe later once everything calms down. | 12:56.40 |
| yeah. | 12:56.52 |
tor8 | Robin_Watts: maybe later we'll rewrite the structures completely; but I expect a lot of churn in these structures as features get added | 12:57.02 |
| we still need to consider tables | 12:57.22 |
| and floating images | 12:57.36 |
Robin_Watts | I need to read up on how the TeX algorithm deals with floating images etc. | 12:58.22 |
| SO has a thing called the 'packer', that represents a page as a series of 'used' rectangles, and we 'pack' new rectangles into it. | 12:59.01 |
| but that's a classic greedy algorithm; it doesn't work for revisiting lines to find a better layout. | 12:59.43 |
marcosw | sebras: I'm going to reboot casper | 13:00.45 |
sebras | marcosw: alright. | 13:01.25 |
tor8 | Robin_Watts: we could probably get away with doing what groff does--it does a greedy layout but still uses penalties to decide whether to hyphenate or keep going on a per-line basis | 13:02.22 |
Robin_Watts | tor8: heuristics, yes. | 13:02.44 |
tor8 | so it uses tex-like metrics but on a per-line basis rather than globally across the paragraph | 13:02.54 |
Robin_Watts | tor8: We could store the packer state (or whatever our equivalent is) at the start of each paragraph and retry paragraphs repeatedly. | 13:03.38 |
| If we're taking paragraphs as the granularity at which we want to work. | 13:04.15 |
sebras | tor8: Robin_Watts: UAX #14 is referenced in the source code. but it seems to be a bit complicated to implement..? | 13:04.32 |
tor8 | sebras: UAX #14 is incomplete | 13:05.04 |
sebras | tor8: oh? how so? | 13:05.12 |
sebras | doesn't know much about line wrapping he realizes. | 13:05.28 |
Robin_Watts | http://www.unicode.org/Public/PROGRAMS/LineBreakSampleCpp/ | 13:05.46 |
tor8 | sebras: or at least it was a couple of years ago. there are line breaking properties that are language dependent that aren't in the "spce" | 13:06.01 |
Robin_Watts | I am using a (derivation of the) UAX#9 sample code. | 13:06.14 |
tor8 | C, J, and K have different rules about where to allow/forbid line breaks around punctuation | 13:06.27 |
Robin_Watts | (for bidirectional stuff) | 13:06.29 |
tor8 | sebras (for the logs): I've currently implemented the first two principal styles of text breaking in our epub--western (spaces and hyphens) and east asian (anywhere except where prohibited) | 13:07.48 |
| south east asian I've left as an exercise for the masochistic ;) | 13:08.02 |
| Robin_Watts: it's a bit worrying that the sample you linked hasn't been updated since 2009 and the readme.txt saying it's incomplete for later versions | 13:09.12 |
| but no newer code supplied. | 13:09.15 |
Robin_Watts | tor8: Indeed. The UAX#9 code is similar. | 13:11.50 |
| We might be able to lift derived newer versions of that code from firefox/graphite 2. | 13:12.13 |
tor8 | Robin_Watts: still, I think if we can extract the core of linebreak.cpp and use that instead of my quick hacks that'd probably be good enough | 13:12.17 |
Robin_Watts | tor8: yeah. | 13:12.32 |
Robin_Watts | lunches. bbs. | 13:12.36 |
tor8 | or use the graphite implementation, if that's an improvement | 13:12.53 |
| sebras: some messages for you in the logs | 13:16.21 |
sebras | is already reading. | 13:16.40 |
| tor8: hm.. how is UAX #9, UAX, #14 and UAX #29 related? has anyone used them all together?! | 13:18.25 |
| tor8: the line breaking in the sample code that robin linked to is indeed using at least part of the table from UAX #14. | 13:19.28 |
| tor8: and no, even the newer versions do not sort out south east asian languages. | 13:19.55 |
| tor8: btw, graphite is that this one? http://graphite.wikidot.com/ else I need a pointer to find the right one. | 13:21.57 |
tor8 | sebras: http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_home | 13:22.43 |
| graphite is the name of the (arguably) technically superior alternative to opentype, that is developed and used by SIL and implemented in a lot of places but has no real hope of supplanting opentype | 13:23.59 |
sebras | right. | 13:24.34 |
tor8 | it's an opentype style layout engine that puts the smarts in the font tables rather than having dumb tables and smart code | 13:24.39 |
sebras | so I'll look a bit at how it does line breaking later tonight. | 13:25.01 |
tor8 | so it works for languages and scripts that haven't been specified by opentype | 13:25.07 |
| sebras: UAX #29 is more about determining word and sentence boundaries than line breaking | 13:25.52 |
| think, double clicking to select a word, that sort of thing | 13:26.03 |
sebras | tor8: right. I tried to read up on UAX #14 saturday, but that spec was a bit overwhelming. | 13:28.29 |
| tor8: if we decide to take it in maybe we need to look at what has changed between 5.2.0 and 8.0.0, but maybe there are only minor differences. | 13:28.58 |
tor8 | sebras: http://www.unicode.org/Public/PROGRAMS/LineBreakSampleCpp/readme.txt I take it you saw the note in that? | 13:32.17 |
sebras | tor8: no, but I got that from the discussion here. | 13:36.14 |
| tor8: so what I'm saying is that the differences between 5.2.0 and 8.0.0 we might need to adress ourselves. | 13:36.35 |
tor8 | I suspect the differences make for a non-trivial algorithm of insane complexity that nobody has bothered to implement | 13:37.10 |
sebras | tor8: could be a few easy to fix bugs, but it seems that they also implemented a few new classes. | 13:37.48 |
| character classes that is. | 13:37.56 |
a0or | Hello to all, I am here again. I re-installed mupdf, but i don´t know what is my version. I followed instructions from http://ubuntuhandbook.org/index.php/2015/06/install-mupdf-ubuntu-1504/ | 13:38.45 |
tor8 | a0or: run 'mutool -v' on the command line | 13:39.34 |
a0or | said this: usage: mutool <command> [options] clean-- rewrite pdf file extract-- extract font and image resources info-- show information about pdf resources poster-- split large page into many tiles show-- show internal pdf objects | 13:40.35 |
| I don´t know is it problem to make it easy to use. | 13:41.51 |
tor8 | a0or: so, an old enough version to not support the '-v' option :) | 13:42.05 |
a0or | tor8: And I am really stupid. How can i update this throught terminal? :) | 13:42.40 |
| And things like this make me to believe I am stupid a little more, everytime. | 13:43.08 |
tor8 | ignorant is not the same as stupid. | 13:43.28 |
a0or | And that´s why i uninstalled good programs. Cause don´t know what to do. | 13:43.32 |
tor8 | a0or: so, if you know how to use the command line (or you wouldn't have been able to run 'mutool -v') | 13:44.02 |
| and you managed to run 'make' but got an error because you were missing packages | 13:44.15 |
| have you tried installing the xorg-dev package and running make again? | 13:44.31 |
a0or | tor8: is really good guy ;p :) Yes, I trying but nothing happened, also can´t see program when want to open pdf file. | 13:45.17 |
tor8 | "nothing happened" when you ran "sudo aptitude install xorg-dev"? | 13:45.37 |
a0or | soo... I was thinking that problem is my os, so I upgrade it to last version. But as you can see - nothing happened. | 13:45.53 |
| No, something is happend. | 13:46.06 |
| But as i said, can´t not see mupdf option when right click pdf files. | 13:46.30 |
| Who knows how many packages I must installed to have lastest version of mupdf ^^ | 13:47.07 |
tor8 | mupdf doesn't configure your desktop environment (there are too many and they're all different) | 13:47.31 |
a0or | Ok. Well, to repeat this sudo command you wrote? | 13:48.00 |
tor8 | if you succeed in building mupdf from source, you have a binary executable file in 'build/release/mupdf-x11' or 'build/release/mupdf-gl' | 13:48.02 |
a0or | On english please :) | 13:48.17 |
tor8 | a0or: do that, and if it fails just repeat the error message here | 13:48.21 |
a0or | Ok, will try now. | 13:48.37 |
| tor8: sorry to bother you, now i have this error - /usr/bin/ld: cannot find -lGL collect2: error: ld returned 1 exit status make: *** [build/debug/mupdf-gl] Error 1 | 13:53.19 |
| also to said - i uninstalled old version of mupdf (using software manager) | 13:54.33 |
| Should I also run this > sudo aptitude install xorg-dev? | 13:56.20 |
tor8 | a0or: sudo aptitude install mesa-common-dev lbigl1-mesa-dev | 13:58.39 |
| libgl1-mesa-dev | 13:58.51 |
a0or | working somethings on terminal... :) | 14:00.41 |
| Show this - Current status: 221 updates [-7]. And also mutool -v didn´t work tor8 | 14:02.51 |
| Oh yes, I am really ignorant. :) | 14:03.04 |
| must tell me tor8 how you know this script will work mesa-comon-def libg..... | 14:03.40 |
tor8 | a0or: the opengl headers and library are from those packages | 14:04.41 |
| Mesa is the opengl implementation on Linux | 14:05.00 |
a0or | Ok, let´s says I know what you are talking about :D Thank you anyway. | 14:05.57 |
| Also have off-topic question for you. what programming language you know, cause you dev open source program. | 14:06.52 |
tor8 | a0or: I know too many programming languages to list... | 14:07.31 |
| mupdf is written in C | 14:07.37 |
a0or | too many? :D lucky you. I know just play my instrument :D | 14:08.00 |
| And about month ago I started with Python. Too complicated but have some idea about that. :) | 14:08.40 |
| And is it possible to install new version on my linux mint Sir? | 14:09.20 |
tor8 | python is a decent language to start with. | 14:09.53 |
| but python can easily become rather complicated if you dig too deep in its features | 14:10.33 |
| Lua is a simpler language | 14:10.41 |
a0or | I agree with you. Lua? First time heared about this one. Ok, what can you advise me, maybe Lua and C after some Python language= | 14:11.20 |
tor8 | if you're serious about learning to program, I'd recommend starting out with something like Pascal to get the basics down solid. | 14:11.57 |
a0or | Pascal? I will try thank you tor8 :) | 14:12.36 |
tor8 | a0or: http://www.lua.org/pil/contents.html | 14:12.39 |
a0or | Thanks. | 14:13.01 |
| But have some ..i don´t know how to said that. I don´t know where after learn Lua or Python etc. What to program, open source or some web apps... | 14:15.32 |
| And back to the mupdf - what now I should do? | 14:16.05 |
tor8 | a0or: for lua, there's love2d.org | 14:16.07 |
a0or | wow, that´s looks promising. :) | 14:16.33 |
tor8 | a0or: and for the love of all that's good in the world -- avoid web development | 14:16.34 |
a0or | thank you again. | 14:16.37 |
tor8 | if you've got those installed, did the 'make' command succeed? | 14:16.50 |
Robin_Watts | a0or: The choice of what language to learn will be influenced by what you want to do. | 14:17.15 |
a0or | Oh, to avoid. Ok ok, thank you. | 14:17.32 |
| Robin_Watts: problem is i don´t know (yet) what I want to do :9 | 14:17.49 |
tor8 | a0or: web development is a real hairy complicated mess. a sure way to be discouraged. | 14:17.53 |
a0or | maybe some open source stuffs. | 14:17.55 |
Robin_Watts | There is no "best" language to learn. All have strengths and weaknesses. | 14:18.02 |
| "open source stuffs" is marvelously unspecific. | 14:18.16 |
a0or | i know but - don´t know where to start reading some about that. | 14:19.06 |
| tor8: there is no any error, but when try mutool -v, same happened. | 14:19.38 |
| What you choosed Robin_Watts ? I am just curios | 14:20.48 |
tor8 | a0or: if you just run 'mutool' it will use the system binary. | 14:21.00 |
| a0or: make only compiles the new version, it does not install it. | 14:21.10 |
| a0or: run ./build/debug/mutool -v | 14:21.16 |
Robin_Watts | a0or: The first language I ever used was BASIC. | 14:21.37 |
tor8 | Robin_Watts: I started in the deep end ... with C. | 14:21.57 |
Robin_Watts | From that I learned assembly and then moved to C. | 14:21.58 |
tor8 | then I migrated to turbo pascal before going back to C after a couple of years. | 14:22.26 |
kens | BASIC, FORTRAN, ALGOL, machine code, Pascal, C, C++, PostScript, after that I lose track | 14:23.48 |
a0or | Robin_Watts: ok but what you wanna to do after learning programming? | 14:23.59 |
| kens: you know all this ? wow, what to said. :) | 14:24.19 |
kens | Programming is a skill, the language is simply the tool you use | 14:24.42 |
Robin_Watts | a0or: What do I want to do when I finish learning? I'll never finish learning ;) | 14:24.51 |
kens | Some tools are better for some purposes, others for different purposes | 14:25.03 |
a0or | but you ask me same question :D Robin_Watts | 14:25.07 |
kens | For example if you wanted to develop on Android you would need JavaScript | 14:25.24 |
Robin_Watts | kens: Nope. Java :) | 14:25.36 |
tor8 | a0or: university exposes you to a lot of languages too. java, prolog, scheme, haskell. | 14:25.39 |
kens | Sorry yes I meant Java | 14:25.43 |
a0or | btw, said version 1.8 is installed. But can´t find how to open pdf files. | 14:25.45 |
kens | I tend to confuse the 2 | 14:25.52 |
a0or | lol kens | 14:26.00 |
kens | I don't use either of them, so..... | 14:26.19 |
tor8 | a0or: in your file manager there is probably a right-click menu "open with..." | 14:26.26 |
kens | I forgto I also learned SmallTalk a long time ago | 14:26.37 |
a0or | I think I will start with java, cause think it is very good language, but then start with python. | 14:26.43 |
kens | thnks Java is a horrible language, but there you go | 14:27.09 |
Robin_Watts | a0or: No. I just said that the language you pick will (or should) be influenced by the task you have in mind. | 14:27.16 |
a0or | i try all that tor8 but can´t see mupdf option. | 14:27.29 |
| what tasks you got in the mind few years ago, when you started? :D | 14:27.59 |
tor8 | a0or: you need to add one | 14:27.59 |
a0or | ooohh... don´t know that. now i will tr.y | 14:28.15 |
Robin_Watts | If you don't have a specific task in mind, then you'll find it hard to put the theory into practice. | 14:28.15 |
| a0or: I wrote games as a kid. | 14:28.33 |
| I wrote utilities as I got older. | 14:28.48 |
a0or | ok, thank you Robin_Watts . well i should start with games. :) | 14:30.15 |
| but i am not a gammer type of human :D | 14:30.33 |
| oo this is soo boring to add mupdf, there is no logical option. | 14:30.54 |
paulgardiner | a0or: find something not too complicated that you personally need. Make that your first project. | 14:31.17 |
tor8 | a0or: there's usually a "custom command line" thing | 14:31.38 |
a0or | yes, but what to put? :) | 14:31.47 |
tor8 | the path to mupdf-gl that you just built with make | 14:31.58 |
| like /home/a0or/src/mupdf/build/debug/mupdf-gl %s | 14:32.24 |
| or something like that | 14:32.32 |
a0or | this is prtsc, now i will try this. | 14:33.08 |
| http://prntscr.com/a0kmvl | 14:33.49 |
| there is now /src/ option. | 14:34.25 |
| oh i get this, just a moment. | 14:34.38 |
| thats it, finally works mupdf. :) | 14:35.38 |
| thanks to all you guys. | 14:35.53 |
tor8 | a0or: cool. | 14:35.55 |
a0or | yes. have some questions. | 14:36.02 |
tor8 | a0or: now if you want a faster version run "make build=release" and use the build/release/mupdf-gl binary | 14:36.19 |
| a0or: and you can also run "sudo make build=release install" to install it in /usr/local/ | 14:36.36 |
a0or | yes!!! tor8 that´s it, to install it: :D | 14:37.06 |
| cause folder is in the downloads. | 14:37.40 |
| while this is installing, am i too old to learning programming (cause i have 24y). | 14:38.54 |
Robin_Watts | a0or: There is no age limit to learning to program; it just requires time and energy. Lots of time to be good. | 14:40.26 |
a0or | i think Robin_Watts is too smart, it嫉 not a joke. | 14:40.51 |
| :) | 14:40.51 |
| it installed - and works greate. don´t know how to make it faster, cause i try make build=release but said - make: Nothing to be done for `default'. | 14:42.11 |
Robin_Watts | a0or: Learning to program is like learning a musical instrument. You can pick one up at any age. Almost anyone can learn to pick out a tune, but if you want to be good, you need both talent and application. | 14:42.39 |
tor8 | a0or: if the output from make said "CC build/release/..." etc you're good | 14:43.01 |
| a0or: or just check that you have a file in build/release/ | 14:43.25 |
a0or | i have a lot of files on buld/release | 14:44.04 |
tor8 | Robin_Watts: and talent is not the primary ingredient ... time and practice is. | 14:44.08 |
Robin_Watts | tor8: Right, but talent is definitely a factor. | 14:44.43 |
tor8 | Robin_Watts: talent or general affinity definitely doesn't hurt! | 14:45.06 |
a0or | how to know i am talented? maybe stupid question but.. | 14:45.06 |
tor8 | a0or: you can't know unless you try | 14:45.18 |
Robin_Watts | a0or: How do you know if you are talented at playing a musical instrument? You try and see. | 14:45.33 |
a0or | yes, and lot of practice. :) | 14:45.51 |
| guys, you are amazing. :)) all of you ;p | 14:46.01 |
| tonight i will play in orchestra cause conccert is in wed. | 14:46.42 |
| and last question and i should turn off laptop :) | 14:49.00 |
| is there option to living if i know programming? | 14:49.15 |
kens | WHat, you want a life ? Clearly not programmer material | 14:49.34 |
a0or | when said living i think on bought house, have car etc. | 14:49.35 |
| well... there is a big question: does i have a life. ;p | 14:50.20 |
| mostly of my time i spend in the house p | 14:50.35 |
| on my language said : brate moze li se od toga zivjeti. | 14:51.24 |
malc_ | anyone of you birtts are from cambridge area? | 14:51.39 |
| a0or: czech? | 14:51.51 |
a0or | noup, serbian. | 14:51.59 |
malc_ | hvala | 14:52.07 |
a0or | lol hvala | 14:52.21 |
| yeh, that´s is correct. :) | 14:52.27 |
malc_ | ÑеÑпÑкий... | 14:53.04 |
| oh well | 14:53.07 |
| apparently not | 14:53.09 |
a0or | you are russian,i guess. | 14:53.27 |
malc_ | tak | 14:53.34 |
a0or | maybe some similar. | 14:53.36 |
| tak? what is tak? :) | 14:53.40 |
| aa lol i got this. :) | 14:53.55 |
malc_ | tak means yes in some slavik languages | 14:53.55 |
| apparently not serbian though | 14:54.01 |
a0or | on serbian not - we said - tako je. | 14:54.14 |
malc_ | k=c | 14:54.14 |
a0or | or something like that. | 14:54.36 |
malc_ | my father secondary foreign language in university was srpsko/hrvatski | 14:55.03 |
| *fathers | 14:55.11 |
a0or | wow, you know our language. cool. :) i learned russian in primary scool, but that was long time ago. | 14:55.35 |
| now there is not srpsko/hrvatski, now onw is srpski and other is srpski (and other is montenegrian, where i live :D) | 14:56.18 |
| but there is too similar languages. | 14:56.33 |
| acctually - there is one language. | 14:56.42 |
| i don´t remmember has i said thanks to all... thanks people, really. | 14:57.58 |
| now i must go, to practice my instrument. (tomorow i will bi practice programming). bye to all tor8 Robin_Watts malc_ and others. :) | 14:58.44 |
Robin_Watts | mvrhel_laptop: Hi. You here? | 15:24.13 |
| kens: You may know the answer to this too. | 15:25.04 |
kens | ? | 15:25.08 |
| LOL | 15:25.33 |
tor8 | Robin_Watts: a lot of the shaping setup code in measure_word and draw_flow_box is duplicated; could we split that into a smaller function? | 15:33.56 |
Robin_Watts | tor8: Sure. | 15:34.10 |
tor8 | like shape_string(char *s, char **end, font, hb_buf) | 15:34.16 |
Robin_Watts | Can we commit what's there and then polish it ? | 15:34.20 |
tor8 | Robin_Watts: yeah. just a minute, I'm still in the middle of reading through draw_flow_box | 15:34.37 |
Robin_Watts | no worries. | 15:34.44 |
| i'm buried in gs. | 15:34.52 |
tor8 | Robin_Watts: okay. it's looking good so far. | 15:35.05 |
| you call FT_Set_Char_Size twice in the same function, not sure what's going on there | 15:35.53 |
| I'm not sure we need to reverse the string back into logical order for text extraction to work | 15:37.15 |
| the text extraction does a visual->logical reordering pass already | 15:37.26 |
| so there's the distinct possibility that this reversing is going to end up with us reversing twice | 15:37.59 |
Robin_Watts | tor8: Suppose we have: ABCDE as the input glyphs (left 2 right). | 15:39.30 |
| They can get rewritten as FGHIJ (still left 2 right). | 15:39.48 |
| so I need to run through and make sure that I send the unicode values from the original with the glyphs that are actually sent. | 15:40.55 |
| So that's half of that alternation. | 15:41.08 |
| Now suppose we have ABCDE in a r2l script. | 15:41.21 |
| harfbuzz always gives the resultant glyphs/positions in left 2 right order. | 15:41.43 |
tor8 | isn't the hb_glyph_info->codepoint the unicode value from the original? | 15:42.51 |
Robin_Watts | hence I look at FGHIJ and find out which of the source chars they came from, and I always send them in the same order that they arrived in my function in. | 15:43.18 |
| so if ABCDE doesn't undergo any rewriting (other than being displayed as r2l) then I output ABCDE. | 15:43.56 |
tor8 | Robin_Watts: the text extraction will look at EDCBA glyphs, notice that they're in an R2L script, and reverse the order | 15:44.03 |
| so if you send them as ABCDE, it'll reverse them from logical back into visual order | 15:44.16 |
Robin_Watts | (i.e. the logical order of the glyphs is unchanged) | 15:44.24 |
tor8 | the text extraction expects text to be sent in visual order (since this is what the PDF files we've seen do) | 15:44.46 |
Robin_Watts | tor8: And that's fine, cos that's what the text extraction code has always done. | 15:44.47 |
tor8 | Robin_Watts: fz_bidi_reorder_stext_page | 15:45.42 |
Robin_Watts | So we get ABCDE into the shaping code, and ABCDE out. That goes into the device code as ABCDE (with the movement such that it appears as EDCBA) | 15:45.52 |
| The text extraction "soup" straining will pick that out as EDCBA. | 15:46.15 |
| and the reversal you're talking about will return it as ABCDE, which is what we want, I think. | 15:46.36 |
tor8 | we get ABCDE as input text, the bidi code reorders that as EDCBA for shaping, the shaping leaves it as EDCBA and it goes to the fz_text as EDCBA and the text extraction spots the script and reverses into ABCDE for search etc | 15:46.53 |
Robin_Watts | No. | 15:47.04 |
| the bidi code does not reorder. | 15:47.13 |
tor8 | okay. | 15:47.20 |
Robin_Watts | The bidi code tags the fragment as being r2l. | 15:47.21 |
tor8 | right. | 15:47.25 |
| and harfbuzz is okay with that? | 15:47.44 |
Robin_Watts | Yes. harfbuzz expects it's input in 'logical' order. | 15:48.01 |
| (logical order is "how a native speaker would read it aloud", I reckon) | 15:48.22 |
tor8 | okay. it just needs it tagged for direction? | 15:48.23 |
Robin_Watts | tor8: harfbuzz doesn't even need it tagged for direction. | 15:48.45 |
tor8 | and which way does it come out from harfbuzz? | 15:49.11 |
Robin_Watts | It will derive its own direction from what it's given. | 15:49.14 |
| harfbuzz always gives the stuff out in render order from left 2 right. | 15:49.35 |
| which is why I do the dance to make sure that I keep it in logical order. | 15:49.54 |
tor8 | okay, so if I revise my previous statement then: | 15:49.58 |
| we get ABCDE as input text, that gets reordered by harfbuzz into visual EDCBA order, which is fed into fz_text as EDCBA, which is extracted into a span as EDCBA and then reversed by fz_bidi_reorder_span into ABCDE for searching | 15:50.48 |
Robin_Watts | we get ABCDE as input text, the bidi code tags it as r2l, the shaping code gives us EDCBA, but it goes into to fz_text as ABCDE. | 15:51.09 |
tor8 | right, that's where we're wrong, as I understand it. | 15:51.30 |
| the code in fz_text should be EDCBA | 15:51.34 |
| your dance to keep it in logical order would mean that the text extraction reverses the logical text back into visual order | 15:51.55 |
Robin_Watts | The code in the fz_text should *absolutely* be in logical order, in my view. | 15:52.02 |
| and the text extraction code should not care what direction in comes in. | 15:52.14 |
tor8 | Robin_Watts: I agree that that would be the sane way to do it... but PDF and XPS don't | 15:52.19 |
| or hm, maybe XPS does | 15:52.24 |
Robin_Watts | cos the soup straining always orders stuff left 2 right. | 15:52.38 |
| and your reversal then converts that back to logical order. | 15:52.54 |
tor8 | Robin_Watts: ah, right, forgot about that step. | 15:53.10 |
| in that case you can ignore my ramblings :) | 15:53.30 |
Robin_Watts | Cool. good to think about it though. | 15:53.40 |
tor8 | though I'm not convinced the soup straining always gets things right | 15:53.51 |
| we do seem to have a large number of text extraction glitches :( | 15:54.08 |
Robin_Watts | Then that's something we should fix. | 15:54.23 |
tor8 | Robin_Watts: okay, so the whole dance with parsing the original text again is because the hb_glryph_info->codepoint is in visual order | 15:54.49 |
Robin_Watts | Yes. | 15:55.27 |
tor8 | Robin_Watts: I think there's a case for simplify the soup straining, and only work locally and drop most of the heuristics trying to sort into columns and tables | 15:55.36 |
Robin_Watts | Or at least, it's certainly not in logical order. | 15:55.38 |
| tor8: I'm amenable to all sorts of suggestions for that code. | 15:56.03 |
tor8 | I'm not convinced we need to do that (keep it in logical order). it'd be interesting to see what xps does though; I think we'd not go too far amiss if we follow their example. | 15:56.15 |
| have you got office on your windows? to paste some arabic text into a document and print it as xps. | 15:56.58 |
Robin_Watts | tor8: We feed the logical ordering into harfbuzz once to do the measurement (and splitting of fragments by missing glyphs per script). | 15:57.23 |
| We then feed it back into harfbuzz for rendering. | 15:57.32 |
| If we cock up the ordering at the first stage, the second will give bad results. | 15:57.47 |
tor8 | Robin_Watts: it'd be good if we could cache the results of the first shaping in the html flow node | 15:58.16 |
| but that'd blow up the space requirement for flow nodes | 15:58.27 |
Robin_Watts | At the cost of doubling the memory? | 15:58.33 |
| yeah. | 15:58.36 |
| Yes, I have office here. | 15:58.44 |
tor8 | yeah, no, I'd rather pay the processing overhead. | 15:58.45 |
| the g->cluster field, what does it contain? | 15:59.42 |
Robin_Watts | kens: So to call get_dev_param I need access to a stack_param_list ? | 15:59.53 |
| tor8: I can't remember. | 16:00.03 |
kens | Robin_Watts : shoulnd't | 16:00.09 |
tor8 | looks like the offset into the utf8 string | 16:00.13 |
Robin_Watts | tor8: Ah, right, yes. | 16:00.29 |
| That's what I use to figure out that this (or these) output glyphs came from this input text. | 16:00.50 |
tor8 | Robin_Watts: okay, I think this is in good enough shape to commit but it does need a bit of polishing up. | 16:00.57 |
Robin_Watts | tor8: cool. | 16:01.06 |
tor8 | if we don't need to reverse back into logical order for fz_text, it could be simplified (and sped up) quite a bit though | 16:01.48 |
Robin_Watts | kens: The gsdxo takes "HighLevelDevice" as the request string, and I have to pass in a stack_param_list to write to. | 16:02.03 |
| (at least I assume that's what it writes to) | 16:02.15 |
kens | a param list, possibly | 16:02.40 |
Robin_Watts | kens: I'm looking in the zdevice implementation. | 16:03.13 |
kens | give me 5 minustes to tidy up | 16:03.26 |
Robin_Watts | ok, I see other things using a gs_c_param_list | 16:04.12 |
kens | Yes, but you can just use a param_list, or should be able to | 16:04.44 |
Robin_Watts | kens: OK. | 16:04.52 |
kens | a C param list is OK though | 16:04.52 |
| Just cast it to a param_list * | 16:05.06 |
Robin_Watts | Gotcha. Will copy from those places then. thanks. | 16:05.07 |
kens | thinks welcome to param lists Robin_Watts | 16:06.16 |
Robin_Watts | if the source text for a book is "Mary had a little lamb", then it seems nicer to have the nodes being "Mary" "had" "a" "little" "lamb" rather than "Mary" "dah" "a" "elttil" "lamb" | 16:11.37 |
HenryStiles | Robin_Watts: don't know if you get the coverity emails some minor stuff was flagged in trapping | 16:32.25 |
Robin_Watts | will look. | 16:32.47 |
| mvrhel_laptop: ping! | 16:32.56 |
| HenryStiles: I don't believe I do get the coverity emails. | 16:40.41 |
kens | Maybe you have to sign up for them, I get them | 16:41.43 |
HenryStiles | Robin_Watts: forwarded but I think everyone should subscribe, I'll bring it up at the meeting. | 16:41.52 |
kens | Yeah Marcos shoul dhave sent you an invite to subscribe | 16:42.02 |
Robin_Watts | ok, so I do get them, but searching for 'coverity' is apparently too much for thunderbird :/ | 16:46.37 |
| reboot | 16:48.26 |
dalerank | could any answer for mujs questions? | 17:18.17 |
Robin_Watts | dalerank: You've missed tor8 again. | 18:29.56 |
dalerank | yep, I know already :) | 18:33.33 |
ShakespeareFan00 | Hi | 20:03.37 |
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. | 20:03.37 |
ShakespeareFan00 | Technical enquiry | 20:03.43 |
| On loading an EPS with an Embedded font, whose kerning data gets used? | 20:04.31 |
rayjj | ShakespeareFan00: no kerning is used. The EPS determines the position of strings to be placed on the page with the "show" operator, then the character spacing for glyphs within the string is whatever the glyp has | 20:16.56 |
ShakespeareFan00 | rayjj: And that positiong is based on what? | 20:17.31 |
| The problem I have is that an EPS file I have is nominally under a 'free' license... | 20:17.50 |
| However in examing the file it appears to contain propriatery font data, | 20:18.08 |
rayjj | often PS/EPS creators will consult font kerning tables or an afm and position individual characters rather that rely on the glpyph "advance width" | 20:18.22 |
ShakespeareFan00 | You can't release propriatery data under a "free" license.. | 20:18.23 |
| I've found that when Inkscape imported the PDF output from Ghostscript, it was using the positiong data from the Embedded font, rather than that of what got substiuted. | 20:19.15 |
| In this instance "Furtiger" (Propriatery) Got substituted for Arimo | 20:19.35 |
| or DejaVu Sans | 20:19.40 |
rayjj | ShakespeareFan00: I am not a lawyer, but I think there are "fair use" provisions in Copyright law that allow for this. | 20:20.23 |
dalerank_ | maybe anybody know for mujs.... i have some js files, how i can loads it and use function from other js? thanks | 20:20.43 |
ShakespeareFan00 | rayjj: Fair use is not necessarily compatible with "free licenses" though :( | 20:20.55 |
rayjj | I know that TrueType fonts have a specific "allow copying" flag that Ghostscript respects when embedding fonts in a PDF | 20:21.10 |
| I know enough to know that "free license" is a vague term :-) | 20:21.45 |
ShakespeareFan00 | rayjj: In this instance Creative Commons attribution Share Alike | 20:21.59 |
| Most Fonts that are Open Font License don't have the issue of 'using' the font | 20:22.24 |
| Frutiger is a commerical typeface . | 20:22.46 |
| :( | 20:22.49 |
| Free works need Free typefaces | 20:22.57 |
rayjj | But in any case, how does this relate to your kerning question -- or what is your question vis-a-vis ghostscript | 20:22.58 |
| The URW fonts distributed with AGPL ghostscript are licensed under the GPL | 20:23.40 |
ShakespeareFan00 | rayjj: Those fonts are... Frutiger isn't, and from what I could tell Ghostscript isn't making the substitution | 20:24.10 |
| INkscape's PDF import was. | 20:24.17 |
| If Ghostcript had SVG output, I could avoid an intermediate step | 20:24.38 |
| of course | 20:24.41 |
rayjj | If the EPS/PS/PDF source file embeds a font, then Ghostscript will prefer to use it | 20:24.51 |
ShakespeareFan00 | Is there an option to reject propriatery fonts? | 20:25.07 |
| Or at least warn about fonts that aren''t "free"? | 20:25.21 |
rayjj | If you tell Ghostscript to write a PDF or PS2 file, you can tell it to not embed fonts | 20:25.36 |
ShakespeareFan00 | Hmm... | 20:25.54 |
| Next problem is how to configure Inkscape to tell Ghostscript to do that | 20:26.28 |
| ;) | 20:26.31 |
| And then clean up the mess | 20:26.36 |
| rayjj: Whilst I am here do you know of a "Free" altenative to Furtiger? | 20:27.24 |
mvrhel_laptop | Robin_Watts: sorry I missed you | 20:27.33 |
ShakespeareFan00 | Or at least something that's Vaugely metrics compatible | 20:27.35 |
mvrhel_laptop | I was out for a bit this morning | 20:27.44 |
rayjj | ShakespeareFan00: I don't know anything about Inkscape. | 20:28.48 |
ShakespeareFan00 | Thanks for you help anyway | 20:29.11 |
rayjj | ShakespeareFan00: Please see http://www.ghostscript.com/doc/current/Ps2pdf.htm and look for the NeverEmbed distiller parameter | 20:29.42 |
mvrhel_laptop | eating. brb | 20:30.16 |
rayjj | ShakespeareFan00: NeverEmbed allows you to give it a list of fonts to not embed, allowing normal embedding of other fonts | 20:30.45 |
dalerank_ | will tor come today? | 20:32.09 |
marcosw | tor is in europe, so not likely to come back today. Best bet is early tomorrow morning (i.e. 1:00AM PST). | 20:39.28 |
Robin_Watts | mvrhel_laptop: ping ? | 23:20.14 |
mvrhel_laptop | Robin_Watts: I am here | 23:26.58 |
Robin_Watts | Ah, fab. | 23:27.03 |
| Thanks for your mail. | 23:27.08 |
| Let me just paste was I was replying... | 23:27.14 |
mvrhel_laptop | np. I am not sure it was much help | 23:27.18 |
Robin_Watts | An imagemask is a set of 'solid' or 'transparent' bits. The 'solid' bits are plotted in the current color (gs_currentcolor). | 23:27.31 |
| My interpolation etc all happens on the mask, so I'm left with a set of alpha values. I call copy_alpha to say "blend this single colour with each pixel in turn using the given bitmap of alpha values". | 23:27.32 |
| I understand that I can convert a set of gx_color_values to a gx_color_index by calling encode_color, but where do I get the set of gx_color_values from? There must be a way to get a set of gx_color_values from 'the current color in the imager state', but I don't know how. | 23:27.34 |
| Some pointers to how to do that would be much appreciated. | 23:27.35 |
rayjj | Robin_Watts goes down the rabbit hole of concretize-remap-finagle color ;-) | 23:28.46 |
Robin_Watts | rayjj: Shh, I'm sending michael down the rabbit hole and I'm holding the string tied to his ankle. | 23:29.34 |
mvrhel_laptop | yes the whole thing is a mess | 23:29.35 |
rayjj | can't recall, but thinks you remap and that does the concretize, but I'd have to look at the code and am currently doing other stuff | 23:30.18 |
mvrhel_laptop | the thing is with the case that Robin_Watts has, I don't know if you want to fool with any remap / concretize mess | 23:31.02 |
rayjj | Robin_Watts: if the string breaks, just set a bp in encode_color and fill a rectangle with a color -- the callstack will show you the layers | 23:31.51 |
Robin_Watts | I can't believe there isn't a well defined mechanism for a) getting the gx_color_index that corresponds to the gs_currentcolor. | 23:32.01 |
mvrhel_laptop | Robin_Watts: hold on a minute. I need to send an email to my daughters saxaphone instructor real quick. Her sax broke and I need to cancel now, to avoid a charge | 23:32.50 |
Robin_Watts | or b) Getting the color components that correspond to the currentcolor (for high level color, for when a) fails) | 23:32.51 |
rayjj | there is a defined mechanism, but there are so many different color representations in gs that I can't recall which oyu need | 23:32.54 |
Robin_Watts | mvrhel_laptop: Go for it. | 23:32.58 |
rayjj | oh, my! two saxophones in the same domicile. You must have great sound cancelling headphones ;-) | 23:33.51 |
| or a shed for them to practice in | 23:34.06 |
Robin_Watts | You should got them to play the tuba. | 23:34.41 |
rayjj | Robin_Watts: drums are MUCH worse than sax or tuba !!! | 23:36.12 |
| we have flute, violin and piano -- not too bad | 23:37.02 |
mvrhel_laptop | yes one alto sax and one tenor sax | 23:39.00 |
| plus piano | 23:39.05 |
| got rid of the drums this past december | 23:39.16 |
| no one was playing them | 23:39.21 |
rayjj | congratulations on that ! | 23:39.29 |
Robin_Watts | My brother played the euphonium. You could hear that 3 houses away. | 23:39.33 |
mvrhel_laptop | Robin_Watts: is it fine if I look at this later tonight | 23:39.47 |
| I am under the gun to get a couple things done here and I want to make sure I give you the right answer | 23:40.05 |
Robin_Watts | mvrhel_laptop: Sure. Any pointers to bits of code I can breakpoint or canabalise would be much appreciated. | 23:40.08 |
mvrhel_laptop | Robin_Watts: great. thanks. | 23:40.24 |
Robin_Watts | mvrhel_laptop: No worries. I'm off to bed soon, so no hurry. | 23:40.25 |
| Thanks | 23:40.27 |
rayjj | Robin_Watts: it's getting pretty late for you anyway, isn't it ? | 23:40.29 |
Robin_Watts | 23:40 | 23:40.36 |
mvrhel_laptop | I would think so | 23:40.37 |
rayjj | my youngest is off to a science camp on Catalina island this week -- frees up some time for me :-) | 23:41.31 |
| this PM they are snorkeling in 59F water -- brr... | 23:42.47 |
| 15.2C | 23:43.36 |
| Forward 1 day (to 2016/02/09)>>> | |