105 comments

[ 2.9 ms ] story [ 168 ms ] thread
I really like this, but there needs to be a better way to navigate to a page. The pop-up scheme is blocked by my browser. Perhaps, a iframe with the terminal becoming a header similar to Google image search? Maybe using Links?
I sort of agree with the inconvenience with pop-ups. Can't you selectively enable them for some web sites?
I need vi mode!
Why would it need vi keybindings? This is a terminal emulator, not a text editor.
Default key bindings on korn shell are VI..
and bash supports vi mode.

    $ set -o vi
I use it always.
The ASCII duck as a variable in the source is wonderful (trimmed to fit a HN comment):

                       .:/++++/:-.`                                               
                       `-/syyyyyyyys+:.                                           
                      `+ossosssyyyyyyyys/.                                        
                       ``````.:/+oyyyyyyys/-.`                                    
                         `:+syyyyyyyyyyyyyyyyso/.                                 
                       `/syyyyyyyyyyyyyyyyyyyyyyy/`                               
                      .syyyyyyyyyyyyyyyyyyyyyyyyyys.                              
                     -syyyyysosyyyyyyyyyyyyyyys+//+o-                             
                    `oyyys::+ossyyyyyyyyyyyyyyssssssy-                            
                    :syyy/syyyyyyyyyyyyyyyyyyyyyyyyyys`                           
                    +syyyyyyyyyyyyyyyyyyyyyyyyyys+/+yy+                           
                    +syyyyyys:.-:syyyyyyyyyyyyyy.   -yy.                          
                    :yyyyyyy-    .yyyyyyyyyyyyyy:` `:yy/                          
                    `ysyyyyy/`  `/yyyyyyyyyyyyyyysssyyyo       ``..--..`          
                     osyyyyyysoosyyyyyyyyyyyyyyyyyyyyyy+``...---::::::::.         
                     -ysyyyyyyyyyyyyyyyyyyyyysoooo+++//:-:::::::::::--.`          
                     `ssyyyyyyyyyyyyyyyyyso/:::::::::::::::::::---.``             
                      /yyyyyyyyyyyyyyyys+::::::::::::::::---..``                  
                      `ysyyyyyyyyyyyyyy/:::::::.```....```                        
                       osyyyyyyyyyyyyyyo:::::::                                   
                       -ysyyyyyyyyyyyyyyo::::::-.``        ```...----             
                        ssyyyyyyyyyyyyyyyy/.---:::----------::::::--`             
                        :yyyyyyyyyyyyyyyyy/   ``..--------------.``               
                        `ysyyyyyyyyyyyyyyy/          ````````                     
                         +syyyyyyyyyyyyyyys                                       
                         .ysyyyyyyyyyyyyyyy-                                      
                          osyyyyyyyyyyyyyyyo        `.-`                          
                          :yyyyooosyyyyyyyyy:    `-/oss+                          
                          `ssys://++ossyyssso-..:+oossss`                         
                           /yys://++ooss++oooso//+oossss-                         
                           .ysy://++ooss++oooss//+oossss-                         
                            osy://++ooss++oooss/++oossss.                         
                            -ys///++oossssssssyys--/+oso                          
                             sso//+ossyyyyyyyyyyyo`                               
                             -sysyyyyyyyyyyyyyyyyys`                              
                              :/osyyyyyyyyyyyyyyyyyo
If the world were full of people who were interested in optimizing their computer interfaces this way, all websites would support a mode of operation like this and there would be a framework for the end user to pipe them to each other like the unix pipeline.

Let us make it so!

I did that once, actually. It was an in-browser shell that piped REST requests and responses between each other. (Specifically, it would pipe the bodies.) It worked, but it didn't really catch on.

Here's a video of it (unfortunately, before it had piping or remote requests): http://www.youtube.com/watch?v=erVREtQoMCc

This has actually been a dream of mine for as long as I have been addicted to the command line. Feel free to contact me if you have thought it through further than I have - would be interested in discussing possible implementations.
You guys should really have a look at Web Outside Of Browsers: http://weboob.org/
Weboob 'Web outside of Browsers', I can get that. But the attempt to put 'boob' in every application name? Am I missing something from a translation from French or is this meant to be comic?

Flatboob: Search for a house.

Wetboobs: Display current weather water levels and to see forecasts.

Nice to see application 'QHaveDate' was altered from 'QHaveSex'.

They need to distribute /usr/bin/ddg, a binary that lets me search like this.
Yes, to really have this available in my terminal would make far more sense then in the browser where i can do the same stuff by entering stuff in the location bar..
I'm sure you realize that not all of us 1) use graphical user interfaces or environments when we work 2) have browser open 3) prefer clicking around stuff

Just some of us want to do simple things such as [shift]+[right arrow], "ddg hackernews -l 5" which would then return the five topmost(the imaginary -l or --limit) results. No need to change workspaces, focus the browser, open a new tab, write out the search term, look around, switch back to work environment and try to memorize what we just saw.

I think you totally misinterpreted your parent comment, and read sarcasm where there was none!
Exactly that. I was just wishing to have the "tty" tool in my actual terminal and not in my browser, just because i spend more working time in the terminal then in the browser. Having to open the browser to find a text interface is somehow backwards.
My bad and apologies, not being a native English speaker does tricks at times. :(
Don't worry, that problem hits us native speakers quite often

http://en.wikipedia.org/wiki/Poe%27s_law

I think if you plan on responding, it works best to assume sincerity. That leads to more interesting conversation over the long run.

It also helps teach people that sarcasm is not a real substitute for wit.

Sarcasm can be an excellent expression of wit, but it has do be done correctly. That's particularly difficult to do in text.
I was pleasantly surprised to see that CTRL + L worked perfectly.
Actually, even TAB should trigger auto-complete, but the server seems to be down. :-(
(comment deleted)
Using this felt similar to using the Github Launch Bar[1] for the first time.

Something about having a command line interface really makes it feel like you are communicating deeply with the software, as opposed to poking around its surface in arranged flows. With a command line the interaction is different - it is exploratory with freestyle flow composition, and that can be really fun.

Modern graphical interfaces combined with a means to freely manipulate data and compose commands seem to be quite rare. I have always wished to have a full command line accessible in RPGs inside the game's menu system, so I could script some tedious things.

[1] https://github.com/launch

Sentiments I totally agree with.

So much so that we started a side project to create a CLI environment for exploring the personal cloud. It's a web app which exposes your FB, Twitter, Picasa resources as files and navigate them using a shell and unix-like tools. It's not "launch-ready" yet - still got to write tests, docs, FAQs, and so on (i.e. the last 10% which takes 90%) but there is a live alpha version at https://pigshell.com. (Your data stays 100% private: The app is all static files and client-side JS. The server can't see a single bit of user data)

And yes, Ctrl-L works. Tab completion too. What would life be without them? One damn point-and-click after another :)

Man, this is really cool! I'm playing with this right now and I liked it very much. Keep up the great work! :-)
That is fantastic. hoooo boy I'm gonna have fun with that
(comment deleted)
It doesn't search for 'google'. Nothing pops up.
When you are using the https:// page Chrome blocks the API calls, because it throws AJAX requests against the http:// API.
Ah thanks for pointing that out, it was baffling me and I couldn't even send feedback :P
This should be fixed. Sorry about that.
Works fine for me.

$ google [:21] Google google definition: to use the Google search engine to obtain information about (as a person) on the World Wide Web. http://www.merriam-webster.com/dictionary/google

-- Type 'm' for more results and 'r' for related topics. $ :google [:22] "Google" - a global search engine Searches web pages, images, PDF, MS Office and other file types in all the major languages, and includes advanced search features, news, maps and other services. https://encrypted.google.com/ [:23] Google Google.ca offered in: français. Advertising ProgramsBusiness Solutions+GoogleAbout GoogleGoogle.com. https://encrypted.google.com/ [:24] Google.org The philanthropic arm of the company. Lists its activities. http://www.google.org/ [:25] Google - Wikipedia, the free encyclopedia Google Inc. (NASDAQ: GOOG) is an American multinational corporation which provides Internet-related products and services, including internet search, cloud computing, software and advertising technologies. https://en.wikipedia.org/wiki/Google [:26] Google Google has expanded into many areas beyond simple web searches, including mapping and directions (Google Maps), video (YouTube), and photos (Picasa). http://mashable.com/category/google/ [:27] Google News Comprehensive up-to-date news coverage, aggregated from sources all over the world by Google News. http://news.google.com/ [:28] iGoogle - Google iGoogle is your personalized Google page. Add news, photos, weather, and stuff from across the web to your page. http://www.google.com/ig?hl=en

-- Type 'm' for more results.

Isn't this more of a shell than a terminal emulator?
> :why Because Devdas uses vimperator with Google?? I don't think they mix well.

and I had to disable vimium in order to use this one. they don't mix well...

Did not work with Conkeror (based on emacs) either.
It doesn't integrate very well with vimperator either...
Hit the Insert Key, this ignores every vimperator command until you hit Insert or S-Esc.
I'm on Fedora 17 trying it on Chrome. Only the ":command"s work. Tried to email feedback as per instructions but receive this alert:

Sorry your feedback could not be send :-( Please try again.

Works fine on Firefox but the feedback functionality is broken there too.

I've pushed some changes out for this. I'd appreciate if you could confirm it works as expected now.
(comment deleted)
I think this might be more useful the other way around.

Put ddg inside a linux shell and let me interoperate with linux commands.

eg. ddg reviews samsung note | grep "note 2"

This was what I was hoping for rather than an ascii terminal style search. Does DDG have an API?
DDG does have an API for the goodies, but not for the search results because they come from a variety of sources, some of which don't allow sub-licensing.
Seems like you could have a search API for the sources that do allow sub-licensing. But I'm not sure putting search into an API would be a good way for DDG to gain revenue.
What are the ways to gain revenue using the website DDG uses?
What would be the difference between "licensing" the API for private non-commercial use only, and "licensing" the website for private non-commercial use only? I assume the TOS for the website are restrictive to satisfy the licenses they have with others, could you make an API that has equivalent terms?
(comment deleted)
For this particular example, why don't you use just ddg reviews samsung "note 2" ?
You are right. Bad example. I was just trying to do something with pipes to illustrate the point.
There's a unix utility called "surfraw" that does this. I don't know if it support DDG yet, but it's very cool.
All surfraw seems to do is generate the URL for the search and opens it in a browser. Disappointing :(
I just got it installed and quite like it. It may not give you interactive search capabilities, but it DOES support DuckDuckGo, and the other "elvi" are quite handy. I now have a quick way of instantly opening Lisp, Java and other language docs in the terminal, and jumping straight to wikipedia articles in w3m.
It would be interesting to have access to this by telnetting (or sshing) to duckduckgo.com.
The feedback feature seems broken:

>> :feedback my@email.com "my feedback" (I also tried without the ") "Sorry your feedback could not be send :-( Please try again."

I love it. I really do. Congratulation and keep up the good work with ddg!

There was some news a few days back that DuckDuckGo was shutting down!

Where does this leave us. What is happening at DDG?

EDIT: Sorry, I read shut out as shut down!

Can you please point us to that article?

Just so there is no ambiguity, we are alive, doing well and growing: https://duckduckgo.com/traffic.html

http://news.ycombinator.com/item?id=4817466

Prakash,

Thanks for clarifying. Might sound like stereotyping, I apologize if it does. Looking at your name, just asking if you guys have a office in India?

What sort of problems are you working on?

Yup, no offices in India, but contractors are distributed worldwide and work over the wire. :)
It's fantastic. Google should implement their own tty emulator immediately.
I love stuff like this. Clearly targeting hackers is certainly a good idea.

I can't use this in Chrome on my tablet, though, because I can't open the keyboard.