a thoughtful web.
Good ideas and conversation. No ads, no tracking.   Login or Take a Tour!
comment by forwardslash
forwardslash  ·  3810 days ago  ·  link  ·    ·  parent  ·  post: "Unknown or expired link." following me wherever I go!

It's actually just a part of the code that we forked from, in particular something called an fnid. Hubski's codebase is forked from hacker new's code and we've basically just hacked on top of that. Expiring links was their solution to having user-specific actions such as submitting posts. When they started out they didn't have many actions that needed fnids but since we did we just added them as necessary. If you look at HN's links now you'll see that for a lot of things they've changed to use simple endpoints with query strings. We're going to be moving in that direction soon, but it'll just take time. Everyone on the hubski team has full-time jobs and family so it probably won't come as quick as we'd like, but it's definitely something we're working on.





user-inactivated  ·  3810 days ago  ·  link  ·  

These are pretty much just like fnords.

user-inactivated  ·  3810 days ago  ·  link  ·  

Hail Eris!

user-inactivated  ·  3810 days ago  ·  link  ·  

Град Exapno Mapcase! All Hail Discordia!

user-inactivated  ·  3810 days ago  ·  link  ·  

Interesting. I've seen hacker news before but I've never seen their code. In fact, I don't see it now anywhere either. Is it publicly available or was Hubski a somewhat official fork (IE: it was given to you guys)?

I'm curious what language this is in. I did some searching and possibly a variant on LISP? I can't imagine writing something like this in LISP... performance must be a huge issue.

I've only experienced LISP in AI research before, and the logic development in LISP seems nice for rapid logic development, but once you get into using it for practical purposes everyone I know of switches to C/C++ immediately.

I've never seen it used for anything else, what are your experiences using it for development on web? I assume you're using a database of some sort, and I've just looked up some of the syntax for Common SQL. It just looks messy to me...

forwardslash  ·  3810 days ago  ·  link  ·  

HN, and thus Hubski, is built with the Arc Lisp dialect of lisp and the source for it (or an old source, and it hasn't been updated in years) can be found in the news.arc file in the languages' source code.

Everyone we do server side is arc at the moment, and we don't have a proper database just flat files (which contain s-expressions) which are loaded into a hashmaps in memory. It's relatively easy to get the app up and running, and once you understand the language relatively easy to add features. It doesn't like to interact with other code, however, mostly because there hasn't been much code written to make it interact with other code. We've gotten around this in a few places by using things like varnish, haproxy, nginx, etc and just interacting with our arc web app through HTTP.

For instance, when you logout by default the arc doesn't drop the user value from your cookie which indicates who you are. This makes it harder to detect whether your logged in or not and messes up caching strategies. We got around this by removing the user value on logout in haproxy.

My general feeling of lisp after having used it for over a year now in production is that it is perfectly possible to do whatever you want and it is pleasant to do so, but there is a lot of value in a health library and tool ecosystem which is lost when using an obscure dialect. If I had all the time in the world I could do pretty much anything other sites do, but you get hung up over things like not having libraries to easily interact with databases. We could write them ourselves, but that takes a lot of time we could put elsewhere.