<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Sunday 03 May 2009 06:29:26 pm Albert Cahalan wrote:<br>
> Vamsi Krishna Davuluri writes:<br>
> > So, talking to Tomeu, we agreed that for Write and Read using<br>
> > the gtkprint would be best as both support it as a printing API.<br>
><br>
> The focus on "Write and Read" is short sighted and may lead<br>
> to inflexible solutions.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Read was selected to contain the "send to print" code because Tomeu expressed some concerns about the maintainability of that code in the Journal. Also, we agreed that going through read is good for reviewing the pdf output and saving paper on badly formatted docs. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> > Now, the current plan is:<br>
> > 1) We do journal printing only, albeit, the respective<br>
> > activity opens the file.<br>
><br>
> Eh, OK. Provide a script called /usr/bin/lpr which runs ps2pdf<br>
> or directly runs gs. This lets normal software, which is already<br>
> designed to output standard Postscript to lpr, work just fine.<br>
> After conversion, put the PDF into the journal.<br>
><br>
> Better yet, just toss the file into the journal without conversion.<br>
><br>
> BTW, this can also be implemented as a filter script that the<br>
> normal lpr program invokes for the default printer.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>The priority is on sending the docs to cups-pdf for conversion and then talking to Moodle for teacher review. It is a good idea to have the code that sends docs for printing (to Moodle, a local printer, or one discovered by avahi) in a reusable module that a /usr/bin/lpr script can use. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> > Now here a cross road is presented:<br>
> ><br>
> > 1) Do we use a print dialog inside each activity that can save it as pdf,<br>
> > print or export a pdf to moodle<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>If we are going to keep everything inside Read for now. It'll be best to have the print button only in Read. The use case we had discussed was like this: open the file in Read, if its not ps/pdf Read converts it using cups-pdf, displays it, and then you can use the print button in its toolbar. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>The converted file gets added as a journal entry right after conversion. The datastore already contains code to hard link identical files, so disk space usage in multiple conversions is kept to a minimum. Read could add a pointer to the pdf in the original entry's metadata as well. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Adding a print dialog to every activity (e.g. Adding some gtkprint support in sugar-toolkit) should be optional for GSoC. First we should concentrate on getting entries printed, and getting teacher review right. Then we can move code around for legacy support and nice "print me" buttons. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> > 2) Do we use separate buttons for each of these operations?<br>
> ><br>
> > What of the user experience?<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> Separate buttons provides a distinction that will be important<br>
> in some environments. Some places will want immediate printing.<br>
><br>
> For now, the "print" button can be almost the same as the other,<br>
> but with the output PDF marked for near-term deletion.<br>
><br>
> "Make PDF" and "Print now" seem like fine names.<br>
><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I agree. Just a print button for now. The PDF will be generated on startup anyway. We can have the cups-pdf local printer in the printer selection dialog when we provide other printing methods. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> > The initial plan was to make Read the global printing station,<br>
> > how do you find this idea?<br>
><br>
> Starting up Read just to print something is not nice. Read may<br>
> even cause an out-of-memory condition. For sure, there is no need<br>
> to very slowly render a big document that doesn't even need to be<br>
> seen on the screen.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>This is to encourage review and to keep the code away from the Journal. The code can then be moved to Glucose. Also, distributing a modified Read for testing will be considerably easier than patching the Journal. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> > the teacher checks his print page in moodle, views the file (either<br>
> > through fancy javascript or a download) and approves/disapproves<br>
> > for printing. Kennedy then logs into his moodle print page and<br>
> > checks if the job was success or not, and if he has a comment from<br>
> > his teacher.<br>
><br>
> I can barely imagine that happening in a real classroom. Try this:<br>
><br>
> The student brings his XO to the teacher's desk, with his work shown<br>
> on the screen. The teacher looks at the work, then lets the student<br>
> plug his XO into a printer which sits on the teacher's desk.<br>
><br>
> > Printing resources can be very expensive for most schools, so<br>
> > the system should include a way for students to submit jobs to a<br>
> > queue and for an administrator to preview and approve or denie them.<br>
><br>
> Tux Paint can rate limit a student's printing. For example, a setting<br>
> of 60 will be once per minute.<br>
><br>
> Do not forget that this issue is more social than technical. In addition<br>
> to any discipline, the teacher can simply turn off the printer. This is<br>
> advisable in any case; many printers use excessive power in standby.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I dont see a teacher having a printer on her desk. Most schools here in Uruguay (and I dare say in Perú) don't even have printers. If there is one, it will be where the server/administration is. And possibly locked in a cage (like we have the servers now). So that scenario is going to be priority one. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Next will be of course provide local printing when a full-blown cups installation is present (which we dont want to have as a sugar dependency for now). As I also see many kids having printers in their homes. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>> _______________________________________________<br>
> IAEP -- It's An Education Project (not a laptop project!)<br>
> IAEP@lists.sugarlabs.org<br>
> http://lists.sugarlabs.org/listinfo/iaep<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>-- <br>
Andrés</p></body></html>