Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How DuckDuckGo is trying to help programmers (duck.co)
355 points by tagawa on April 1, 2016 | hide | past | favorite | 67 comments


I've been using DuckDuckGo for several years, but sadly their search doesn't really help for technical topics. I let them have first crack at the answer, and then usually have to add !g to let google have the next crack.

The underlying problem is what they do when a search contains multiple words - 3 or more especially. DDG starts ignoring some of the words, but usually that is what matters. For example search for [usb type c resistor] and the DDG results treat the "resistor" part of the search as a small amount of what is being searched, with many results not that directly useful. As a human we know that [usb type c] is very common, and adding the [resistor] part is actually the meat of the query. Google gets that and gives better results, although they aren't miles apart.

The pattern is the user adds more terms to make the search more specific, while DDG then seems to use them to make the search more general. For technical stuff you really did want the specific! That aside DDG has been slowly but surely getting better over the years.


This is why we need help! :) Really, though, even if we had 100,000 employees, having a great Instant Answer for hyper-niche searches requires esoteric knowledge and expertise that can best be achieved from a community.

Not to mention, it can happen faster. Bitcoin conversions were possible on DuckDuckGo before Google bc our community rallied behind it. The people most passionate about a topic are most likely to create a great answer for it.

I can't imagine what my version of a color-code IA would look like.

https://duckduckgo.com/?q=cmyk%280.12%2C+0%2C+0%2C+0%29&ia=a...

Finally, thanks for the feedback (and for going into specific detail) and for the kind words. It's great to hear that you're seeing noticeable improvement.


I realize I sound extremelh harsh in my reply, but honestly, "where's the patch" is not good enough an answer for a for-profit business. Search is an incredibly competitive market, and you need to figure out a vertical to get complete momentum in and expand from there. Programmers are an incredibly easy audience to target because "we" understand each other, but asking people to contribute to developing your core product is not a sustainable way to survive in a market like this.

If, however, you do have another realistic plan for world domination, and this is just an easy way to respond to the developer community, I completely understand. :)


> asking people to contribute to developing your core product is not a sustainable way to survive in a market like this.

Prove it. Seriously.


Sure, give me the funding.


Well, as another datum, my search for an awk solution gave me exactly what I needed with your new feature (TFA). I did that before I saw this thread or had heard anything about the feature.


Thanks! As the community grows, I run into more and more IAs that I didn't know were live. This one really felt supernatural when I was searching for a genuine answer in a moment of confusion: https://duckduckgo.com/?q=12pm+noon+or+midnight%3F&ia=answer


Just a quick suggestion: since Pantone colors are more "mainstream" outside of programming circles, do you think you can integrate that with the color-code IA? (Example usage case: Hey programmer Jim, can you make this part of the interface more like a pantone 537 U? kthx)


That's a good idea. I've filed it as a feature request: https://github.com/duckduckgo/zeroclickinfo-goodies/issues/2... Thanks


What kind of help do you accept? Genuinely interested.


The project and community are "large" relative to most open source projects but "most" open source projects have fewer than 10 contributors. To get to the scale of, say, Mozilla or FreeBSD, it will require community governance, so any help with driving the technologies and/or people/processes forward. If you're an interested contributor, then you are a potential owner in the project. The community is at the wheel here -- we're just paying for gas.


Does DDG allow building things on top of it? Like API access to search queries, for example. I'm very much into building things for fun and DDG is my choice engine (on mobile and desktop).


Yes, there's an API available for many of the instant answers: https://duckduckgo.com/api Not all though, because of syndication restrictions from the original data providers.


Cool, thanks! I'm going to play with it if ya'll dont mind. :)


The pattern is the user adds more terms to make the search more specific, while DDG then seems to use them to make the search more general.

This is the difference between OR and AND, and I'd agree that AND is usually the preferred default. Google used to be AND, which meant fun things like https://en.wikipedia.org/wiki/Googlewhack could exist, but now they're doing something fuzzy which increases the number of results but often not their relevance, especially when searching for very specific things.

What would make DDG really awesome is to support "exact" searching with boolean operators and quoting, i.e. the way search engines used to work... that, and searching for non-letters preferably with some sort of escaping mechanism. I'd probably switch completely to DDG if it had those features.

