Cool! Do's not dead. This is great... or so I thought at first. But
now I have become a bit skeptical. I wonder: why did you make this
move? why is it important from an engineering point of view? Is this
the end of Do as we know it?
And, more importantly, what is it going to bring to the end user? As
far as I understand it, each and every plugin will have to be
rewritten... so there are big risks. Am I mistaken on this? I don't
understand the blueprints very well.
Here are a two things I'd like to see in Do. I think they have been
discussed before, even though I don't remember where and when. Will
this rewrite make it any easier to get any of that pie-in-the-sky
stuff? If not, will it bring some other goodness I'm not even thinking
of?
* A way to launch Do from Nautilus to do something on the selected
files. While I've never used Quicksilver, this seems to be one of the
feature that make it powerful. Right now, I don't use Do much to do
things with files: drilling down to the wanted file is a bit annoying,
and multiple selection really doesn't work well (see bugs #268295 and
#320365).
* An easier way to develop plugins. I guess it is not really
complicated, but for simple plugins I shouldn't have to read about the
internals of Do, about its "Universe", nor should I need to learn a
new programming language (at least for simple tasks). I am still
impressed with the way Textmate (on the mac, again I have never used
it) allows extension: write a script in your favorite little language
(bash, python, ruby, whatever), you can use some environment variables
set up by the program, tell me what your input and output look like,
and that's basically it [1]. Could this maybe inspire Do?
Right now, I can easily set up a shell script as a program for Do to
run, even with the custom icon, by writing a .desktop file. I can't
pass arguments to it, however. If we could write a configuration file
that says "present an action with this name, this description, this
icon for items of standard type text or url or file or ..., this
action runs this shell script, or runs this external application, with
those parameters, passing the item as that parameter... and doesn't
return anything/returns a filepath/a url"
A lot of plugins are just running external applications any way:
AptURL, Archive, EOGSlideShow, Locate...
It may be very easy already to do this. If so, show me. And even if it
is: could it be made easier?
There are other things I'd like to see, but mainly it's just some
plugins I wish I had come around to writing, so the above takes care
of this.
This was probably too long. My point really is: what should we expect?
This is not the best time for me to start helping on an open source
project, but if it seems worthwhile, I might try to give you guys a
hand - even though my knowledge of C# and Do's code base is limited.
Regards,
Nicolas
[1] If you've never used Textmate either, see
http://manual.macromates.com/en/, especially
http://manual.macromates.com/en/commands#commands, and the "Scope
based customization" screencast on http://macromates.com/screencasts.
(The beginning is less interesting but at about 7:18 you can see how
adding a command works).
Cool! Do's not dead. This is great... or so I thought at first. But
now I have become a bit skeptical. I wonder: why did you make this
move? why is it important from an engineering point of view? Is this
the end of Do as we know it?
And, more importantly, what is it going to bring to the end user?
As far as I understand it, each and every plugin will have to be
rewritten... so there are big risks. Am I mistaken on this? I don't
understand the blueprints very well.
Here are a two things I'd like to see in Do. I think they have been
discussed before, even though I don't remember where and when. Will
this rewrite make it any easier to get any of that pie-in-the-sky
stuff? If not, will it bring some other goodness I'm not even thinking
of?
* A way to launch Do from Nautilus to do something on the selected
files. While I've never used Quicksilver, this seems to be one of the
feature that make it powerful. Right now, I don't use Do much to do
things with files: drilling down to the wanted file is a bit annoying,
and
multiple selection really doesn't work well (see bugs #268295 and
#320365).
* An easier way to develop plugins. I guess it is not really
complicated, but for simple plugins I shouldn't have to read about the
internals of Do, about its "Universe",
nor should I need to learn a
new programming language (at least for simple tasks).
I am still
impressed with the way Textmate (on the mac, again I have never used
it) allows extension: write a script in your favorite little language
(bash, python, ruby, whatever), you can use some environment variables
set up by the program, tell me what your input and output look like,
and that's basically it [1]. Could this maybe inspire Do?
Right now, I can easily set up a shell script as a program for Do to
run, even with the custom icon, by writing a .desktop file. I can't
pass arguments to it, however. If we could write a configuration file
that says "present an action with this name, this description, this
icon for items of standard type text or url or file or ..., this
action runs this shell script, or runs this external application, with
those parameters, passing the item as that parameter... and doesn't
return anything/returns a filepath/a url"
A lot of plugins are just running external applications any way:
AptURL, Archive, EOGSlideShow, Locate...
This was probably too long. My point really is: what should we expect?
This is not the best time for me to start helping on an open source
project, but if it seems worthwhile, I might try to give you guys a
hand - even though my knowledge of C# and Do's code base is limited.
> We want Do to become a first class part of your desktop. To implicitly
> integrate with your system. We want the applications themselves to have more
> control over what Do does. This should increase the coherence between Do
> and your desktop.
This sounds great, but it is pretty abstract. Can you give me an
example of this tight integration? What application could benefit from
having more control over Do?
> Another great engineering point is that it lets us also move the plugins
> into their own processes. Plugins will never again be able to crash Do. If a
> plugin crashes you won't get its items- but everything else will still work,
> as if nothing happened. [...]
Sounds good, even though Do never crashes on my computer.
Thank you for taking a look at my "wishlist". Being able to write
plugins in any language is very nice! I won't comment a lot more, but
if I understand correctly, you will look into some of these issues,
which is great :)
> Happy to answer all of your questions, I hope I did a sufficient job. If you
> have any questions about blueprints, or if you can identify parts that are
> unclear to you I'd like to know so I can clear the up.
I'll look more into them, and see if I can give you a better feedback.
Firstly, there's an overall goal here in reducing the current plugin
bottleneck. We've got *lots* of plugins, but in order for your swanky
new application to get supported in Do you additionally need to write a
Do plugin, get that merged into do-plugins, etc.
The new architecture allows the application itself to provide the
functionality a Do plugin would provide.
Since the requirements for Do are quite close to the requirements for a
GUI automation/scripting tool, I think this will create exciting
opportunities.
We're also looking at having a live-search mechanism, where rather than
the plugin/application providing all the items up front it can provide
them on-demand. Think google's search suggestions, or a full filesystem
search, or a dynamic search of Banshee's database.
This explains why the plugins I have written have not been added to
do-plugins. Good show! I'm excited to see what you come up with.
This explains why the plugins I have written have not been added to
do-plugins. Good show! I'm excited to see what you come up with.