

Ask YC: Review my app (pycmds, a web-based command line) - csytan
http://www.pycmds.org

======
marketer
The auto-suggest gets annoying because it's always displayed. You should only
display it when you have a partial match.

This query crashes the site: <http://www.pycmds.org/#youtube> search for miley

~~~
csytan
I should mention somewhere that the inputs should be surrounded by square
brackets. Try this: <http://www.pycmds.org/#youtube> search for [miley]

The auto-suggest is supposed to only display partial matches like you said.
What browser/operating system are you using?

~~~
sc
Or you should make it so inputs don't need to be surrounded by square
brackets.

------
apu
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']

~~~
csytan
Fixed :-)

------
tptacek
It's DOM-injectable:

<http://www.pycmds.org/#albums%20by%20>['foo']%22%20onclick=%22alert(1)%22

It gives me Python stack traces on most funky commands.

~~~
csytan
The stack traces are intentional. Since it's an open source project, I figured
I would make debugging as easy as possible.

As for the DOM injection, I will look into that after I have fixed the major
bugs.

------
siong1987
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

~~~
csytan
Hi siong, Your site looks nice :)

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.

If you're interested in collaborating, check out the project page:
<http://code.google.com/p/pycmds/>

------
Stabback
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.

------
rksprst
It's cool, but I don't see how it's useful at all. Some of the commands are
even more verbose than going to google and typing in a search.

~~~
csytan
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!

------
bayareaguy
You need to tell people to enable javascript.

Also please make the obvious commands like "help" or "info" do something
useful.

------
acgourley
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).

my 2 cents.

~~~
Stabback
Look up Ubiquity.

------
toxik
I bet it's great, only it's almost utterly unusable in WebKit/Safari.

~~~
csytan
I've been testing it in the latest version of Safari on Windows XP, and there
doesn't seem to be any major bugs. Could you tell me what isn't working?

~~~
toxik
When I type a key in the input thing, it's as if I hit PgUp.

I get completion, select an item and hit enter. Not only does it PgUp for
every key, it also keeps the autocomplete visible after I hit Enter.

And otherwise slow. Try WebKit nightly on OS X.

~~~
csytan
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.

------
pmikal
It would be helpful if you had, at minimum, at least a fraction of the 12k+
commands already available at YubNub.

<http://yubnub.org/>

~~~
bootload
_"... It would be helpful if ..._ "

Of course yubnub couldn't be improved or made easier? Having said that it does
claim to be a CLI.

------
deathbyzen
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.

~~~
csytan
Thanks for asking :)

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 [").

~~~
kashif
Read the curses library implementation. You might find it useful.

~~~
csytan
Hi :] What part of it would be useful?

------
ash
At first I didn't notice there's a command prompt at the bottom. At least you
could point visitors to it.

------
mattjung
I use shortcuts on Firefox to do exactly the same thing, but without the need
to open a web-page.

------
kashif
Good work. We had a similar idea and we see potential in this. Dont stop!

------
jodrellblank
Why is your AuthDomain "gmail.com"?

~~~
csytan
It's an appengine app

