Vamsi, for your reference, here is the discussion on IRC in which nobody agreed on anything, but we all wanted to take over design of your project. We&#39;re just being enthusiastic, and there&#39;s some significant degree of <a href="http://en.wikipedia.org/wiki/Parkinson%27s_Law_of_Triviality">bike-shedding</a> here. In the end, you are the engineer, and aa is the manager; anything you design that&#39;s OK with him is fine. Your job right now is to listen to and participate in the discussion, but set a strict time limit (a few days, I&#39;d say). When the time is up, you write up your design, get aa&#39;s OK, and then ignore us from then on :).<br>
<br>(the IRC discussion below is tangled and confusing. At the end we agree to do it on this mailing list, so if you want to skip reading below, that&#39;s fine. I&#39;m just posting it in case you want to see the sausage being made.)<br>
<br><br>[11:08] &lt;tomeu&gt; homunq: have some problems following your last email about printing<br>[11:09] &lt;tomeu&gt; what means &quot;default action from journal for &quot;print-me&quot; pdfs&quot;?<br>[11:09] --&gt; satellitFbe-74c6 has joined this channel (n=<a href="mailto:urk@208-100-132-172.bendbroadband.com">urk@208-100-132-172.bendbroadband.com</a>).<br>
[11:12] &lt;homunq&gt; tomeu: there would be some metadata besides mime-type, something like &quot;sub-type&quot;<br>[11:12] &lt;homunq&gt; all pdfs created for printing would have a specific sup-type. This would make them &quot;print-me&quot; pdfs.<br>
[11:12] &lt;tomeu&gt; ok, what would that metadata be? which component would use that new property?<br>[11:13] &lt;homunq&gt; sugar, when choosing which activity to use as a default, when several activities handle a given mime-type, would give preference to activities which have the same &quot;sub-type&quot; metadata.<br>
[11:14] &lt;homunq&gt; does that make sense?<br>[11:14] &lt;tomeu&gt; why do activities other than Read need to open those pdfs?<br>[11:14] &lt;homunq&gt; so both &quot;print&quot; and &quot;read&quot; would handle pdfs.<br>
[11:15] &lt;homunq&gt; &quot;print&quot; would be, within GSoC scope, an activity with no UI - just enqueue and terminate.<br>[11:15] &lt;-- eben has left this server (Read error: 110 (Connection timed out)).<br>[11:15] &lt;homunq&gt; eben, we hardly knew ye.<br>
[11:16] &lt;homunq&gt; is that clear? And should I make the same clarifications on ML?<br>[11:16] &lt;tomeu&gt; homunq: why do we need an activity with no UI?<br>[11:17] &lt;tomeu&gt; homunq: enqueue should be pretty easy to do in the journal by using gtkprint<br>
[11:17] &lt;homunq&gt; um, because that&#39;s the work flow?<br>[11:17] &lt;tomeu&gt; just like we don&#39;t have an activity for copying files from a usb stick to the journal<br>[11:17] &lt;tomeu&gt; homunq: which workflow?<br>
[11:17] &lt;homunq&gt; I mean, there would be several versions/updates of the activity possible.<br>[11:18] &lt;tomeu&gt; by sending a file to the print queue is quite trivial in pygtk<br>[11:18] &lt;homunq&gt; the no-UI version is just alpha, for GSoC.<br>
[11:18] &lt;tomeu&gt; s/by/but<br>[11:18] &lt;homunq&gt; what print queue?<br>[11:18] &lt;tomeu&gt; and about the preview UI, why not just use Read?<br>[11:18] &lt;homunq&gt; the moodle queue on the XS?<br>[11:18] &lt;tomeu&gt; homunq: cups, lpr, whatever<br>
[11:18] &lt;tomeu&gt; the moodle queue, I think it&#39;s enough with file uploading in browse for now<br>[11:19] &lt;tomeu&gt; that gives us authentication and is already done<br>[11:19] &lt;homunq&gt; OK, so &quot;print&quot; activity is a spin of browse.<br>
[11:19] &lt;tomeu&gt; printing from the journal means for me to just submit a file to the local printing queue<br>[11:19] &lt;homunq&gt; the local printing queue is meaningless.<br>[11:20] &lt;tomeu&gt; homunq: well, it&#39;s the same thing you have in windows when you send documents to print<br>
[11:20] &lt;tomeu&gt; in most cases won&#39;t make sense, but it&#39;s stuff that it&#39;s already done<br>[11:20] &lt;homunq&gt; yes but the moodle queue is the whole point of this GSoC<br>[11:20] &lt;tomeu&gt; and will be important for a teacher printing from sugar to an attached printer, for example<br>
[11:21] &lt;tomeu&gt; homunq: ok, I don&#39;t think it&#39;s needed to implement local printing in this gsoc<br>[11:21] --&gt; J5 has joined this channel (n=<a href="mailto:quintice@c-24-91-155-241.hsd1.ma.comcast.net">quintice@c-24-91-155-241.hsd1.ma.comcast.net</a>).<br>
[11:21] &lt;homunq&gt; but we don&#39;t want to give every kid UI that only the teacher will use. Much confusion results.<br>[11:21] &lt;tomeu&gt; so for uploading the file to moodle, can we just let the user use browse like would do for any other moodle-related stuff?<br>
[11:21] &lt;tomeu&gt; homunq: sugar will be used out from classrooms<br>[11:22] &lt;tomeu&gt; homunq: want it or not, we are being asked to be able to directly print from sugar, and it&#39;s quite cheap to implement<br>[11:22] &lt;tomeu&gt; homunq: but I would prefer if the gsoc project focused on moodle<br>
[11:22] &lt;tomeu&gt; don&#39;t worry about this now<br>[11:22] &lt;homunq&gt; OK. So the workflow is: print to pdf. Resulting pdf has some &quot;print-me&quot; tag. Browse to upload - can search for &quot;print-me&quot; tag for easier upload.<br>
[11:23] &lt;homunq&gt; print to pdf is from inside journal, to journal.<br>[11:24] &lt;tomeu&gt; not sure I understand the importance of that print-me tag<br>[11:25] *** nubae1 is now known as Nubae.<br>[11:25] &lt;homunq&gt; future enhancement is to do a spin of browse that handles PDF, and has a print-me menu item which will pre-fill the upload form with the given pdf.<br>
[11:25] &lt;tomeu&gt; but on the other hand, I think it may be good to start tagging entries automatically as we do stuff with entries, if it doesn&#39;t become cumbersome for the user<br>[11:25] &lt;aa&gt; me neither...<br>
[11:25] &lt;aa&gt; homunq: I dont think we&#39;ll use browse to upload<br>[11:26] &lt;homunq&gt; aa: neither did I but tomeu just convinced me.<br>[11:26] &lt;homunq&gt; now I&#39;m confused again.<br>[11:26] &lt;tomeu&gt; what I like about uploading the file with browse to moodle is: it already works, kids will be already uploading files to moodle for other purposes<br>
[11:26] &lt;aa&gt; we just need an HTTP POST there<br>[11:26] &lt;tomeu&gt; aa: we need authentication<br>[11:26] &lt;homunq&gt; tomeu is right.<br>[11:27] &lt;tomeu&gt; and progress tracking, allow the user to cancel the transfer, etc<br>
[11:27] &lt;tomeu&gt; not really just a http post<br>[11:27] &lt;aa&gt; tomeu: the idea was to use XML-RPC for that<br>[11:27] &lt;tomeu&gt; also, it&#39;s something we can implement in a later stage if feedback from the field proves me wrong<br>
[11:27] &lt;aa&gt; moodle has that<br>[11:27] &lt;tomeu&gt; aa: I would really like to keep things as simple as possible<br>[11:27] &lt;homunq&gt; I agree with tomeu. The quickest win is browse, the rest can come later.<br>
[11:28] &lt;aa&gt; well, if that&#39;s the case, I would leave queue management for later on<br>[11:28] &lt;homunq&gt; aaak.<br>[11:28] &lt;homunq&gt; is there anything that is not up for questioning here?<br>[11:29] &lt;homunq&gt; I think that queue management, at least for the teacher, within moodle, is the heart of this GSoC.<br>
[11:29] &lt;homunq&gt; I could imagine punting on all but the simplest (&quot;view&quot;) queue management for students within GSoC<br>[11:29] &lt;homunq&gt; but teacher queue management is fundamental.<br>[11:29] &lt;aa&gt; tomeu: the auth infrastructure currently being implemented by ML is just using the machine&#39;s public key<br>
[11:29] &lt;tomeu&gt; homunq++<br>[11:30] &lt;aa&gt; we can duplicate that code in the journal<br>[11:30] &lt;aa&gt; yes, within moodle<br>[11:30] &lt;tomeu&gt; aa: sorry, if we can avoid adding code to the journal, we should<br>
[11:30] &lt;homunq&gt; within moodle --&gt; easiest with Browse.<br>[11:30] &lt;tomeu&gt; we really really should<br>[11:30] &lt;bemasc&gt; tomeu: I disagree.<br>[11:30] * homunq lol<br>[11:30] &lt;aa&gt; we are talking 10 lines...<br>
[11:30] *** jg_ is now known as jg.<br>[11:30] &lt;bemasc&gt; I want an option on every item in the Journal: &quot;print this&quot;.<br>[11:31] &lt;tomeu&gt; correctly exposing async operations in the UI aren&#39;t 10 lines<br>
[11:31] &lt;homunq&gt; nobody agrees on anything, except that this is a great idea in their own head. :)<br>[11:31] &lt;tomeu&gt; bemasc: I would like to as well, but for this gsoc, if we can avoid touching the journal and implement the desired functionality with a decent user experience, we should<br>
[11:31] &lt;bemasc&gt; homunq: which is why ultimately Vamsi will decide<br>[11:31] &lt;bemasc&gt; tomeu: ok, sure.<br>[11:32] &lt;tomeu&gt;  bemasc: I talk mostly as a module maintainer here, I&#39;m trying to find a solution that has a good balance regarding maintainability<br>
[11:32] &lt;aa&gt; tomeu: I&#39;m talking about the auth code, which was your objection against doing a http post to send the file<br>[11:32] &lt;-- satellitFbe-74c6 has left this server (Remote closed the connection).<br>
[11:32] &lt;homunq&gt; tomeu: do you now understand what I am proposing? It touches the journal in the conversion to pdf step, not in the sending to queue step.<br>[11:32] &lt;tomeu&gt; I&#39;m sure you will find what I propose less elegant, but we need to be able to deal with the new code that will be created<br>
[11:32] &lt;tomeu&gt; aa: ok<br>[11:33] &lt;tomeu&gt; homunq: yeah, I like that more<br>[11:33] &lt;aa&gt; homunq: luckily there seems to be an agreement on how the activity API for this will look...<br>[11:33] &lt;tomeu&gt; homunq: I would like to avoid doing the conversion to pdf in the journal, but I don&#39;t see how<br>
[11:34] &lt;bemasc&gt; we are experiencing one of the key problems with open projects: everyone&#39;s an architect.<br>[11:34] &lt;tomeu&gt; well, it may not be a problem, we just need to deal with that condition<br>[11:34] &lt;homunq&gt; and I am explicitly saying that the suggested list of cups filters is very limited, but that the actual list is distro-dependent.<br>
[11:35] &lt;aa&gt; tomeu: I think the pdf conversion itself can happen in the activity process<br>[11:35] &lt;tomeu&gt; aa: I think it should be able to happen there<br>[11:35] &lt;homunq&gt; tomeu: does that address your maintenance objections somewhat?<br>
[11:35] &lt;tomeu&gt; aa: I&#39;m not sure if we can leave it to the activities in all the cases, though I would love to<br>[11:35] &lt;bemasc&gt; aa: it can happen there, but I don&#39;t see why it should.  Sugar is all about taking common functionality and moving it into the shell<br>
[11:35] &lt;homunq&gt; aa: have you read my email<br>[11:36] &lt;tomeu&gt; homunq: well, we should probably avoid having to add conversion filters to the sugar platform<br>[11:36] &lt;aa&gt; bemasc: I dont see a contradiction with that if the code is in the Activity base class<br>
[11:36] &lt;tomeu&gt; or we are going to end up specifying a full distro<br>[11:36] &lt;homunq&gt; aa: I think &quot;activities do the pdf conversion&quot; should be exception not the rule.<br>[11:36] &lt;aa&gt; which has been my proposal so far<br>
[11:36] &lt;homunq&gt; tomeu: why?<br>[11:36] &lt;aa&gt; heh<br>[11:37] &lt;tomeu&gt; homunq: the bigger sugar-platform is, the less space we let to deployers to adapt to their own realities<br>[11:37] &lt;bemasc&gt; tomeu: I agree... which is why the conversion should happen in the Journal.<br>
[11:37] &lt;bemasc&gt; That way, the Journal provides an abstraction barrier between activities and the CUPS filter system.<br>[11:37] &lt;homunq&gt; tomeu: I said they&#39;d not be part of the platform, that they&#39;d be extras to make a &quot;print-enabled&quot; sugar.<br>
[11:37] &lt;tomeu&gt; unless they decide to use a subset of sugar-platform, then some activities won&#39;t work, then the rationale for sugar-platform gets lost<br>[11:38] &lt;tomeu&gt; homunq: what if some distro doesn&#39;t have one of those filters?<br>
[11:38] &lt;tomeu&gt; homunq: or have a different implementation of a filter?<br>[11:38] &lt;homunq&gt; then it&#39;s not print-enabled?<br>[11:38] &lt;tomeu&gt; bemasc: only in the journal?<br>[11:38] &lt;tomeu&gt; homunq: well, but it prints ;)<br>
[11:38] &lt;-- sirderigo has left this server (Remote closed the connection).<br>[11:38] &lt;aa&gt; tomeu: we can parse /etc/cups/mime.conv and adjust to the provided filters<br>[11:39] &lt;bemasc&gt; tomeu: right.  If all printing goes through the Journal, then we don&#39;t have this problem.<br>
[11:40] &lt;homunq&gt; tomeu: yeah, that&#39;s the intent of having a &quot;print-enabled&quot; badge which you only get if you have this exact set of filters in an approved version of each<br>[11:40] &lt;bemasc&gt; I don&#39;t think any of that is necessary<br>
[11:40] &lt;homunq&gt; printing behaviour if you don&#39;t have that badge is undefined, and that&#39;s OK.<br>[11:41] &lt;homunq&gt; ie, enforcement is social, not digital.<br>[11:41] &lt;bemasc&gt; oh, you don&#39;t mean this &quot;badge&quot; to be an actual software feature. ok.<br>
[11:41] &lt;aa&gt; so, we all agree that conversion to pdf should happen locally<br>[11:41] &lt;aa&gt; (for reasons discussed in the list)<br>[11:41] &lt;bemasc&gt; aa: that&#39;s a very general statement, and not true even in tomeu&#39;s proposal<br>
[11:41] &lt;tomeu&gt; guys, we should use the mailing list, or I&#39;m going to get insane<br>[11:42] &lt;homunq&gt; aa: good job, I didn&#39;t think there was anything we all agreed on but you found it.<br>[11:42] &lt;aa&gt; tomeu: ?<br>
[11:42] * tomeu is also in #gnash talking about the gnash widget<br>[11:42] --&gt; satellitFbe-74c6 has joined this channel (n=<a href="mailto:urk@208-100-132-172.bendbroadband.com">urk@208-100-132-172.bendbroadband.com</a>).<br>
[11:42] &lt;tomeu&gt; aa: I think it will be easier to agree on something in the mailing list<br>[11:42] &lt;homunq&gt; OK. I will clarify my proposal on ML based on this conversation.<br>[11:42] &lt;aa&gt; ok<br>[11:43] --&gt; kushal has joined this channel (n=<a href="mailto:kdas@115.240.35.240">kdas@115.240.35.240</a>).<br>
[11:43] &lt;tomeu&gt; btw, I think we agree more than it seems ;)<br>[11:46] &lt;bemasc&gt; vamsi is starting to get annoyed at us for taking over engineering of his project :-)