This repository has been archived by the owner on Oct 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 236
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Hunter Lang
committed
Feb 14, 2013
1 parent
679073c
commit df96f60
Showing
3 changed files
with
116 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
FAQ | ||
=== | ||
## Can you help me? | ||
|
||
Of course! Here are the easiest ways to contact someone who can help answer your questions: | ||
|
||
* Join us on IRC at [#duckduckgo on Freenode](http://webchat.freenode.net/?channels=duckduckgo). | ||
* Write the [discussion list](https://www.listbox.com/subscribe/?list_id=197814). | ||
* Write us privately at open@duckduckgo.com. | ||
|
||
### What if I don't know Perl? | ||
If you don't know Perl, that's OK! Several <a href="https://github.com/duckduckgo/duckduckgo/Readme.md#overview">plugin types</a> are not in Perl. Also, if you know PHP, Ruby, or Python you should be able to write Goodies in Perl pretty easily using [this awesome cheat sheet](http://hyperpolyglot.org/scripting). | ||
|
||
### Do you have any plugin ideas? | ||
Yup! We maintain [a growing list](http://ideas.duckduckhack.com/). There are also improvement ideas for [Goodies](https://github.com/duckduckgo/zeroclickinfo-goodies/issues), [Spice](https://github.com/duckduckgo/zeroclickinfo-spice/issues), [Fathead](https://github.com/duckduckgo/zeroclickinfo-fathead/issues) and [Longtail](https://github.com/duckduckgo/zeroclickinfo-longtail/issues). | ||
|
||
### How do I note that I've started on something? | ||
In your initial pull request, please note the link on the [idea list](http://ideas.duckduckhack.com/). We'll move it to the "in process" bucket for you. | ||
|
||
### Where I can report plugin bugs? | ||
Submit GitHub issues in the [appropriate repo](http://github.com/duckduckgo). | ||
|
||
### What if there are plugin conflicts? | ||
The ultimate arbiter is the user, and that's the perspective we take. In other words, we ask "what is best for the user experience?" That said, it often makes sense to combine ideas into one, better plugin. | ||
|
||
### Can I do something more complicated? | ||
Maybe. There are a bunch more internal interfaces we haven't exposed yet, and we'd love to hear your ideas to influence that roadmap. | ||
|
||
### What's the roadmap? | ||
Here's what we're working on (in roughly in this order): | ||
|
||
* better testing/file structure for spice plugins. | ||
* better JS interface for spice plugin callback functions. | ||
* better attribution. | ||
* embedding plugins. | ||
* better testing/file structure for fathead plugins. | ||
* more defined structure for longtail plugins. | ||
* better testing for longtail plugins. | ||
|
||
|
||
**Are there other open source projects?** Yes! Check out the repositories in [our GitHub account](https://github.com/duckduckgo). You can email open@duckduckgo.com if you have any questions on those. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
What is this? | ||
=========== | ||
[DuckDuckGo](https://duckduckgo.com/) is a general purpose search engine. We've created a platform called DuckDuckHack that enables developers to write open source plugins on top of the search engine (like [add-ons for Firefox](https://addons.mozilla.org/en-US/firefox/addon/duckduckgo-ssl/?src=search)). DuckDuckGo plugins react to search queries and provide [useful](https://duckduckgo.com/?q=%40duckduckgo) [instant](https://duckduckgo.com/?q=roman+xvi) [answers](https://duckduckgo.com/?q=private+ips) above traditional links. | ||
|
||
DuckDuckHack is very much a work in progress. Some plugin types have better interfaces than others. We will be improving the platform based on [your feedback](https://fiesta.cc/~duckduckhack). | ||
|
||
This site will always have the latest platform information. | ||
|
||
* For new plugins, follow [@duckduckhack](https://twitter.com/duckduckhack) | ||
* For ongoing discussion: [DuckDuckHack list](https://www.listbox.com/subscribe/?list_id=197814) | ||
|
||
|
||
Why should I make plugins? | ||
=== | ||
We hope you will consider making DuckDuckGo plugins to: | ||
|
||
* Improve results in areas you personally search and care about, e.g. [programming documentation](https://duckduckgo.com/?q=perl+split), [gaming](https://duckduckgo.com/?q=roll+3d12+%2B+4) or [entertainment](https://duckduckgo.com/?q=xkcd). | ||
* Increase usage of your own projects, e.g. data and [APIs](https://duckduckgo.com/?q=cost+of+living+nyc+philadelphia). | ||
* Learn something new. | ||
* Attribution [on our site](https://duckduckgo.com/goodies.html) and [Twitter](https://twitter.com/duckduckhack) (working on more). | ||
* See your code live on a [growing](https://duckduckgo.com/traffic.html) search engine! | ||
|
||
Overview | ||
==== | ||
There are currently four types of DuckDuckGo plugins: | ||
|
||
### Goodies — calculations and cheat sheets. | ||
|
||
* Examples: [reverse](https://duckduckgo.com/?q=reverse+test), [private ips](https://duckduckgo.com/?q=private+ip), [dice](https://duckduckgo.com/?q=throw+5+dice), [roman](https://duckduckgo.com/?q=roman+cvi), [passphrase](https://duckduckgo.com/?q=passphrase+4+words), [etc.](https://github.com/duckduckgo/zeroclickinfo-goodies/tree/master/lib/DDG/Goodie) | ||
* Status: v1! | ||
* Language: Perl | ||
* Involves: processing the search query. | ||
|
||
### Spice — external API calls. | ||
|
||
* Examples: [xkcd](https://duckduckgo.com/?q=xkcd), [alternative to](https://duckduckgo.com/?q=alternative+to+picasa), [twitter](https://duckduckgo.com/?q=%40duckduckgo), [wordnik](https://duckduckgo.com/?q=random+word+3-5), [expatistan](https://duckduckgo.com/?q=cost+of+living+nyc+philadelphia), [etc.](https://github.com/duckduckgo/zeroclickinfo-spice/tree/master/lib/DDG/Spice) | ||
* Status: v1 release candidate | ||
* Language: JavaScript | ||
* Involves: processing data from APIs. | ||
|
||
### Fathead — keyword databases. | ||
|
||
* Examples: [git](https://duckduckgo.com/?q=git+branch), [perl](https://duckduckgo.com/?q=perl+split), [final fantasy](http://duckduckgo.com/?q=gippal), [emoticons](http://duckduckgo.com/?q=%28%3E_%3C%29), [http](http://duckduckgo.com/?q=http+304), [etc.](https://github.com/duckduckgo/zeroclickinfo-fathead) | ||
* Status: alpha | ||
* Languages: Perl, Node, Ruby, Python (maybe others) | ||
* Involves: generating information about specific queries. | ||
|
||
### Longtail — full-text data. | ||
|
||
* Examples: [wikipedia](https://duckduckgo.com/?q=snow+albedo), [lyrics](https://duckduckgo.com/?q=what%27s+my+age+again+lyrics), [stack overflow](https://duckduckgo.com/?q=nginx+apache), [etc.](https://github.com/duckduckgo/zeroclickinfo-longtail) | ||
* Status: alpha | ||
* Languages: Perl, Node, Ruby, Python (maybe others) | ||
* Involves: formatting data sets to answer general queries. | ||
|
||
|
||
Getting Started | ||
=== | ||
|
||
**Step 1.** Decide what you want to work on. If you don't have any ideas, [start here](http://ideas.duckduckhack.com/). | ||
|
||
**Step 2.** Figure out your plugin type (see Plugin Types above). If the right type is not obvious, please <a href="FAQ.md">ask us</a>. Sometimes multiple plugin types could work, and we can help you figure out which one would work best. | ||
|
||
**Step 3.** Fork the right repository ([GitHub instructions](http://help.github.com/fork-a-repo/)): | ||
|
||
* [Goodies](https://github.com/duckduckgo/zeroclickinfo-goodies) (Perl functions) | ||
* [Spice](https://github.com/duckduckgo/zeroclickinfo-spice) (JavaScript functions) | ||
* [Fathead](https://github.com/duckduckgo/zeroclickinfo-fathead) (Keyword data) | ||
* [Longtail](https://github.com/duckduckgo/zeroclickinfo-longtail) (Full-text data) | ||
|
||
**Step 4.** Now it's choose-your-own-adventure time! | ||
|
||
* For **Goodies** or **Spice**, proceed to the [Basic tutorial](https://github.com/duckduckgo/zeroclickinfo-goodies) in the Goodies repository. | ||
|
||
* For **Fathead**, check out the Readme in the [fathead repository](https://github.com/duckduckgo/zeroclickinfo-fathead). | ||
* For **Longtail**, check out the Readme in the [longtail repository](https://github.com/duckduckgo/zeroclickinfo-longtail). |