

Xp - agile programming tools in Coffeescript - reddittor
https://github.com/Marak/xp

======
keyist
For the love of Kernighan & Ritchie, please do not promote this as "a
convenience library aimed towards non-expert users." The only way beginners
are going to learn is experimenting with the command line, not having their
hands held with a tiny subset of what's available.

And the positioning -- what's agile about knowing your public ip or uploading
images to imgur? Is this a belated April Fool's day joke I'm not getting?

Ok, now that I'm done venting, here's the *nix equivalents for all but the
pair command (will edit in. EDIT: added. also did s/python2/python):

    
    
        # base64 is already a command, supports -d
    
        function imgur_up() {
          curl -F key=yourkeyhere -F "image=@$1" http://api.imgur.com/2/upload
        }   
            
        function public_ip() {
          curl -sL myip.dk | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
        }   
    
        function sloc() {
          sed '/^$/d' $1 | wc -l
        }
    
        # no args clears users
        # with args, assigns usernames
        function gpair() {
          if [ -z "$1" ]; then
            echo "Resetting to default user"
            git config --unset-all user.name
          else
            git config user.name "$(echo $@)"
          fi
          echo "User is now: $(git config user.name)"
        }
    
        function tab_to_space() {
          sed 's/\t/  /g' $1
        }   
    
        function space_to_tab() {
          sed 's/  /\t/g' $1
        }   
    
        function url_decode() {
          echo "$1" | python -c 'import sys,urllib;print urllib.unquote(sys.stdin.read().strip())' 
        }   
    
        function url_encode() {
          echo "$1" | python -c 'import sys,urllib;print urllib.quote(sys.stdin.read().strip())'
        }   
    
        function web_serve() {
          python -m SimpleHTTPServer
        }
    

EDIT: Brought to my attention: <http://news.ycombinator.com/item?id=1448309>
=\

~~~
jesusabdullah
"The only way beginners are going to learn is experimenting with the command
line, not having their hands held with a a tiny subset of what's available."

    
    
        function public_ip() {
          curl -sL myip.dk | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
        }
    

Do you _seriously_ think that people should have to type that text mess for
the sake of "learning?" In fact, except for the sed and base64 commands, I'd
say none of these are anywhere near trivial.

------
jesusabdullah
Truth be told, if anyone actually gets butthurt because xp duplicates
functionality found elsewhere, then they're just being silly. People duplicate
functionality all the time. In a lot of cases, we just call it "competition."

So, here's a question: I've noticed that the nodejitsu guys usually use
Cloudhead's node-static for static file serving. On the other hand, I usually
use Connect's staticProvider. Why do they use node-static over staticProvider?
Also, can node-static be used as Connect middleware? Given that
fileServer.serve seems to take "req" and "resp" arguments it would seem so,
but I also see it being used with the stock http interface in all the
examples.

~~~
reddittor
node-static can be used as a "middleware". Here's an example of it being used
in Stack:
[https://github.com/Marak/bugger/blob/master/lib/stack/static...](https://github.com/Marak/bugger/blob/master/lib/stack/static.stack)

