discuss: flowcharts update
Subject:
Re: flowcharts update
From:
Alex Nordstrom ####@####.####
Date:
26 Apr 2005 06:01:49 -0000
Message-Id: <200504261401.35543.lx@se.linux.org>
On Tue, 26 Apr 2005 12:46, Machtelt Garrels wrote:
> I've found some time to incorporate remarks about the publishing and
> maintenance flowcharts. Can you have a look at them:
>
> http://tille.xalasys.com/training/tldp/flowcharts.php
Perhaps I'm colour blind, but in the maintenance image, I can't see any
boxes that have the darker blue colour representing CVS access
according to the legend.
In general, using colour as the only means with which to convey some
information is inadvisable, as the W3C Web Accessibility Guidelines,
for example, point out. It would seem particularly perilous to use
colours that are as similar as light blue and lighter blue (this also
applies to the blue link text on lighter blue background and to colours
that may appear similar to colour blind readers).
My suggestion would be to select more distinctive colours and preferably
add another way to convey the information conveyed by the colours.
> Can somebody try to make the PNG files smaller while maintaining
> readability?
There is a lot to be won by using an efficient PNG compression
algorithm. Running pngcrush on a poorly optimised PNG file will reduce
its size nondestructively. In this case, the reduction is 35%. The
Gimp, when set to maximum compression, achieves a file size on par with
pngcrush.
Further gains can be made by converting the image to an indexed palette.
I found that, for the images in question, a 64-colour palette still
provides acceptable anti-aliasing and (consequently) legibility while
achieving a 64% average reduction in file size:
http://se.linux.org/Medlemmar/lx/tldp-publishing-flowchart-1.4.png
(Reduced to 39.3 KiB from 120.3 KiB)
http://se.linux.org/Medlemmar/lx/tldp-maintenance-flowchart-1.2.png
(Reduced to 53.4 KiB from 133.7 KiB)
To do this, select the "Image" menu in the Gimp, "Mode" submenu, and
"Indexed..." menu item. Select "Generate optimum palette" and enter
"64" as the "Maximum number of colours". You may wish to try different
colour dithering modes for best results. Click OK to apply.
When saving, make sure all checkboxes are unchecked and set the
"Compression level" to "9".
--
Alex Nordstrom
http://lx.n3.net/
Please do not CC me in followups;
I am subscribed to the tldp discussion list.
--> -->
<type 'exceptions.IOError'> | Python 2.5.2: /usr/bin/python Wed Jul 3 09:38:38 2024 |
A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
/opt/ezmlm-browse-0.20/main.py in main() |
424
|
425 if path is not None:
|
426 main_path(path)
|
427 else:
|
428 main_form()
|
global main_form = <function main_form at 0x9bcdc6c> |
/opt/ezmlm-browse-0.20/main.py in main_form() |
378 except ImportError:
|
379 die(ctxt, "Invalid command")
|
380 module.do(ctxt)
|
381
|
382 def main():
|
module = <module 'commands.showmsg' from '/opt/ezmlm-browse-0.20/commands/showmsg.pyc'>, module.do = <function do at 0x9be310c>, global ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'} |
/opt/ezmlm-browse-0.20/commands/showmsg.py in do(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}) |
18 write(html('msg-pager') % ctxt)
|
19 write('<hr>')
|
20 sub_showmsg(ctxt, ctxt[MSGNUM])
|
21 write('<hr>')
|
22 write(html('msg-pager') % ctxt)
|
global sub_showmsg = <function sub_showmsg at 0x9bcd1ec>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum' |
/opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=9294) |
229 format_timestamp(ctxt, ctxt)
|
230 write(html('msg-header') % ctxt)
|
231 rec_showpart(ctxt, msg, 0)
|
232 write(html('msg-footer') % ctxt)
|
233 ctxt.pop()
|
global rec_showpart = <function rec_showpart at 0x9bcd1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0x9c40dec> |
/opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x9c40dec>, partnum=1) |
205 else:
|
206 for p in part.get_payload():
|
207 partnum = rec_showpart(ctxt, p, partnum+1)
|
208 else:
|
209 write(html('msg-sep') % ctxt)
|
partnum = 1, global rec_showpart = <function rec_showpart at 0x9bcd1b4>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0x9c40d8c> |
/opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x9c40d8c>, partnum=2) |
208 else:
|
209 write(html('msg-sep') % ctxt)
|
210 sub_showpart(ctxt, part)
|
211 return partnum
|
212
|
global sub_showpart = <function sub_showpart at 0x9bcd144>, ctxt = {'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0x9c40d8c> |
/opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'cmd': 'showmsg', 'threadidx': 1, 'HTTP_X_FORWA...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x9c40d8c>) |
164 type = ctxt[TYPE] = part.get_content_type()
|
165 ctxt[FILENAME] = part.get_filename()
|
166 template = html('msg-' + type.replace('/', '-'))
|
167 if not template:
|
168 template = html('msg-' + type[:type.find('/')])
|
global template = <function template at 0x9bc5e9c>, global html = <function html at 0x9bc5ed4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x9c45a68> |
/opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-application-pgp-signature') |
40
|
41 def html(name):
|
42 return template(name + '.html')
|
43
|
44 def xml(name):
|
global template = <function template at 0x9bc5e9c>, name = 'msg-application-pgp-signature' |
/opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-application-pgp-signature.html') |
31 except IOError:
|
32 if not _template_zipfile:
|
33 _template_zipfile = zipfile.ZipFile(sys.argv[0])
|
34 try:
|
35 f = _template_zipfile.open(n).read()
|
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0x9b5ea7c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20'] |
/usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0x9bd9b2c>, file='-c', mode='r', compression=0, allowZip64=False) |
337 self.filename = file
|
338 modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
|
339 self.fp = open(file, modeDict[mode])
|
340 else:
|
341 self._filePassed = 1
|
self = <zipfile.ZipFile instance at 0x9bd9b2c>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r' |
<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
args =
(2, 'No such file or directory')
errno =
2
filename =
'-c'
message =
''
strerror =
'No such file or directory'