(Just try searching for ["&&=" operator] or ["||=" operator] to see what I mean... DDG returns no results, and Google gives entirely irrelevant ones.)


It's funny isn't it. Search engines are now better but return less useful results.

As a programmer I know exactly what I'm looking for and I'm telling you that in my search terms. Also, as a programmer I'm not just using the characters a-z, but also $'"#@%?!+ ++ etc. If I use them, but you don't, then you will be returning the wrong results. You don't need ai, fuzzy logic etc, just to tell me which pages contain text which matches my search string. I'd be perfectly happy just crafting a regex in json if it makes things easier for you.


I think there's a separation between how "average users" and "advanced users" use search engines - the former seem to be wanting something that tries to read their mind while trying to make sense of their... unusual queries (just watch the average user search for something if you want to be saddened and annoyed), while the latter understand how they work --- or should work --- and want to use them as "grep the Internet".

As someone I'd consider in the latter group, I don't think search engines like Google have gotten any better with all the times it's second-guessed my queries and decided I was searching for something slightly different and possibly related but not at all what I want.

IMHO search engines shouldn't be anything but "grep the Internet". Leave all the fuzzy vague and unspecific understanding to the personal assistants, AI chatbots, "natural langauge search engines", and such.


You approach with first using DDG then !g is my way too. But I rarely need to use it, and when I do, I find that Google tends to serve roughly the same pages. It's annoying when DDG skips words like you say, but then I just add + in front of the word. I actually find DDG to be much better at technical/programming queries.


This is very much my pattern, too. I start w/ DDG, and about a third of my searches are adequately handled, but for the rest it's !g. My main problem is the lack of a way to filter results by time - DDG has a sort:date option, but since the dates themselves aren't displayed, I can't tell if I am looking at a result for my bug etc. from 2010 or 2016.


I don't know where this lies on the "credit-to-google-credit-to-ddg" spectrum,

but you can search `!gyear bug` on DDG to get google results from your query within the last year. `!gmonth`, `!gday` also work iirc.

edit: Unfortunately, something like `!dyear` doesn't work for DDG.


I have noticed the same problem when adding several search terms and ddg ignoring the one that is the most important. I have found that if you quote that term it returns better results that do include that term.

For your particular example if you search for 'usb type c "resistor"' you get (what I assume to be) reasonable results: https://duckduckgo.com/?q=usb+type+c+"resistor"

Ideally duckduckgo should recognize which of the search terms are defining, but until that happens quoting should help you out.


I think there are lots of ways to search for technical documentation, and I find DDG great to use when I'm looking for language documentation.

I use these features very frequently

    !javadoc SomeJDKClass

    !npm some-npm-module

    !ruby some-stdlib-package
Amongst others. There's always the extremely useful "!so" if you want to skip google and go straight to the source you were going to click on anyway.


But google search is way better than stackoverflow search.

And google shows similar but different enough stackoverflow answers, duckduckgo shows only one or sometimes two, many times not the one you're searching for.


I use them for python stuff, but they aren't useful when you are looking for general information such as the example I gave. DDG is also problematic for some error messages again because they start de-emphasizing/discarding some of the terms, giving more general rather than specific results. Both DDG and Google trend towards SO answers anyway - no need to even ask for it!


ddg is my google keyboardist porcelain layer:

    !gview to watch online documents,
    !gyear instead of clicking,
then

    !wayback for archive
etc etc


We would love your help: http://duckduckhack.com/

DuckDuckHack (that link) is our instant answer platform and it is all open source (both the answers themselves and the underlying answer engine). We believe that each programming area (MySQL, Perl, React, etc.) can be best served by a group of Instant Answers, and only developers with expertise in those areas can craft the best experiences for that set of Instant Answers.

As a small team, we therefore need help in our goal of making DuckDuckGo the best search engine for developers.


Yes, you too can work for DuckDuckGo for free. It's open source, but only useful on their platform. Their search engine uses Yahoo ads. You don't get a cut of the ad revenue when a query uses your add-on. So they can monetize your work, but you can't.

I admire DuckDuckGo for being able to survive at all. But they're a for-profit company that asks people to donate things to them. That's just wrong. If you want donations, you have to be a non-profit or a cooperative. (One problem we have today is that few people are members of an organization in which their vote matters and management really serves at the pleasure of the members. Today, "membership" means "customer".)

