Personally, I would like to say "Build", "Run", "Next Error", "insert line below", "rename function foo to bar", "Reformat file", "Reformat method", etc in my editor. Wouldn't we all benefit by having an editor that had some voice commands?
I hope a blind person will be able to answer you but I can't really imagine how voice command would be more efficient than a simple keyboard shortcut. Admittedly the F keys are not the easiest to access though, I prefer emacs-style chording.
Ok, imagine that you're sitting in front of a tablet without a keyboard. That's an easy use case.
Yes, one can be quite fast if they're sitting with their fingers resting on the keyboard. I wouldn't want to take that away.
However, I'm often sitting back reviewing what I wrote, and I'd certainly like the option of have my computer assist via voice without needing to reach for the keyboard.
Yes, that's a good use case. I've often thought it would be useful if I could do some light work (reading, maybe some form of more active work too), when I am not at my PC or laptop - though wouldn't want to do it all the time, just have the option and use it sometimes.
I'm not blind, but personally I would find voice commands to be quite useful, since I can speak much faster than I can type. Keyboard shortcuts are similarly efficient, but they are somewhat hard to memorize when you only infrequently use them.
Unfortunately, the state-of-the-art in speech recognition is not quite there yet, especially when you want to use arbitrary identifiers like strncmp that can't be found in any pronunciation dictionary.
>personally I would find voice commands to be quite useful, since I can speak much faster than I can type.
Interesting. Wouldn't speech recognition be marginally to somewhat slower in response, than response to keyboard commands, though? More so, considering that a lot of processing has to be done to recognize speech, not to mention the time to receive the audio input via the mic, do analog-to-digital conversion (assuming that is needed, not sure these days), etc.
What's a lot of processing? Speech recognition can be done on a phone. Are you sitting with your hands on your keyboard at all times while programming? Do you need to move the cursor to a variable, function, etc to refactor? You are assuming that we can only say commands that are bound to a key?
"Set breakpoint on line 20" -- You had to reach for the mouse in your world?
>What's a lot of processing? Speech recognition can be done on a phone.
AFAIK speech recognition is non-trivial processing (though not an expert on it at all). Just a few points: I've read somewhat recently that the reason why Google's speech recognition is good is because it does a lot of the processing on their servers, also because it has a huge volume of data to work with (from worldwide users). All I know is that there are various factors at play (even though I'm aware phones are very powerful nowadays). It was an exploratory question, not meant to suggest that it cannot be done or will necessarily be too slow. And I did say "marginally to somewhat", etc.
>Are you sitting with your hands on your keyboard at all times while programming?
Obviously not. As a programmer, I'm well aware that there is a lot of think time involved.
>Do you need to move the cursor to a variable, function, etc to refactor? You are assuming that we can only say commands that are bound to a key?
"Set breakpoint on line 20" -- You had to reach for the mouse in your world?
Nope, no assumptions. It was an open-ended question.
I admit that I'm pretty mouse-adverse but I wouldn't have to use the mouse for any of that. Actually I mostly only use the mouse to browse the web.
But anyway, that's not really important, I agree that good "intelligent" speech recognition would be very useful for uncommon tasks. But building a project, searching and replacing are tasks that are so common that I can't imagine having to reach for the mouse to do them, much less pronounce them out loud.
And imagine the mess if you're coding in an open space and everybody chitchats with their computers...
If you can replace a long variable or function name more quickly than someone can say "rename aLongFunctionName to anotherLongFunctionName then build" then someone didn't implement the voice recognition properly.
Yeah, someone always mentions the noise coding in a group. Someone else usually brings up subvocal speech, or something else, but I'll leave that for you to imagine. We need a few more people to imagine what is possible rather than rehash why something can't be done.
Thanks for pointing it out. It is still in development. The reason i was using CDN was because of bandwidth and reusing the cached JS if the user already has that.
What will be the best way to tackle this? If I put all those under one CDN then I guess the bandwidth problem will be solved but I wont be able to reuse the JS that user might already have. At the end of the day I still have to trust the third party JS.
The general consensus is that you won't (meaningfully) be able to "reuse the JS that a user might already have" anyway. The idea of well-know-domain.com/well-known-framework-well-known-version-0-1.js being cashed is interesting -- but a) it doesn't appear to work to well in practice (I seem to recall 30% hit rate for the "best case" of jquery-latest on some big CDN) b) It's not that much data anyway.
Lets say you have 500kb of compressed js. If you have 2 million unique visitors, that'll just eat 1TB of bandwidth -- and if you don't screw up your own cache headers -- that'll be that -- it'll be cached.
Yep you can. There was this http://peercdn.com/ that did that and I remember a post on HN where it served the page from other clients but used web sockets instead.
Author here. My intent was never to say that this feature is something unique to Elixir. The intent was to introduce pattern matching to people new to it with a solid example. It just happened that my choice of language was Elixir and I'm aware that it wouldn't have been possible in Elixir if Erlang didn't had it in the first place :).
I've seen the same video before i knew what a monad was, it helped me in understanding the use case of monad and ultimately monad. Monad is just a generalization of that particular use case. Some resources that helped me in understanding monads
So its been not just one resource but multiple resource before it hit me that it was such a simple concept. So i would suggest to go over them (in order) and also look at other resources (mentioned by others).
https://m.youtube.com/watch?v=iWXebEeGwn0