Bug report, when doing a search for 'albums by [muse]' (btw oops is not spelled opps ;-)):
Opps! You found a bug. Here's the skinny:
Traceback (most recent call last):
File "/base/data/home/apps/pycmds/1.34/main.py", line 36, in get
out = self.dispatch(cmd)
File "/base/data/home/apps/pycmds/1.34/main.py", line 59, in dispatch
data = func(**kwargs)
File "/base/data/home/apps/pycmds/1.34/pycommands/entertainment.py", line 67, in albums_by
"type": "/music/artist"
File "/base/data/home/apps/pycmds/1.34/pycommands/freebase.py", line 26, in mql_read
return result['qname']['result']
I did the same thing as you - http://geeky.siong1987.com . Anyway, I really love the way you layout your web application and it has better UI than mine. Work hard on it. My application does support API developed by developers. But, I implemented this feature in a very poor architectured way.
So, I really think that you should add the features that other developers can developer commands for you
I'm going to be working on a developer sandbox once I fix most of the major bugs. This should let people write python code in their browser and have it run on the server. The API is very simple: around 5 minute learning curve once I have the documentation in good shape.
To be honest it's too slow to be of any use. It just feels clunky. I would use it if it were fast, but having to wait for the javascript to catchup is pointless. The autocomplete doesn't help when it pops up after I have paused for a second. If I type "you" very fast and hit tab, it won't always autosuggest in time. To make things worse, you are going to be directly competing against Ubiquity.
Another big annoyance is how dumbed down it makes a terminal. If I want to do a youtube search i feel like I should be able to simply write "youtube blue man group". I don't want to have to add in "search for" or add in square brackets around my query.
The main problem is that I can see that it's there. I use a terminal to avoid having to interact with an interface. I agree with Google's Chrome philosophy, that they don't want you to notice the browser at all. Spend your time figuring out how to make it faster and easier and then you've got something you can show off. I would be worried about Ubiquity though as a browser plugin can work so much faster than javascript.
Currently the commands that are available are there just for demonstration purposes. I think it will become more useful when users add their own commands, which will be pretty simple to do once I complete the sandbox.
As for the verbosity, it's there because once you read the command, you should be able to tell:
1. what it does, and
2. what type of input is required
Typing shouldn't be a problem with auto-complete. It should actually be faster than a normal command line!
I think "bash for the web" is a cool idea. I think it might make more sense to see this as a firefox plugin, though.
One reason we see these things as hosted apps is because authors are excited about users doing a lot of the work for them and submitting commands. (I know, I've worked on something like this).
Mostly, I think the core language and interface are more important than the libraries, and these will run better client side (unless you connection sucks). The core has to be robust because only real nerds will use it anyway, and they won't use it if it won't save them much time.
So, make the core more important, run it locally, make the user submitted libraries easily downloadable/syncable, and always assume the core language is more imporant that library usage (so optimize keystokes for core operations).
The scrolling bug should be fixed now, and I think the auto-complete bug should also be fixed.
I turned off box shadows in safari, so that might speed things up a bit. There's still a lot of room left for javascript optimizations after I get it working decently in most browsers.
1)Why require brackets? They seem superfluous. Unless theres something in the design of your code that requires them, I see them doing no good. 2)Shorthand versions of commands. "wiki stargate" instead of "wikipedia stargate"
3) The UI is nice. It took me a second to realize it wasn't a plug-in/extension like Ubiquity, but I had to type in commands at the bottom.
What are you reasons for making this app? I like it, but I can't see myself using it every day.
Adding the brackets greatly simplifies things for the implementation of the command dispatcher/suggester. In addition, in some situations it can be difficult tell what part of the command is an input and what isn't.
For example, let's say a user intends to use the command:
translate [text] to [language]
They type:
translate hey buddy! i found this neat guide to japanese
There are two ways to interpret this, both of which are valid:
1. The user typed a full command.
Bracketed version:
translate [hey buddy! i found this neat guide] to [japanese]
2. The user isn't finished writing the text to be translated, and should get a list of suggestions.
Bracketed version:
translate [hey buddy! i found this neat guide to japanese]
I made this app because traditional command lines are often tricky to use. I don't enjoy looking up documentation for each and every command argument.
With this method, you get suggestions at every step of the way (try typing "films starring [").
This query crashes the site: http://www.pycmds.org/#youtube search for miley