TechShop does this. TechShop is a for-profit company, not a member-owned hacker space. But they ask for donations anyway.[1] This annoys many regular TechShop members, many of whom are familiar with starting or running a business. Especially when they fail to open a location after collecting money, as they did in LA.

[1] http://www.techshop.ws/ts_los_angeles.html

"People like you helping people like us help themselves."


It is not only useful on our platform. The entire instant answer engine is open source as well, and could be incorporated in any program. Additionally, much of our Instant Answers are freely accessible via our API: https://duckduckgo.com/api. These could be and are incorporated in other programs. We are looking for ways to expand access and make them more useful, and would appreciate any suggestions.

That said, there are many for-profit companies that create and maintain open source projects that are primarily used for them. While that may mean that many people aren't interested in developing for them, it doesn't mean everyone isn't. There are some people who want to improve their own search results. There are some people who just want to help a private alternative in search.

There are others who would like exposure on our search engine pages (for their APIs or via developer attribution). In fact, as we get a decent amount of traffic now, that exposure has real monetary value. We place Instant Answers above ads and links, and so the sources that are used for Instant Answers are monetarily benefiting through their inclusion in the ecosystem. In any case, there are many valid reasons why someone may want to develop on DuckDuckHack.


Aren't you working for Hacker News for free right now? If nobody posted comments here, nobody would know what Y Combinator is. And high-profile HN contributors aren't getting a share of profits YC makes from their startups :)


How much money is Hacker News pulling in for pg etc? Is that why my adblocker stays working overtime here? Who is investing what round of capital in it? Who is planning to acquire it to get dang his 6% of options before the market tanks again?

Hacker News is closer to Animats non-profit concept than a for-profit business asking for donations. Hence, it's worth contributing free time to. ;)


Clearly helping DDG with Instant Answers is not something you are interested in. I think as long as people are willing to do something without being deceived or tricked, then I don't see what's "wrong" about it. Maybe you feel that it is not a good way to build a relationship with users, but DDG is certainly not forcing or tricking anyone into helping them.


This, along with !bang syntax and respect for privacy is what makes DDG my favourite search engine.

I really love typing "Maxwell's equations !w" or similar if I know I want the Wikipedia page for it.

Although the search results aren't always perfect (I still use Google occasionally, especially for non-English queries) these features are truly killer.

Learned some !bang shortcuts and it saves me time every single day. The cheatsheets are good too and having StackOverflow answers pop up at the top is also a great way to quickly get the right info.


If you want the Wikipedia page, why don't you go to Wikipedia and search there?


Because going to Wikipedia, waiting for it to load and then searching is a two-step process, while writing a query with a !w is only one step.


Why not simply use quicksearch in Chrome/FF? Instead of having to go through ddg, I simply directly search wikipedia via `wp foo` or youtube via `y bar`.


Because it won't work in every browser and making shortcuts the same across Firefox and Chrome is a hassle, plus you can never get up to thousands of shortcuts that DDG has.

Sometimes, I'm just experimenting. I had no idea that DDG had a Flickr bang because I never had the need to use Flickr before, but I just added !f to my query and I got the results I was looking for.


I use both, but the '!bang' syntax is more convenient when you simply want to repeat a search using a different search engine, or want to use an engine you don't have a quicksearch for (you could of course add them, but sometimes it's just not worth the trouble for the few times you need it).


DDG is my new-tab page, so that helps. Plus, if the wiki page is lacking, I can just go back and do a normal search or a Google search or a Stack Overflow search just by changing a couple characters at the end.


I'm using DuckDuckGo as a primary search engine. Unfortunately for complex queries, search results are less relevant than google.

Also Instant search is great when I'm searching for an API method or something really specific.

But form time to time I'm looking for an epiphany search: something focus on programming, close enough to get some inspirations in order to refine my search query a few times : then I find the perfect query.

