Hacker News new | past | comments | ask | show | jobs | submit | pufuwozu's comments login

The article has nothing to do with Haskell, other than it's what I use. Why should I have to justify that when I want to talk about architecture diagrams?

Would the same expectation be in place of my examples were in JavaScript? I doubt it.


It's your article, you don't have to justify anything.

That said, it still would've been nice to hear if Haskell has bought you anything that other languages don't do.

Would I have asked the same question for a JS article? Maybe I wouldn't have asked - I'm a bit more familiar with JS than I'm with Haskell - but a "and here's why I picked those tools" section would still have been interesting. I like hearing how people think about solving problems.

The fate of writing in public: people will always ask for more info on the parts that they're interested in.


Oh are you intimately familiar with Atlassian's systems?

Marketplace is Atlassian Marketplace, a real website, REST API and bunch of frontend components. If it's not part of an architecture, what is it?

I did simplify Commerce, the system is Atlassian Commerce Cloud Platform. I apologise that I simplified the name for an example, which has confused you.


I've used it a bunch. It's pretty good! I think the Java API could use more types and less mutation but it works well.


I don't often show architecture diagrams to non technical people BUT I also definitely don't show most technical people this Haskell code. I also don't show them the PlantUML.

I show them the png image.


Atlassian Marketplace's architecture diagrams change constantly. Altassian replaces a core system, we have to integrate with a new one, we rewrite or replace a system.

Did you read the part about generating diagrams from different things, e.g. service descriptors, service proxies, tests?


I didn't mention it, but I do write architecture diagrams which have input.

    data Version = Current | Future

    generate :: Version -> Diagram
Implementation uses a few if/else expressions. Really simple.

The final points of the post was that we should be able to generate architecture diagrams from other code. Parsing a service descriptor, generating them from tests, etc. You DO need a programming language.


Fair point, and an interesting distinction, I think. Diagramming from code vs. diagramming with code...


Hey everyone, I'm the creator!

Sorry for the problems - I was hotlinking to the awesome http://rawgit.com/ website during development and forgot to remove it before posting it on Twitter.

The website should be fixed in just a few seconds. Thanks for trying it out!


I worked on Precog. Here's my explanation:

It's an analytics platform for big data. Basically, you upload lots of JSON, use the custom language (http://quirrel-lang.org/) for analytical queries and the platform will handle efficient storage and querying of your data.

There are also has extras like a library for charting and reporting query responses using JavaScript and an IDE for writing Quirrel and uploading data.


Thanks for the explanation. What do you actually upload the JSON into - is it a proprietary NoSQL technology, something built on top of Akka, a wrapper around HDFS or something else?


How does this compare to rethinkdb (sharding, map-reduce, indexes, queries and joins on JSON data)?


columnar storage, compression etc


Interesting, so precog breaks JSON objects into columns dot-named by their path. I wonder how rethink does it, internally?


How is this different/better than using something like Elastic Search? Does it handle real time upload/searching or do you have to bulk upload, process the data and then run your searches?


No processing necessary. Just upload JSON.

The Quirrel language is much more high level than the API for ElasticSearch. It comes with things like machine learning (e.g. clustering and linear regression):

http://precog.com/developers/how-tos/machine-learning/

Even without libraries like machine learning, you can write somewhat readable queries which do some impressive things:

http://precog.com/developers/how-tos/common-analytics/


Great, now I'm gonna be up for another three hours! Thanks for your feedback.


TDD increases the chance that more people will mock

Absolutely false. Try TDD in Haskell. Know how many mocking libraries there are in Haskell? None. Totally unnecessary.


I should have considered Haskell. :) In other languages, it is true, so it isn't absolutely false.


Author here. I use Haskell for a lot of webapps. Here's a webapp that talks to GitHub:

http://licentious.herokuapp.com/

https://github.com/pufuwozu/licentious

Here's a programming language competition that I organise:

http://www.pltgames.com/

The web framework that I use is Yesod. Over the years I've used CakePHP, Django, Rails, Lift and Play! - Yesod is definitely the BEST framework I've used:

http://www.yesodweb.com/


Thanks - this is helpful.


I have to agree with this. Currently prototyping a project in Clojure/Compojure but I'm moving the project to Yesod for the production system.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: