Answer Set Programming, specifically via the Potassco tools: http://potassco.sourceforge.net/ Combines the solver goodness of modern SAT and CSP solvers with the modeling-language richness of classic Prolog.
Ask HN: What are the best technologies you have worked with in 2013?
41–46 of 46 posts
Re: Ask HN: What are the best technologies you have worked with in 2013?
#42Neo4J. Graph database is awesome, it'll change how you think about data back to how you should think about data in many cases.
Re: Ask HN: What are the best technologies you have worked with in 2013?
#43Redis. I got back into web programming this year and looked over all the NoSQL databases and it was the only one that really stood out to me. I've even read a bit of the source code and it's all very well done and nice to use.
I definitely would concur, and would add that we're using it as a queuing/messaging bus, and we like it way better than the *MQ options out there. Far more comfortable to work with, way easier to administrate, and plenty performant for our needs.
Re: Ask HN: What are the best technologies you have worked with in 2013?
#44Answer Set Programming, specifically via the Potassco tools: http://potassco.sourceforge.net/ Combines the solver goodness of modern SAT and CSP solvers with the modeling-language richness of classic Prolog.
what are you using this for? how did you get started?
The longer-term goal is something CAD-like, where you get immediate feedback on design changes, analogous to how architectural CAD systems will highlight things like "lacking structural support" or "violates building code". With games simple versions could be "unreachable areas", "item never needed", etc. More involved versions could be generation of basically the kind of log data you would get from playtesting, only instead of empirical log data, it's analytically generated logs of possible playthroughs exhibiting requested properties: http://www.kmjn.org/notes/analytical_metrics.html
Many of the above can also be done with software-verification systems, which in some cases might be a better choice for efficiency reasons. However, the stuff coming out of the AI community is a lot more flexible as a modeling language, feels less like writing a fixed specification. It's also designed to be editable, e.g. you can add or remove game mechanics without re-formalizing the whole domain (a property John McCarthy calls "elaboration tolerance"), due to being based on a nonmonotonic logic. I was also already familiar with Prolog, and ASP's syntax is heavily modeled on Prolog's, even though they work entirely differently under the hood.
As far as getting started with it, the Potassco people have a pretty good book: http://potassco.sourceforge.net/book.html
As a much shorter way in, a colleague of mine wrote a tutorial on using ASP for generating game maps that are guaranteed to have certain properties: http://eis-blog.ucsc.edu/2011/10/map-generation-speedrun/
Re: Ask HN: What are the best technologies you have worked with in 2013?
#45Earlier quoted context omitted.
what are you using this for? how did you get started?
I'm using it for modeling videogame prototypes in logic, and then deriving properties of them, aimed at providing richer design support: http://www.kmjn.org/publications/Playtesting_AIIDE09-abstrac... The longer-term goal is something CAD-like, where you get immediate feedback on design changes, analogous to how architectural CAD systems will highlight things like "lacking structural support" or "violates building co…