I really, really like Kapeli's Dash for this if you're on OSX. I've encountered maybe two or three situations where a standard or custom Docset didn't exist for what I cared about in the last 4+ years, and I am a pretty eclectic developer.
Another option is using dash which lets you download not just StackExchange sites content for offline use (and is easily searchable, etc) but also programming language documentation, API documentation, etc.
That environment is just fine. Here's my partial setup what I'd recommend:
With virtualenvwrapper, you'll be able to make as many working environments as you like. This is especially nice when you're messing around with a number of different ideas.
Full disclosure here: I haven't used any other doc tool for OS X, so I can't make any other recommendation for offline doc viewing. It's just what I use and have never had a reason to look elsewhere.
Dash is a pretty nice tool. What I really like about it is the option to download entire categories of stackoverflow for offline reading. Granted the downloads can be quite large, but it's been worth it.
You've already got this one going. I personally use SublimeText, as well.
Nope. Never heard of it until now. And I went back and looked at my copy of vimtutor to see if it was there, and I didn't see it. That is good to know about.
Honestly, though, at this point, I'm trying to make it a habit of simply doing "h:{{WhatDDGShowedMe}}" inside of Vim. Dash on macOS also has a copy of the Vim docs and I have been searching in there more often. It feels more natural (for lack of a better term) to me than :h. I know I need to get better at using :h, and I think these steps are helping.
Thanks for posting this. Some of these tools were new to me.
I'd also recommend Dash (https://kapeli.com/dash) which is a "API Documentation Browser and Code Snippet Manager" and also supports numerous editors including Sublime Text (although I use it through Atom).
I've been using Dash + Alfred integration for docs.
It's OS X only, but I get any doc I want within a few keystrokes even if I'm not in my repl. Pretty sweet.
Also, sorry, but I'm never a fan of clickbait titles. I just get an awful emotional reaction to them since I assume someone is trying to manipulate me.
I've been using Dash for OS X as an offline API browser and been very happy with it. https://kapeli.com/dash
EDIT: forgot to mention DashDoc which connects Sublime Text to Dash so you can look things up by control-h.
if you have a mac I would suggest this application:
It allows you to download documentation for a bunch of languages and frameworks. I use it personally even when I'm online because it manages a bunch of documentation I constantly have to look up. It also lets you save and manage things like code snippets. I also have a shortcut for it so that I can open it up super easily. It also organizes documentation making it easy to find a certain section of info you're looking for it. Not sure if there's options similar for other platforms if you don't have a mac though.
Apparently it's available for iOS too if you have an iPhone/iPad although seems a bit more inconvenient to me.
Thanks for mentioning that. Honestly, I didn't even check the Dash docset earlier. I just checked here and looks like they don't yet support Nim. I started off on this docs-from-emacs hunt as I wasn't finding an efficient way to access Nim docs while coding.
Once they add Nim doc support too, I'll definitely check out <code>counsel- dash</code> (Yes, I am from that other camp :)).
Exactly this - by the time you've learned all of it a new standard will be coming out.
Also, why memorize it instead of setting up a tool like Dash and making it a few keystrokes away?
It's true that this tool doesn't generate a search index; it uses existing indices provided by the proprietary Dash for OS X tool. However, users also have the ability to generate such indices themselves, as documented here, so at least there isn't a complete danger of indices becoming extinct. :)
Regarding Occam's Razor, isn't the phenomenon here the act of looking up Haskell API documentation offline? Surely all of the tools under discussion do exactly that, and the simplest of them (by SLOC count) is this one, wouldn't you agree?
How have I misrepresented Hayoo and Hoogle's offline capabilities? Are you treating the fact that I never mentioned those capabilities as misrepresentation? If so, that was neither intended nor implied because I also didn't claim that Hayoo and Hoogle lacked offline capabilities.
Finally, how am I to know what a stranger on the Internet finds to be meaningful? :) From my view, I certainly did answer your question of "How is this different/better than [x]" meaningfully, for I pointed out some differences, as you requested, that simultaneously reflected my opinion of why it's "better than [x]".
> Edit: For now, I've gone back and added the following disclaimer atop my answer, to appease your discontent: >> Here are some differences. Decide for yourself whether they qualify as being better or worse than Hayoo and Hoogle.
YMMV and thanks for your feedback.
> Edit: Here are some differences. Decide for yourself whether they qualify as being better or worse than Hayoo and Hoogle.
For those who like this, and are on OS X (unfortunately not available on Windows or Linux) check out Dash. The only reason I use Dash over an online solution is the DashDoc Sublime Text plugin where you can just highlight what you want documentation for and it will open Dash to that specific point in the documentation.
If you do any sort of coding/terminal work on a regular basis I highly recommend https://kapeli.com/dash it's a documentation/code snippet application. Code snippets are like global aliases. I can type "CreateOSXUSBImage" and it will be replaced with the string above. Same with any kind of text. You type the alias, dash removes the alias and retypes the entire "snippet". Mainly used for coding, but it's really handy for those hard to remember shell commands.
Yeah ScalaDoc is awful. Under the search box there is a list of letters; click the P
and scroll for it.
If you're on a Mac you should buy a copy of Dash which lets you do a proper search across Scala, Java and other docsets.
If you're on a Mac, there's a really useful little utility called Dash that you can set to pop up and show you the docs for any class in any language. It's great, I use it all the time.
I used to use Dash before i started to remember enough not to have to read the docs so often: https://kapeli.com/dash
​
It was _great_ .- there's a windows equivalent I think
Experienced Rustaceans - what is your working relationship and/or workflow with regards to Rust/crate documentation? In my experience in other ecosystems, I've become extremely reliant on Kapeli's Dash app, which only offers documentation for the stdlib and many of the links are iffy/broken after the newer edition of TRPL landed on the site.
I'm vaguely aware of cargo doc --open
but haven't really acclimated to it yet, since I have relatively sparse opportunities to write Rust - I'm full-time Elixir at my day job and on most side projects right now. Is there an even-better option I should be aware of?
I use (and recommend) Dash as a documentation management tool. It is cross-language (so I've got docs for all my work-related Scala libraries installed too), lets you install any docs from Hackage (or a bunch of other places too), lets you very easily search for pretty much anything.
For Haskell, it basically pulls down a local copy of the Hackage-hosted Haddocks for the libraries you requested. That means that good old Haddock hyperlinked sources are just one search and then one click away.
The Swift Programming Language book reads more like a description of language semantics, but if you’re a seasoned developer already you can’t do anything better than just trying to write Swift and googling when things don’t add up. Maybe google a Swift syntax reference to get you up to speed about how to spell the concepts.
I wish we had namespaces! I think we’re gonna need them once we implement C++ interoperability if that ever happens. For now, the Swift module model is essentially determined by the build system, independent from folder structure. The unit of namespacing is the module, and we don’t require you to module-qualify declarations that you import.
On macOS, I really like Dash
Most definitely! I don’t know how I could prove that concretely, my understanding is that it’s more of a development practice vs something codified in the language or the library community.
>That sounds like a good system, is easily searchable?
YEs, very much so. You can put pages into groups and groups into libraries all while tagging the pages for search.
Dash: https://kapeli.com/dash (osx only). It is a documentation library as well as a snippet gallery. You can add your snippets, and bind Dash to your IDE. With a quick key you can load in whatever snippet you want. Further, using another quick key will allow you to search highlighted syntax in your IDE from the Dash API documentation for any language. Full documentation just a keystroke away. No google search needed.
>"css architecture"
You search by tags. So you would just create a css architecture tag and add it to each relevant article, Then searching by "css architecture" will bring up all the pages with that tag. You can set your tags to whatever you want.
> the first on python
Learning the basics of the language before you start uni is a good idea--it gives you some breathing room to focus on the higher-level concepts the first week. If you're the a person like me who likes the straightforwardness of working through a book, http://openbookproject.net/thinkcs/python/english3e/ is free and great. I taught myself the basics of Python with it ^(well, an earlier edition. This was in 2008) over two weeks in a cabin up in the woods of Maine followed by a couple days a week over the following two months. https://kapeli.com/dash is good for if you want to download stackoverflow offline and try the same sort of thing.
> You can use a command like n to step to next line in the editor window, like a debugger in an IDE.
Right, I understand and I give it to you that integrated debugging is definitely nice.
> Well, but it cannot use the current theme of your editor.
True, but I'm ok with it. I don't see it as a deal breaker.
> you can search for text output in your REPL just like any other buffer
I use it within tmux, so I get most of the vi functionality and this includes scrolling, selecting, searching, etc.
> you can use company-mode for code completion in REPL,
Tab completion is ever-present.
> you can use helm/ivy for documentation searching
You mean documentation searching like Dash? I just use Dash for it.
Again, I'm not trying to argue that one approach is wrong or something like that. All I'm saying is that you don't miss any functionality with either editor. Emacs definitely has some niceties but it isn't a deal-breaker to me. The only reason I am slowly trying to make the switch is for multiple frame support (and dired
a little bit).
Oui (parce que ma première distro, c'était une Yggdrasil), et non: j'utilise mon Macbook Pro (2009, ram passée de 4 à 8Go, HDD remplacé par un hybride puis un SSD) pour du dev loin de chez moi, et pouvoir faire des tests d'intégration - légalement - d'une appli sur les navigateurs Mac, Linux et Windows, c'est vraiment pratique. Si je passe à Linux, je vais avoir un petit soucis pour mes validations sous MacOSX.
Ma seule motivation pour changer: le support Hypervisor qui ne fonctionne pas sur les Core2Duo. Et pas de support Sierra, donc il falloir que ça se fasse à un moment ou à un autre.
J'ai déjà commencé la marche inexorable vers un retour à un PC: j'ai une VM Debian qui commence à ressembler à quelque-chose d'approchant, reste l'histoire de la virtualisation de MacOSX sur du matériel non Apple. Me reste aussi à trouver un remplaçant à Dash (https://kapeli.com/dash), et à Sourcetree (SmartGit a l'air bien, ça va faire cadeau de noël).
Donc pour moi, soit ils reviennent à un truc où je peux monter RAM et HDD, soit ce sera ultra-portable avec 16Go et un i7.
La vraie question, c'est surtout de savoir combien de temps les développeurs MacOS et IOS vont continuer à cracher au bassinet avec un marché qui risque de diminuer.
It does have both of those things. With plugins you can add/improve them to your liking. https://github.com/Shougo/neocomplete.vim is a pretty popular completion plugin (but the vim built-in completion works just fine more most things).
For library/api documentations you're better off using something like http://devdocs.io/ or https://kapeli.com/dash
vim+tmux isn't a replacement for IDE's, but it's subjectively better for some things and objectively worse for other things like native android app development where you're really going to miss hot swapping and a proper debugger.
Even then though the vim+tmux workflow in general is useful for indirectly related things. Imho.
/2cents
I'm considering paying for Dash just for lodash docs. The online docs work well, but having them a hotkey away (and no longer taking up a permanent tab in Chrome) certainly would be nice.
I use Dash. Some of the most popular libs (like Requests or Qt) have been packaged for it, and creating new ones is not terribly difficult -- it's basically just creating a small sqlite db to go with your html docs (I did it myself for the Python 2.2.1 docs, which are useful when dealing with some Jython stuff I work with). The most popular IDEs and editors all have plugins for it, I use it with Pycharm.
However, Dash is OSX only.
Dash API docs is great but you'll need a Mac.
Otherwise curl, wget, etc the documentation. Some docs are available for download as html. Your browser can save a web archive, as well.
I'd use DuckDuckGo and some sensible queries to stackoverflow or the like to aggregate a mini google around your knowledge gaps. Archive those pages.
So I'd query SO for pandas and sort in a way that looked fruitful. Then fetch a few hundred results. Do the same for other modules. Hit Google and fetch first few hundred results there. You'll have maybe a few GB of data if you aren't sure what to grab. That's a small price, no?
Javascript's standard library is pretty small and abysmal, especially if you reduce it to just the functions that work in all browsers.
For example, Number.isInteger(42)
doesn't work in IE or Safari. Not even in the latest versions. I forgot about this recently and flat out broke my website for half my users until the following morning.
The hard part about Javascript's standard library is not memorizing but, but staying up to date with what's available in what browser.
This is one of the reasons why libraries like http://lodash.com/docs exist. You can drop Lodash into every Javascript project, use Lodash methods over the native ones, and avoid the situation where you accidentally write code with compatibility issues. Check it out.
I recommend speeding up your documentation lookup workflow. I recommend Dash if you're on OSX. For example, if I want to remember how the Array::every
method works in Javascript and Lodash, I hit Shift-Ctrl-D
to open Dash, and type "every" and it shows me the docs: https://dl.dropboxusercontent.com/spa/quq37nq1583x0lf/rfh0-f8j.png
Being able to quickly navigate documentation on demand is more valuable than memorizing things because with quick access to docs, you incidentally memorize things just from the exposure. :)
Sublime Text + iTerm on OS X. Terminal split into two panes vertically, left one for running the script in development, right one with Julia REPL for trying things out. I use this same workflow for both local and remote files that I am working on.
I have the Julia documentation at my fingertips with Dash, and I have a custom keyboard map that has all of the greek letters bound to alt+something so I can easily name variables ρ, α, Σ, etc.
For debugging, I have a lot of info
statements in the section of code I am working on and a few @assert
s scattered around the place, and make heavy use of type assertions.
And save yourself from the Reddit timesink. Install Dash.app or whatever the equivalent is on not-Apple. Don't be a cheapass either, pay for the fucking tool and learn to use it. It's honestly my number #1 favorite non-directly-in-the-code tool.
I would personally recommend RubyMine as an OS X IDE for Ruby (assuming your shop doesn't have a preferred one). It does cost money, but I find it's worth it.
On more general OS X stuff, I'd say get some customization in. There's a massive amount of config that doesn't show up in System Preferences. Two examples I personally always run with:
defaults write com.apple.finder CreateDesktop -bool false;killall Finder Will stop any icons from showing up on your desktop, even if they're in your desktop folder (weird personal preference, I know).
defaults write com.apple.finder AppleShowAllFiles YES;killall Finder
Will always show hidden files (dotfiles) in finder. There are plenty more, just google if there's something about OS X that annoys you.
In terminal try to get used to the interop with the rest of the OS. You can use open .
to open the current folder in finder, and in general open $whatever
to open files with their default apps (or just open apps). You can also drag files to the command line to get their path.
Dash is fucking great for documentation on OS X, I use it all the time.
Finally I would recommend you either install Flashlight to add tons of functionality to Spotlight, or just go all the way and get Alfred.
Edit: Oh, and I absolutely second everything /u/Sichais mentioned, they're all great. But especially Homebrew, get on that immediately (and then use it to install whatever Unixy things you like).
I haven't used DevDocs (so forgive me if I'm missing something big), but it's interface reminds me of Dash. I just checked and it has a LaTeX docset, so that might be another option for you to check out if you're unable to find someone to build a DevDocs integration.
yes, as mentioned in another comment, see Dash (Mac) / Zeal (Linux) / Velocity (Windows). You'll have to download the Lisp docset.
I haven’t used TextExpander but I’ve been using Dash’s snippet feature. Although there’s a paid license, you don’t need to get it in order to use snippets. (In fact, most of the features are still available after the free trial ends, it’s just that you have to wait 10 seconds before viewing docsets.)
Other people have brought up Expanso, which is FOSS, so I might try that out.
What OS do the you use? Previously I’ve installed dash and downloaded python, pandas doc sets.
Also I’ve had a cached copy of what I needed from pypi using devpi . This is great if you need to pip install anything. I realise this link is deprecated though the three packages it links to are what you need.
Not free, but https://kapeli.com/dash is a great way to browse Django (and any other) docs - type practically anything and it will jump straight to it, including text search within the page.
Now, if only the DRF documentation was anywhere close to as comprehensive as Django proper. Knowing how edge cases will be handled by DRF is almost as painful as extending Allauth, and that's not something to be said lightly :)
I had no idea duckduckgo indexed the hyperspec and other programming language documentation. I've been looking for a replacement to the dash documentation search tool, but it looks like ddg has most docs I'd need out of the box
I miss Dash. Got Velocity instead, but Dash was better. I also miss a great terminal, zsh and Unix CLI stuff. Got this all inside WSL. Strangely enough, I don't miss Homebrew, Chocolatey sometimes is even better.
Aside from the development stuff, I miss the Photos app. And I found no convenient way to sync iCloud photos from iPhone (provided I may want to edit them sometimes on iPhone and see them modified at my desktop), using Web-based iCloud Photos for now.
Most of software that I use support both Mac and Windows, but sometimes the Windows version is just, uhm, less polished. Even the iTunes app, I never got WiFi sync to work with my phone (I enable it, but it just doesn't work).
I know the PHP syntax pretty well after many years as a full time PHP developer. I still have trouble remembering function names and signatures. The inconsistencies in PHP don't help (i.e. urlencode
and base64_encode
).
I use a good IDE with autocompletion and dash (with both the PHP and Laravel docs) constantly. I put snippets of code I might want to reference later in Github gists. You can use a tool like Dash for that too. Sometimes I use Sublime Text to try and stay sharp :D.
I have done a lot of interviews and it's pretty common for even senior devs to not remember function signatures, so don't worry too much. I don't think anyone expects you to be able to code effectively without autocomplete or documentation.
If you have trouble remembering the syntax and you aren't using an IDE you should be able to install a 'lint' plugin for your editor. You can also run php -l ./path/to/file.php
to check for syntax errors.
One more thing. This program is a fantastic tool to have on your development machine. I find it a lot easier to deal with than reading docs on a website or via the ones they give you for free with Xcode. Dash for MacOS
I would like to read MDN on my mobile phone, but with a dark background and better text formatting.
​
This is the only app I found in the store: https://kapeli.com/dash_ios but has no dark-mode.
Sorry man, currently don't know swift or ios dev. However, I'm looking into flutter and if I end up trying it out I'll def remake it for both platforms :)
Edit: For ios, you can also check out [Dash](https://kapeli.com/dash).
I use Dash (mac only). In addition to being a fantastic documentation manager, it has a snippets manager that links it to several popular IDEs (Sublime, Atom, VSC, etc.)with hot keys for quick snippet recovery.
It was not my intent to turn this into an Emacs vs Gogland thread. It was an honest question.
In a past life I spent full days in IDEA doing Java development, so I do know the quality of Jetbrains products very well. And what they bring in terms of convenience and programmer productivity. I just thought Go was simple enough to not need any of that.
In any case, I downloaded the latest EAP and I am really liking it so far. Go is more like a side project for me at the moment, but I think I will try to stay in Gogland for a longer time and give it a real chance.
I have one annoyance that I would love some feedback on. I make heavy use of https://kapeli.com/dash for documentation lookups. It really hits a UX sweet spot for me. Gogland can also do quick API lookup, with Control-J, but this works in a really frustrating way.
I don't know if this is because other software on my Mac or if this is the expected behaviour. Let me explain:
I'm on something like fmt.Println and I hit Control-J. A tiny window pops up that cnnot display the actual full docs. So I hit Control-J again to get the bigger version, which I have resized previously. I don't care about the small version, it should never show up. (It does correctly remember that I want to see this window large and centered). But then this larger window loses focus! I cannot get rid of it. It looks like it is a floating window. Command-W closes my editor. Escape does nothing. Control-J cycles through different sizes of this window. I have to actually grab the mouse/trackpad and click the close button. This is infuriating :-)
I really want a hot key to look at documentation and quickly dismiss it. Show window, read, hide window.
helm
is an interface that allows one to find a specific 'something' from a list of possible candidates. There's helm
itself, and then there are the many packages that leverage the helm
infrastructure. helm-projectile
is a package in the latter category, as is helm-dash
, which provides quick access to Dash docsets; cf. this GIF, which also gives you a basic idea of the sort of functionality/interface helm
provides.
Yup, Zeal and dasht are powered by the same offline docsets provided by Dash for OS X. In fact, they can share the same docsets, to reduce disk space usage for example, as described here.
Yes, because Dash for OS X provides a "CakePHP" docset for it. However, it's not highlighted as one of the most popular downloads in the list of available docsets .
There's Dash for osx. It's not free, but the great thing about is that it stores documentation offline (less bandwidth usage later on) and it has great integration with Alfred and other tools, for example a query from within editor.
Are you picking up a macbook or a desktop mac?
If you get a macbook, go into the system preferences and give everything a once over. Somewhere in the mouse/input preferences there will be info on the gestures; learn them! They are fantastic. My personal favorite is using three fingers to swipe left or right to switch virtual desktops (spaces). Combine this with putting an app into full-screen mode to give it its own space.
In terms of software, most of what I use is cross-platform, however Quiver is OS X only, and well worth the $10. Dash is also pretty neat, and worth checking out (although I tend to go straight to google... maybe I should try to use this more...)
There is an app called Coda you may or may not like. It's not cheap but I loved it when I was doing lots of freelance work. It's like a frontend IDE kind of.
Sublime Text (3). Give Atom a try too. They are similar. I prefer Sublime.
This app called Dash is really cool: https://kapeli.com/dash
I use Chrome as my main workhorse, and only check my sites in Safari when doing browser testing.
Download Xcode. It comes with an iPhone simulator. You can test your mobile sites on a fake iPhone. It's neat.
Sourcetree is a decent free Git GUI that you may already be familiar with from Windows
VirtualBox.. free virtual machine software! Install a Windows VM for IE testing.
These screenshot keyboard shortcuts: https://support.apple.com/en-us/HT201361
If you are a coder, I highly recommend the combination of this and Dash (https://kapeli.com/dash). Local documentation instantly accessible from anywhere. It is my favorite Alfred use case, although Dash integrates with many editors as well.
/u/MarkusWinand This is awesome! I'll be watching this going forward.
I know it's early days and you are working on core content in the site but it would be tremendously useful if modern-sql eventually integrated with Dash. Dash supports html docsets and even has tools to generate the docsets for you. Just a suggestion.
Thanks for the hard work! Keep it up!
If you're on a Mac and use Alfred there's a plugin for quick searching.
Devdocs also has offline support which is great. An alternative (native app) is Dash
If you press tab after search, the first result is selected, press enter and you're on that page, so it helps to be the first result.
I didn't know about that, but I don't do searches like this often. I use dash a lot and it's integration with Alfred or even inside editors is really awesome. Also chrome's custom search engines are cool too, I added a lot of custom ones, so I can just search mdn [something]
. The bigger problem is that I don't know if the page has what I'm looking for or if I misspelled it.
Sublime is definitely my editor of choice. I'd also recommend Dash as a very worth compliment if you aren't already using it. Integration with Sublime and access to docsets offline is fantastic. Haven't looked back from Dreamweaver. I believe Velocity is the Windows port of Dash.
I've also moved over to Affinity Designers and Affinity Photo. Really dislike the new subscription model of Adobe. While I typically don't have to do a lot of graphic work, both of these have met all the requirements I need for the occasional work. No major qualms yet.
I use 2 tools, one is dash: https://kapeli.com/dash offline documentation reader, you can get all regular ressources regarding web dev here.
everything i find and need to keep for later: http://brettterpstra.com/projects/nvalt/
i dont know the original notational velocity, but this i simply genius: press shortcut - type title - paste text when looking for something you just press shortcut and type, greatest time saver ever
Dash is an awesome documentation browser for OS X. You can download doc sets for different tools and languages for quick reference while you're developing. It also has plugins for different applications - so you could look up the documentation for something right while you're working in Sublime Text for example. Basically it saves you a trip to Google - which is especially important if you're working offline.
Zeal looks to be a similar tool for Linux/Windows.
If you're on OSX, Dash has a Rust docset which includes both the book and the std docs: https://kapeli.com/dash
Not free, but Dash is really great. Has a pretty good search functionality, supports versioned docs, multiple languages/projects, etc.
I actually use Dash as my ruby bible. Yeah, its standard docs, but they're tremendously well written, and having them a keystroke away (hyper-D) is super convenient.
For learning, I went through the Pragmatic Programmers guide (pickaxe) and Agile web apps with rails (again, from Prag. press). I got the e-book versions, but found, once I was well versed in ruby, I didn't need a book quite so much
Get Alfred and combine it with Dash for instant access to documentation, custom code snippets, stack overflow. It's fucking great. Note: Alfred is not necessary but is faster.
You can use Dash to download the documentation for Python, and some of the more popular packages(like web frameworks). The user contributed docs also cover many more libraries. Dash has integration with popular IDEs and editors like Sublime/PyCharm, so looking up documentation should be quick.
If the documentation of a library you plan to use is hosted on Read the Docs(it's fairly popular), you can download a PDF or HTML version of the docs for offline use.
For an IDE, use PyCharm community edition, or Sublime Text with Anaconda.