* Fumitoshi UKAI <[EMAIL PROTECTED]> [2005-06-30 03:12]: > How about "mgp -V -x m17n -x xft" ? It would be verbose so that > some information would be reported on stderr. You can see > which font files are used.
The log and .mgp files are attached. -- Martin Michlmayr http://www.cyrius.com/
style not found now caching 1 page ... trying to open font "arial.ttf" trying to open font "/usr/share/fonts/truetype/arial.ttf" could not load font "arial.ttf", using other rendering engine trying to open font "wadalab-gothic.ttf" trying to open font "/usr/share/fonts/truetype/wadalab-gothic.ttf" could not load font "wadalab-gothic.ttf", using other rendering engine tfc_setsize: font index out of bound ignored %opaque. tfc_setsize: font index out of bound trying to open font "standard.ttf" trying to open font "/usr/share/fonts/truetype/standard.ttf" could not load font "standard.ttf", using other rendering engine trying to open font "kochi-mincho.ttf" trying to open font "/usr/share/fonts/truetype/kochi-mincho.ttf" could not load font "kochi-mincho.ttf", using other rendering engine no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound need font <times-medium-r:53:NULL> fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> checking 48 to 55 [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1) fontname: seed=<times-medium-r> siz=<53> reg=<iso8859-1> result=<-*-times-medium-r-*-*-53-*-*-*-*-*-iso8859-1> using truescalable <-*-times-medium-r-*-*-53-*-*-*-*-*-iso8859-1> no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound tfc_setsize: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound tfc_setsize: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound need font <times-medium-r:26:NULL> fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> checking 24 to 27 [4] <-adobe-times-medium-r-normal--25-180-100-100-p-125-iso8859-1>: score 1 best [11] <-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1>: score 1 [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1) [18] <-adobe-times-medium-r-normal--25-180-100-100-p-125-iso8859-1>: score 1 using best [4] <-adobe-times-medium-r-normal--25-180-100-100-p-125-iso8859-1> no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound tfc_setsize: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound tfc_setsize: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound need font <times-medium-r:34:NULL> fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> checking 31 to 35 [5] <-adobe-times-medium-r-normal--34-240-100-100-p-170-iso8859-1>: score 0 best [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1) [19] <-adobe-times-medium-r-normal--34-240-100-100-p-170-iso8859-1>: score 0 using best [5] <-adobe-times-medium-r-normal--34-240-100-100-p-170-iso8859-1> no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound tfc_setsize: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound tfc_setsize: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound tfc_setsize: font index out of bound no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound need font <times-medium-r:23:NULL> fontname: seed=<times-medium-r> siz=<-1> reg=<iso8859-1> result=<-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> fontstring <-*-times-medium-r-*-*-*-*-*-*-*-*-iso8859-1> checking 21 to 24 [11] <-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1>: score 101 best [13] <-adobe-times-medium-r-normal--0-0-0-0-p-0-iso8859-1>: scalable (1) using best [11] <-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1> no fontcount tfc_setfont: font name not given, fail tfc_alloc: font index out of bound caching done
#!mgp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %deffont "standard" tfont "standard.ttf", tmfont "kochi-mincho.ttf" %deffont "thick" tfont "thick.ttf", tmfont "goth.ttf" %deffont "typewriter" tfont "typewriter.ttf", tmfont "goth.ttf" %%deffont "standard" xfont "comic sans ms-medium-r" %% %% Default settings per each line numbers. %% %default 1 leftfill, size 2, fore "yellow", back "black", font "thick" %default 1 bgrad %%default 1 leftfill, size 2, fore "yellow", back "lightblue" %default 2 size 5.0, vgap 10, prefix " " %default 3 bar "black" 5 %default 4 size 4.0, fore "white", vgap 30, prefix " ", font "standard" %% %% Default settings that are applied to TAB-indented lines. %% %tab 1 size 4, vgap 40, prefix " ", icon arc "spring green" 40 %tab 2 size 4, vgap 20, prefix " ", icon box "darkred" 40 %tab 3 size 3, vgap 20, prefix " ", icon delta3 "white" 40 %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %nodefault %size 7, font "standard", fore "red", vgap 20, back "lightblue", prefix " " %size 7, fore "darkred" %center Quality Issues %size 3.5 %size 7, fore "darkred" %center in Free Software projects %size 4.5 %center Martin Michlmayr <[EMAIL PROTECTED]> %size 3.5 %center University of Cambridge %size 3.5 %center This work has been funded in part by Intel. %size 3, fore "darkred" %center %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Objectives for today What is quality? What is quality assurance (QA)? Free Software and QA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Quality Everyone knows, but ... Hard to define Hard to measure Definitions of quality: Fitness for purpose Attributes of quality: efficiency, reliability, usability, extendability, portability, reusability, maintainability Different aspects: User perception Developer perception %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page What is Quality Assurance? Traditional Quality Assurance (QA) Does what it should do (meets the specification) Does what others do as good or better as others (meets the "Industrial Standard") QA begins before the implementation! You cannot "add" quality later QA is not (just) testing ISO defines QA as all "planned and systematic activities" (to ensure quality) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Quality and Free Software/Open Source Problems and challenges related to common characteristics of open source: Distributed development Done by volunteers Naturally, different forms of the open source development model have different problems. Eric S. Raymond (1999): The Cathedral and the Bazaar Linus' law %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Quality and Free Software/Open Source Quality is often high peer review (Cathedral and the Bazaar) World domination ... but not always Many small, unsuccessful projects example: SourceForge has over 100,000 projects Big projects have problems too Contrast to QA as "planned and systematic activities" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Interviews: identifying quality issues Interviews with members of Free Software projects 3 main areas: leadership: benevolent dictator, team release cycle: "release when it's ready", time based fast vs slow, development vs user release beta cycle, release candidates company involvement %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Interviews: underlying topics Processes and infrastructure Communication Bug tracking systems Contributing to the project Success What is success? Relation of success and quality? Success: more volunteers Contribute, Improve More quality Cathedral to bazaar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Techniques employed Infrastructure Bug tracking (e.g. Bugzilla) Version control (CVS, SVN, arch) Automatic builds (e.g. tinderbox) Processes Joining Release: freeze, feature freeze, string freeze Branches Peer review Testing (checklists) Documentation Coding styles Code commit %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Quality Issues Ports keeping different ports (hardware, operating systems) in sync wider issue: feature creep Configuration management testing all possible combinations (possible solution: keep it modular) Users don't know how to report bugs many duplicates bad bug reports problem: long documentation -> users won't read it Automatic tests are boring to write people who write code shouldn't write tests sometimes need large database Security updates %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Quality Issues Attracting volunteers to triage bugs to code to test & ensure they are competent Lack of documentation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Lessons learned Think about quality and QA Debian: http://qa.debian.org/ KDE: http://quality.kde.org/ GNOME: http://developer.gnome.org/projects/bugsquad/ Have developer documentation Have an automatic test suite Use version control legal Think about quality Find ways to measure quality Find ways to improve quality Find ways to automate quality Document quality practices %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%