7 ms·
Show HN: Pumpkin – An open-source HN clone
- fananta 13y agoclickable: https://github.com/fananta/Pumpkin https://github.com/fananta/Pumpkin Feel free to use it for projects like "HN for {blank}".
- kawera 13y agoSimple and to the point. You could use Elasticsearch instead of an object for storage and than get search for free.
- jlas 13y agoHow'd you get upvoted so fast? Sacha Greif's Telescope [1] is probably the best open source HN clone I found, last time I checked. Edit: I liked Telescope because it had a really slick (customizable) UI, persistent storage, and was a breeze to get up and running on Heroku. What are you using node? You don't explain how to run the server at all. Not everyone knows how to use nodejs. Have you considered using a package.json [2] and publishing on npm? Being a little pedantic here but your ReST API needs work, e.g. "/topic/add" is a bad API endpoint. Verbs are to be avoided. You got the POST part right, but you should be POSTing to a resource like "/topics/" or "/topic/", which is a list of topics. Take a look at "RESTful Service Best Practices" [3], it's a quick guide that should get you up to speed. Edit: Downvoted? Really? I Give 3 solid points of constructive feedback here. If you disagree with something here please let me know. [1] http://telesc.pe/ http://telesc.pe/ [2] https://www.npmjs.org/doc/files/package.json.html https://www.npmjs.org/doc/files/package.json.html [3] http://toddfredrich.com/restful-best-practices-v1-1.html http://toddfredrich.com/restful-best-practices-v1-1.html
- nathancahill 13y ago> How'd you get upvoted so fast? Because it's the perfect HN post: "Show HN: An HN clone"
- sharkweek 13y agoI seem to be stuck in some redirect loop...
- sgdesign 13y agoThanks, glad you like Telescope :)
- krapp 13y agoWhy do you feel Telescope is the best?
- stock_toaster 13y ago> Sacha Greif's Telescope is probably the best open source HN clone I found, last time I checked. I find lobste.rs[1] to be pretty nice. Until now I had never heard of Telescope. FWIW, I did not find the Telescope "demo app" example very appealing. [1]: https://github.com/jcs/lobsters https://github.com/jcs/lobsters
- sgdesign 13y agoI know the app needs work, but I'd love to know in more detail which part you didn't find appealing. Is it the design?
- ville 13y agoI can't speak for the GP, but I also tried the demo and I did find the design sleek and appealing. But when I clicked the comments link on the first post on the front page, it took about 20 seconds to see the comments. Also voting for a comment made the page unresponsive for about a second. I don't know if this is because just the demo server, the underlying technology or lack of optimization in the actual app, but this is what made the otherwise cool demo less interesting to me.
- tsm 13y agolobste.rs is lovely as a platform and as a community...but my appreciation for it is somewhat limited by my inability to get an account there. Edit: Thanks for the invitation! I retract the above.
- balladeer 13y agoI might attract a lot of flack here for saying this, but lobstr.es is a lot HN could have been, alas it is yet to get some serious amount of participation.
- e12e 13y agoWell, I think the whole self-selection on who can participate has a lot to do with that. I wonder if might've been enough to simply sell accounts/memberships at this point?
- windsurfer 13y agoForgive my lack of knowledge of ReST, but why is "/topic/add" a bad API endpoint, and why should verbs be avoided? How else would you get the "Add Topic" form?
- bryanh 13y ago`/topic/add` would be a fine URL to return the form HTML, the "RESTful" API would be like `POST /api/topic` where POST implies create and topic implies, well, topic.
- lgas 13y agoOften the best approach is to have e.g. /topics be both the API endpoint and the web endpoint for the collection of topics resource and e.g. /topic/<identifier> be the endpoint for individual topic resources. In both cases the server loads the same data, but if the negotiated content type is text/html then it renders an HTML template with the data and returns a page showing a (probably paginated) topic list along with a form for posting a new topic (possibly hidden and revealed by javascript on a button click, etc). The form would POST to the /topics endpoint which would create the new topic and then return a redirect to the /topic/<identifier>. Another form might also allow replacing existing topics by PUTing to a /topic/<identifier> endpoint. Or via PATCH for use via AJAX. The actual /topic/<identifier> links in both the HTML and JSON views would really be something like /topic/<id> or /topic/<uuid> or /topic/<slug>. Again, if you click on one of the topic links in the HTML view in a browser then when you land on the individual topic link it will also negotiate the text/html content-type and you'll get the topic detail page, etc. If you have pages like "most recent topics" or "trending topics" etc they could be mapped to separate collection resources like /topics/recent, /topics/trending, etc that are just projections of the appropriate subset of the overall collection resource. If the negotiated content-type of any GET request is application/json (or e.g. application/edn) then it returns the API results in the appropriate format. If you follow one of the same links served from the JSON file from your API client, then it will again negotiate application/json and it will get the JSON version the topic detail. The JSON results might be in a format like http://stateless.co/hal_specification.html http://stateless.co/hal_specification.html.
- 13y ago
- d0m 13y agoHere's why I think people down-voted you: >> Edit: Downvoted? Really? I Give 3 solid points of constructive feedback here. If you disagree with something here please let me know. Probably because your tone was extremely aggressive. You think you provided feedback but it feels like you're trying to destroy the project. I'm not saying I thought that, but here's how it can be understood: >> How'd you get upvoted so fast? Sounds like "You're a fucking cheater, you gamed the system" >> What are you using node? You don't explain how to run the server at all. Sounds like "Using node is fucking stupid, and your doc sucks". >> You got the POST part right, but you should be POSTing to a resource like. It sounds like "What you built is crap because you didn't follow the X 'best' way of doing REST queries". ----------------- Maybe it's because english isn't your main language. You could be geniously giving good feedback but it just doesn't *sound like it. Maybe instead of: >> What are you using node? You don't explain how to run the server at all. it could be: Why did you decide to go with Node? By the way, it would be great to have some documentation on how to start the server. Etc.
- michaelmcmillan 13y agoTo me it seems you are reading what you want to read. His criticism was legitimate, there is no reason to waste time nor energy on his "tone-of-writing". If his points are valid then that should be sufficient. Replies like yours contribute nothing.
- deleted 13y ago[deleted]
- d0m 13y agoI was answering his question of why he was getting down-voted, no more no less. >> If his points are valid then that should be sufficient. In theory, yes, in the real world, appearances matter. Being right is only one part of the equation.. if you can't convince the other person then it doesn't really matter whether you're right or not. If you're giving feedback and it sounds like you're demolishing someone, chances are your feedback won't be listened to. It's not the end of the world, obviously, but you're losing your time and the readers too. >> His criticism was legitimate, there is no reason to waste time nor energy on his "tone-of-writing". The irony here is how by not having the right tone his feedback weren't understood correctly, and hence wasted the time and energy of most readers. >> Replies like yours contribute nothing. The irony, again.
- frozenport 13y agoHe got upvoted fast because there are nowdays a lot more people on HN.
- sgdesign 13y agoTo be honest when I land on that GitHub page, I'm not sure what I'm looking at. What does this do? Is there a demo? How do I run it? If you want to get more traction I would suggest making the readme a little more beginner-friendly :)
- ilaksh 13y agoIs there some code that saves the data to disk? I don't see that.
- jbraithwaite 13y agoData is stored in memory..
- ma2rten 13y agoMaybe it should be pointed out that the real thing is open source as well.
- krapp 13y agohttps://github.com/wting/hackernews https://github.com/wting/hackernews ... though obviously the real thing isn't open source, as pg and kogir have made numerous changes they're not releasing and AFAIK they're not taking pull requests on news.ycombinator.com (but they do have a bug tracker @ https://github.com/HackerNews https://github.com/HackerNews) Odd that in all this time no one seems to have forked the original code and iterated on it. Deployed it, sure, but not (say) fixed any of the bugs that annoy people about HN, or made it better.
- jsnell 13y agoIt's a trivially simple program, written in a dead-end language, has a ridiculous architecture, and there appears to be no prospect of changes to the open source version being propagated to the production HN. Doesn't seem particularly odd that nobody has forked the code. If you want to run a site like this, writing a clone seems like the rational choice.
- e12e 13y agoIsn't (part of/some version of) hn already open source?: http://arclanguage.org/install http://arclanguage.org/install https://github.com/wting/hackernews https://github.com/wting/hackernews Is the current hn very different from the arclang forum?