My feeling is google enable this kind of exploration/iterative searching : not DDG :-(

Saying that I truly want to stick to DDG... and Instant search is not the feature that I need.

So a "dream feature" would be to search only a subset of your index : between 9.AM until 7P.M I only want answers from tech blogs, stackoverflow, stack exhange etc... A kind of "search profile". Is it possible ?


A list of checkboxes in which categories should be searched "programming" with subcats "programming - java" would be nice. This selection should then automatically include and priorise sites like github, stackoverflow, ....

And users should save this selections to own search preference list which they can switch (one click when you are at work)


I try DDG every now and then but the results for non-English searches are pretty bad. Since my daily searches tend to be very mixed language maybe 70-80% English that's unfortunately very inconvenient.

Makes me a sad panda because they have some pretty !awesome things going for them.


This is the way to hold on to more technical users. I've tried ddg, but switched back to Google because the results were not good enough for my technical needs. If they are able to lock on this focus group, they'll have a strong user base, and a very loyal one.

Ultimately I want more, and better competition, it's always good for the final user.


DuckDuckGo crossed 10M daily direct queries threshold last June and has been growing albeit at a slower rate.

http://apps.axibase.com/chartlab/e8635882/11/


DuckDuckGo user here, while I love their system and philosophy, the search functionality and reliability isn't as grand as Google.


For someone with fast network, I don't mind with one more click. It's about same to click on "show more". But well, no harmful at all.

I expected the cheatsheet also linking to useful help page, then it'd be super cool!

also, if i type in 'mysql data types', it won't show anything. https://duckduckgo.com/?q=mysql+data+types


FWIW the example of MySQL data types in the OP is the result of searching for "MySQL cheatsheet"


I don't get why other search engines (not just DDG, even Bing) don't introduce useful features Google has withdrawn. The Google search is getting better but as users we really are losing control of the results, I feel. I would loce to see the return of:

1. a good blog search 2. a good forum/discussion search

Google apparently don't find them much useful.


I wish DuckDuckGo would change their name and branding. I can't take anything they do seriously.


They've made a ton of improvements since the last time I tried them - I'm using them permanently now to get away from Google and it's great. Would recommend giving it a try.

My only 2 complaints are:

1) I make a search and want to see news (or whatever) but they don't show the news link - they only display it based on some algorithm that is wrong all the time.

2) No maps - Google is still the leader here. Would be great to see some sort of integration between duckduckgo and openstreetmap


For 1 -- try adding "news" to the query. That should almost always trigger our News Instant Answer

For 2 -- We actually have maps powered by openstreetmap: https://duckduckgo.com/?q=20+paoli+pike+paoli&ia=maps


Also check out the directions feature we recently integrated to maps so you can hop to another service if you like :)

https://duck.co/blog/post/291/directions


I like their branding. Really like it. More personal, less of a corporate feel. I hope they don't change a thing.


If you don't use any services with ridiculous names, you must be interneting like it's 1999.


More like 1995. Yahoo! Amazon. Google. AltaVista. HotWired. Dogpile. Excite.


Everybody was Yahoo! even then-- still ridiculous. And if you called customer service, somebody yodeled it in your ear. They still might for all I know.


What, the name DuckDuckGo is entirely unlike those serious names Google, Yahoo, and Bing?


To be honest, after years of hearing it, Google kind of sounds serious to me now.


Did DuckDuckGo just broken "SearchCode.com" ?

https://searchcode.com/

"Bad Request (400)"


It's fantastic to see such a useful post. I recently had to fill out a form and spent an enormous amount of time trying to find an appropriate Maybe you would be interested in an online service with a ton of Form templates (tax, real estate, legal, business, insurance forms, etc..) I used it to fill out http://pdf.ac/77C1Lh.


The immediate issue I see with Programming IA is that it doesn't apparently address changes in coding syntax and support as programming languages evolve. PL's often evolve so much that, in my experience of just trying to get a leg up on, say, python, I've had to sort through changing features between Python 2.7 and Python 3 to such an extent that it can be genuinely frustrating at times.


I have a side project that I use to solve this problem. It creates your own reference that is downloaded and searchable locally for instant results. https://www.cof8.com


It is amazing! I searched for "get unmerged branches git" today in DDG and I am amazed it directly gave me the answer.


HackerNews hug of death?


I'd like more API's related to search please


The demo/blog page can use some animated gif(s).


> Oops! Something has gone horribly wrong!

Not terribly helpful.


it's back now




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: