gleitz/howdoi

 gleitz / howdoi

gleitz / howdoi

instant coding answers via the command line http://blog.gleitzman.com/post/433301…

howdoi53485348535053505352535253545354535653565358535853605360536253625364536453665366536853685370537053725372537453742017-05-132017-05-142017-05-152017-05-162017-05-172017-05-182017-05-192017-05-202017-05-212017-05-222017-05-232017-05-242017-05-252017-05-262017-05-27howdoi53488.34650851448199.565737722017-05-13535038.1554674948185.0729463092017-05-14535167.964426475177.8265506042017-05-15535397.7733854553163.3337591942017-05-165353127.582344436163.3337591942017-05-175354157.391303416156.0873634892017-05-185358187.200262396127.1017806682017-05-195359217.009221376119.8553849632017-05-205360246.818180357112.6089892582017-05-215361276.627139337105.3625935532017-05-225366306.43609831769.13061502712017-05-235367336.24505729861.88421932192017-05-245369366.05401627847.39142791162017-05-255372395.86297525825.65224079622017-05-265375425.6719342383.913053680782017-05-27star

 README

howdoi

http://imgs.xkcd.com/comics/tar.png

instant coding answers via the command line

https://secure.travis-ci.org/gleitz/howdoi.png?branch=master

Are you a hack programmer? Do you find yourself constantly Googling for how to do basic programing tasks?

Suppose you want to know how to format a date in bash. Why open your browser and read through blogs (risking major distraction) when you can simply stay in the console and ask howdoi:

$ howdoi format date bash
> DATE=date +%Y-%m-%d

howdoi will answer all sorts of queries:

$ howdoi print stack trace python
> import traceback
>
> try:
>     1/0
> except:
>     print '>>> traceback <<<'
>     traceback.print_exc()
>     print '>>> end of traceback <<<'
> traceback.print_exc()

$ howdoi convert mp4 to animated gif > video=/path/to/video.avi > outdir=/path/to/output.gif > mplayer "$video" \ > -ao null \ > -ss "00:01:00" \ # starting point > -endpos 10 \ # duration in second > -vo gif89a:fps=13:output=$outdir \ > -vf scale=240:180

$ howdoi create tar archive > tar -cf backup.tar --exclude "www/subf3" www

Installation

pip install howdoi

or

pip install git+https://github.com/gleitz/howdoi.git#egg=howdoi

or

brew install https://raw.github.com/gleitz/howdoi/master/howdoi.rb

or

python setup.py install

Usage

usage: howdoi.py [-h] [-p POS] [-a] [-l] [-c] [-n NUM_ANSWERS] [-C] [-v] QUERY [QUERY ...]

instant coding answers via the command line

positional arguments: QUERY the question to answer

optional arguments: -h, --help show this help message and exit -p POS, --pos POS select answer in specified position (default: 1) -a, --all display the full text of the answer -l, --link display only the answer link -c, --color enable colorized output -n NUM_ANSWERS, --num-answers NUM_ANSWERS number of answers to return -C, --clear-cache clear the cache -v, --version displays the current version of howdoi

Author

Notes

  • Works with Python2 and Python3
  • A standalone Windows executable with the howdoi application is available here.
  • An Alfred Workflow for howdoi can be found at http://blog.gleitzman.com/post/48539944559/howdoi-alfred-even-more-instant-answers.
  • Slack integration available through slack-howdoi.
  • Howdoi uses a cache for faster access to previous questions. Caching functionality can be disabled by setting the HOWDOI_DISABLE_CACHE environment variable. The cache is stored in ~/.cache/howdoi.
  • You can set the HOWDOI_URL environment variable to change the source url for answers (default: stackoverflow.com). Other options include serverfault.com or pt.stackoverflow.com. Here's the full list.
  • Setting the HOWDOI_COLORIZE environment variable will colorize the output by default.
  • Special thanks to Rich Jones (@miserlou) for the idea.

Development

  • Checkout the repo
  • Run python -m howdoi.howdoi QUERY (if you try running python howdoi/howdoi.py you my get ValueError: Attempted relative import in non-package).

Troubleshooting

You might get the following error when installing with Homebrew:

==> python setup.py install

http://peak.telecommunity.com/EasyInstall.html

Please make the appropriate changes for your system and try again.

Fix the error by executing the following command:

sudo chmod -R go+w /Library/Python/2.7/site-packages/

An official lxml for python 3.3+ for windows has not yet been released. You may get an error while installing. Try and install an unofficial binary for lxml from

http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml