Live data from Hacker News

Show HN: Hackjob.io – HN job listings done a bit better

hackjobio.herokuapp.com

41–50 of 50 posts

Re: Show HN: Hackjob.io – HN job listings done a bit better

#41
post #7
post #3

I have two minor comments: 1) Linking to the original HN hiring post is helpful, and 2) I'm on a poor internet connection now, and this page took about a minute to load. http://hnhiring.com/ and the original July 2015 thread ( https://news.ycombinator.com/item?id=9812245 ) load in ~5 seconds.

(1) is probably going to make it in at some point! Unfortunately, I need to make an HTTP request for every post (that's how the HN Firebase API works) and that gets pretty expensive on slow connections. :/

Looking at the firebase api docs, I realized how unRESTful, their REST api is. No way to get a list of all stories. You can only get a list of ids and must then query the API with each id to get the content. If you plan on going this route, I def agree you store your results in your own backend db. If you want to stay stateless, look for a better HN job source, e.g., http://hnapp.com/?q=type%3Ajob+|+author%3Awhoishiring. Just one request and you can parse either the json or rss feed.

Re: Show HN: Hackjob.io – HN job listings done a bit better

#43
post #7

Earlier quoted context omitted.

(1) is probably going to make it in at some point! Unfortunately, I need to make an HTTP request for every post (that's how the HN Firebase API works) and that gets pretty expensive on slow connections. :/

> Unfortunately, I need to make an HTTP request for every post (that's how the HN Firebase API works) What's the total size of the jobs data? Would it be possible to grab all the JSON from the API, concatenate it and then self-host it as a single file? I imagine a $5 DO droplet with nginx would suffice for that. It looks like firebase isn't even gzipping the JSON.

Yep certainly possible. It wasn't my aim thought as I wanted some Angular practice with promises :)

Re: Show HN: Hackjob.io – HN job listings done a bit better

#44
post #7
post #3

I have two minor comments: 1) Linking to the original HN hiring post is helpful, and 2) I'm on a poor internet connection now, and this page took about a minute to load. http://hnhiring.com/ and the original July 2015 thread ( https://news.ycombinator.com/item?id=9812245 ) load in ~5 seconds.

(1) is probably going to make it in at some point! Unfortunately, I need to make an HTTP request for every post (that's how the HN Firebase API works) and that gets pretty expensive on slow connections. :/

Firebase dev here, the websocket API would be much faster (less HTTP overhead and connection negotiation) and has the potential for more concurrent requests.

replace lots of these:

  return $http.get('https://hacker-news.firebaseio.com/v0/user/'+name+' + '/.json');
with

  return $q(function(resolve, reject){
    new Firebase('https://hackernews.firebaseio.com/v0/user/').child(name).on('value', function(snap) {
      resolve(snap.val());
    }, /*error handler here too*/)
  })


  https://www.firebase.com/blog/2014-10-07-hacker-news-api-is-firebase.html

  https://docs.angularjs.org/api/ng/service/$q

(yes the HN API design is a little funky though, but you can definitely improve the loading times with websockets)

Re: Show HN: Hackjob.io – HN job listings done a bit better

#45
post #7

Earlier quoted context omitted.

(1) is probably going to make it in at some point! Unfortunately, I need to make an HTTP request for every post (that's how the HN Firebase API works) and that gets pretty expensive on slow connections. :/

Firebase dev here, the websocket API would be much faster (less HTTP overhead and connection negotiation) and has the potential for more concurrent requests. replace lots of these: return $http.get('https://hacker-news.firebaseio.com/v0/user/'+name+' + '/.json'); with return $q(function(resolve, reject){ new Firebase('https://hackernews.firebaseio.com/v0/user/').child(name).on('value', function(snap) { resolve(snap.v…

Hey that IS awesome. I had no idea Firebase had a websocket API. Sweet!

Re: Show HN: Hackjob.io – HN job listings done a bit better

#46
post #15
post #10

I know there's an icon to tell posts apart but there needs to be more done to differentiate posts. I shouldn't have to be so careful

Just pushed an update that should make things easier to differentiate!

Can't be better than that. Awesome

Re: Show HN: Hackjob.io – HN job listings done a bit better

#47
post #15
post #10

I know there's an icon to tell posts apart but there needs to be more done to differentiate posts. I shouldn't have to be so careful

Just pushed an update that should make things easier to differentiate!

Can't be better than that. Awesome

Re: Show HN: Hackjob.io – HN job listings done a bit better

#49
post #45

Earlier quoted context omitted.

Firebase dev here, the websocket API would be much faster (less HTTP overhead and connection negotiation) and has the potential for more concurrent requests. replace lots of these: return $http.get('https://hacker-news.firebaseio.com/v0/user/'+name+' + '/.json'); with return $q(function(resolve, reject){ new Firebase('https://hackernews.firebaseio.com/v0/user/').child(name).on('value', function(snap) { resolve(snap.v…

Hey that IS awesome. I had no idea Firebase had a websocket API. Sweet!

send us a message at https://groups.google.com/forum/#!forum/firebase-talk if you have any problems.

The websocket API is the main selling point of Firebase, but I guess you were not actively looking to use Firebase in a product, rather, it was a necessity from HN API. Good luck! Don't hesitate to contact us.

Post reply on HN