News for hackers. Stuff that matters.
Re:Long URLs Please by pmjordan on Tuesday December 23, 2008 @11:09AM (#407677)
I can understand the Firefox extension as being something laudable, sure. But an HTTP API? That seems kind of random, given that the URL shorteners work with 30x HTTP responses. I mean, you just need to request the short URL and read out the Location header of the 30x response. It seems... convoluted to go via an additional server.
Re:Long URLs Please by darraghcurran on Tuesday December 23, 2008 @11:49AM (#407746)
Good point - what I've done is allow you to piggyback more than one lookup onto a single request. so the plugin will batch them in groups of 4. does that make sense?
Re:Long URLs Please by pmjordan on Tuesday December 23, 2008 @11:58AM (#407769)
Well, on the server you're still starting N requests based on my batch request. I guess combined with caching that can make sense, yes. Even so, I'd probably want to implement my own [1] when setting up my own web app for reliability/trust reasons, and because of same-origin restrictions on client-side scripting. (XHR does support not following redirects, but it's kind of pointless with same-origin policy)

[1] I did exactly that for http://tweetoftheyear.com/ in clojure:

  (defn lookup-redirect [url]
    (try
      (let
        [response (http-client/url-do url "HEAD" {:follow-redirect false})]
        (when (#{301 302 303 307} (:return-code response))
          (first (get (:header response) "Location"))))
      (catch java.lang.Throwable t nil)))
Re:Long URLs Please by darraghcurran on Tuesday December 23, 2008 @12:03PM (#407772)
I thought so, and I do cache everything nicely in memcache and db.

Also it's hard or maybe even impossible? to reliably fetch arbitrary short url using javascript - exposing it as a simple json api makes this easy.

Re:Long URLs Please by pmjordan on Tuesday December 23, 2008 @12:10PM (#407780)
Yeah, it's only possible on the same hostname as the page you're on, which limits the usefulness and makes the server-side lookup necessary. The JSON solution will only work via a foreign host with a <script> tag as far as I know, which again is something of a trust issue.
Re:Long URLs Please by darraghcurran on Tuesday December 23, 2008 @12:09PM (#407779)
nice - I've been meaning to learn a bit of clojure. I hear your point on wanting to set up your own - and as you've shown it is easy to do.