HNHacker News
TopNewBestAskShowJobs

tahu

71 karma · joined July 9, 2010

submissionscomments
tahu··on Show HN: httpinvoke – js HTTP client - easy progress events, binary files, etc.
Sorry about that. Now it's fixed. https://github.com/jakutis/httpinvoke#examples
tahu··on Show HN: httpinvoke – js HTTP client - easy progress events, binary files, etc.
Thank you! Just implemented gzip support and released 1.0.4.
tahu··on Show HN: httpinvoke – js HTTP client - easy progress events, binary files, etc.
Without a doubt Bluebird, When.js, Q, then/promise and others are faster. The implementation in httpinvoke is optimized for code size.

The other reason for current solution is that the specification for creating and resolving promises [1] is not yet published.

Having a Promise object in global scope, as exported by Q, Bluebird and then/promise, is not enough. There is no uniform way to hack into these implementations and use their promises resolver.

But when resolvers-spec is available, httpinvoke will definitely check for already loaded promises library and reuse it.

[1] https://github.com/promises-aplus/resolvers-spec

tahu··on Show HN: httpinvoke – js HTTP client - easy progress events, binary files, etc.
httpinvoke and superagent differences:

* superagent has a "fluent" API, httpinvoke is a plain function, with an options object and with Node.js callbacks and/or promises.

* superagent is not easy to use with binary uploads/downloads

* superagent does not give you an abstraction over progress events

* httpinvoke does not build query strings

* httpinvoke gives you raw multipart/form-data responses, does not parse them

Other aspects are comparable (file size, Node.js and browser support, etc).

tahu··on Show HN: httpinvoke – js HTTP client - easy progress events, binary files, etc.
Hi, thanks for the questions, sorry for the late reply..

httpinvoke fully implements Promises/A+ specification. The spec is very short and easily implementable. The implementation in httpinvoke takes only 568bytes when minified (check it out!).

So the answer is, if you use httpinvoke with a different promise library, it will work, unless the library really is at odds with Promises/A+ specification. Which is unlikely, because all the major promises libraries support it, even if they do not indicate that in their documentation.

httpinvoke only contact with the external promise (which it can only get when onFulfill or onReject returns one) is the .then method here [1].

[1] https://github.com/jakutis/httpinvoke/blob/master/src/common...

tahu··on Show HN: httpinvoke – js HTTP client - easy progress events, binary files, etc.
Existing libraries - like jquery, reqwest and superagent - had no easy support for promises, binary files and progress events, did not support a wide range of browser versions, did not nicely treat HTTP status codes. So I made this.
tahu··on Show HN: forgif.me for I have sinned
It is very hard to scroll the images on ipad given scroll focus implementation the site has - it jumps the focus to the same image or the one after the next.
tahu··on Ask HN: Who is using Go language?
I'm successfully using it in my web usage data mining BSc thesis.
tahu··on Hackful - A Hacker News for Europe
a look at the HTTP headers:

  tahu@laptop:~$ curl -I http://hackful.com/about
  HTTP/1.1 200 OK
  Content-Type: text/html; charset=utf-8
  Connection: keep-alive
  Status: 200
  X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.11
  X-UA-Compatible: IE=Edge,chrome=1
  ETag: "6972d16343b1a4d0f2a49c9a3174e977"
  Cache-Control: max-age=0, private, must-revalidate
  Set-Cookie: _hackful_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWQ5NzYzMThlNDFkOWVhYTI1YzJiZGI0YzNjMjlkOWFhBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMUVRU1gzZkhvcHRockpaWndWY2NRcGk3SElJczBmOEY3TW50YjJRZ0plSTg9BjsARg%3D%3D--572416e3b12cc85dda3675c22d117839535e636d; path=/; HttpOnly
  X-Runtime: 0.017811
  Date: Fri, 03 Feb 2012 16:26:04 GMT
  X-Rack-Cache: miss
  Server: nginx/1.0.10 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
tahu··on What is SOPA? aka The American Government trying to ruin the Internet
Good points.
tahu··on Academic papers are hidden from the public. Here's some direct action.
you can also do direct action by signing a petition at http://epetitions.direct.gov.uk/petitions/16041
tahu··on Facebook blocks Google Chrome extension for exporting friends
There's always various scrapers, like this http://vytautas.jakutis.name/2011/05/27/convert-your-faceboo... by me.
tahu··on Convert your Facebook friend contacts to CSV
The code is updated - now randomizing the order and time in which contacts are polled.
tahu··on Video: Disappearing Car Doors
Nice idea, but it is a failure in safety - imagine a side impact..
tahu··on This Could be Big: Decentralized Web Standard Under Development by W3C
This time there is existing practice - Opera Unite and Tonido.
tahu··on JavaScript and URLs
I agree that JavaScript is breaking the traditional web - linked static HTMLs with some forms in it. But I also believe that one day people will start to forget this bumpy ride. I am thinking of http://nodejs.org/ and http://jsdom.org/ - if the user agent has javascript disabled - the client side javascript code could be executed on the server.
tahu··on A couple neat things about using chemical elements as hostnames
Very good. Now I can safely append

192.168.1.254 bipentquadium bpq

Thanks.

tahu··on A couple neat things about using chemical elements as hostnames
Yes, this is the PERFECT plan.

But how do I name my router at 192.168.1.254?