Prismatic Blog

blog.getprismatic.com · Company blog · on HN since 2012

Engineering and product posts from Prismatic, a news recommendation startup, covering Clojure, ClojureScript, Om, and machine learning for feeds.

What HN saysCommenters call Prismatic a favorite startup and praise its talks and its story-clustering post as an interesting piece of applied machine learning.
40HN people shared it
18linked it in comments
37stories submitted
1.8Kstory points
11 years agolast shared
2012people per year2026

Most-shared posts

  1. 1
    Prismatic's "Graph" at Strange Loop
    4 people · 106 points · first shared 2012 · 45 comments on HN
  2. 2
  3. 3
    Software Engineering at Prismatic
    3 people · 87 points · first shared 2012 · 18 comments on HN
  4. 4
    Linear Feeds Perform Better Than Grids
    3 people · 44 points · first shared 2014 · 5 comments on HN
  5. 5
  6. 6
    Graph: Abstractions for Structured Computation
    2 people · 143 points · first shared 2013 · 48 comments on HN
  7. 7
    Clustering related stories
    2 people · 84 points · first shared 2012 · 28 comments on HN
  8. 8
    Schema 0.2.0: back with Clojure(Script) data coercion
    2 people · 34 points · first shared 2014 · 6 comments on HN
  9. 9
  10. 10
    Prismatic Integrates Google Reader
    2 people · 17 points · first shared 2012 · 9 comments on HN
  11. 11
  12. 12
    Prismatics graph at strange loop
    2 people · first shared 2015
  13. 13
  14. 14
  15. 15
    Graph: Faster Abstractions for Structured Computation
    1 people · 101 points · first shared 2013 · 29 comments on HN

What HN people wrote when they linked it

InternetGiant · 2014-11-06
That sounds perfect. It is probably best to make the default view a list. http://blog.getprismatic.com/list-beats-grid-linear-feeds-perform-two-…
ericlavigne · 2013-04-16
He's probably chosen to focus on his company's blog instead. http://blog.getprismatic.com/
DanielRibeiro · 2012-07-05
Prismatic is one of my favourite startups this moment. Bradford's talk on Clojure West was amazing (you can watch it online here[1]). Their blog bost on Clustering Related Stories[2] was one of the most interesting applied ML posts I've read in a while. Trivia 1: Bradford Cross was also one of the founders[3] of Flightcaster (YC S09). Trivia 2: One of his other Flightcaster co-founders (Jason Freedman) is the founder of 42Floors (YC W12). [1] http://www.infoq.com/presentations/Why-Prismatic-Goes-Faster-With-Cloj… [2] http://blog.getprismatic.com/blog/2012/4/17/clustering-related-stories… [3] http://www.crunchbase.com/company/flightcaster
lkrubner · 2014-01-19
Most of the complaints in this article boil down to "macros are too powerful." I think this is the key part of the argument: "A smart programmer is not necessarily an empathetic language designer; they are occupations that require different skillsets. Giving any programmer on your team the ability to arbitrarily extend the compiler can lead to a bevy of strange syntax and hard-to-debug idiosyncrasies." There are at least 2 counter-arguments to this: 1.) in the simplest case, just restrict the use of macros. A team can easily adapt the rule that only the most experienced engineer on the team is allowed to write or approve macros. (And in my experience, the need for macros is fairly rare. I think my ratio is something like 100 or 200 normal functions for every macro that I write.) 2.) macros allow all kinds of interesting type checking, and data structure validation, and therefore they make it surprisingly easy to validate data and types as your data and/or vars get passed around your system. Consider all of these very interesting tools you can use in the world of Clojure: Prismatic Schema which allows validation that a data structure matches a schema of (possibly nested) types: https://github.com/prismatic/schema and this now offers coercion, which makes this fantastic for importing JSON from other sub-systems or outside vendors: http://blog.getprismatic.com/blog/2014/1/4/schema-020-back-with-clojur… (I assume you could easily validate before…
wirrbel · 2014-01-19
Finally some comment explaining a specific problem involving macros. First of all Clojure has a problem with Stack traces, other lisps are much nicer in that respect (but do not have to face the JVM). Anyway, macros can be difficult to debug, I am sure you have heard and used of the tools that usually exist in lisps, macroexpand etc. Nevertheless macros are Transformations of the AST and thus not as easily traceable as function calls. Nevertheless, when working with ClojureScript on a web-app, I grew really fond of the possibilities macros offer, possibilities that are hardly possible with JavaScript (HTML templating within ClojureScript code, etc.). http://blog.getprismatic.com/blog/2013/1/22/the-magic-of-macros-lighti… I wrote some macros to help with HTML5 canvas contexts and these made my code a lot more reliable and readable. The problem with keeping languages less powerful is, that you often end up with something like Java: Surely quite understandable when you look at a few lines of code, but in the end you need a whole lot of complicated patterns and best-practices, now you get hit by a boomerang at the back of your head. Take away message: Macros should not be used on every occassion, but they are really helpful in central places.
riwsky · 2015-08-09
No. It solves the problem of having to reason about data dependencies between functions at scale, typically in the service of doing the minimum amount of work required to get a certain result. As "Steve Wampler" points out in the comments, it's a bit like Inversion of Control/ Dependency injection, except for transient data between functions as opposed to services, connection pools, etc. Other systems that solve similar problems, whose explanations might make more sense to you: Prismatic's Graph (http://blog.getprismatic.com/prismatics-graph-at-strange-loop/), Jane Street's Incremental (https://blogs.janestreet.com/introducing-incremental/)—and, though it doesn't nicely cover IO—the general concept of laziness in programming languages (https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf).
yogthos · 2015-04-07
I've been using it in production for a number of applications for about 6 months now and haven't seen any performance issues. Prismatic http://getprismatic.com/ and CircleCI https://circleci.com/ both use ClojureScript for their front-ends. CircleCI open sourced their front-end here https://github.com/circleci/frontend/tree/master/src-cljs/frontend as you can see it's a decent size app, and Prismatic have blogged about Om and performance here http://blog.getprismatic.com/om-sweet-om-high-functional-frontend-engi… In general, there should be very little overhead compared to regular JavaScript once the advanced compilation option is used.
davegolland · 2015-02-05
Interesting! We over at Prismatic released our interest tagging API just yesterday ( http://blog.getprismatic.com/interest-graph-api/ ). Seems like there's a lot of opening up APIs going around.
lambdadmitry · 2015-01-08
Looks like graph [1] can be helpful here, too. [1]: http://blog.getprismatic.com/prismatics-graph-at-strange-loop/
w01fe · 2013-05-02
Short answer: because Graphs are data, it's easy to do tons of things with them that are difficult to do with code. In principle tooling may eventually bridge the gap, but for now it's hard to take a function and automatically monitor it's sub-functions, or run up to a particular intermediate result, or substitute one step for another in a test, etc. Our previous blog post gives some more detailed examples: http://blog.getprismatic.com/blog/2012/10/1/prismatics-graph-at-strang…
aria · 2013-05-01
Definitely not the same thing. Take a look at our earlier graph post. http://blog.getprismatic.com/blog/2013/2/1/graph-abstractions-for-stru…
scott_s · 2013-02-07
When reading the background on Graph from October (http://blog.getprismatic.com/blog/2012/10/1/prismatics-graph-at-strang… I came across this: Of course, this idea is not new; for example, it is the basis of graph computation frameworks like Pregel, Dryad, and Storm, and existing libraries for system composition such as react. I wanted to point out that the programming model behind Dryad and Storm represent computations as graphs, but that the programming model behind Pregel is for computations on graphs. It's a subtle difference in words, but an enormous difference in what you actually do.
rcb · 2012-08-05
http://blog.getprismatic.com/blog/2012/4/5/software-engineering-at-pri… "While we make heavy use of the core of Clojure, we don't use its concurrency primitives (atoms, refs, STM, etc.) because a function like pmap doesn't have enough fine grained control for our needs."
jamii · 2013-11-28
I'm just going to copy-and-paste this old comment: When evaluating language tradeoffs the scala community values power more and the clojure community values simplicity more. Scala wants to provide you with the most powerful language possible. Clojure wants to make it easy for you to mold your own language. Scala language tooling works at compile-time and analyses the language statically. Clojure language tooling connects to a running environment and uses introspection. Scala has much better static checking and clojure has much better introspection. While both languages have a repl, the clojure community puts much more emphasis on live, interactive programming. Clojures syntactic extension mechanisms are much simpler, being based on sexps. Scalas are powerful (eg can access the lexical environment) but much more heavy-weight. Clojure has run-time eval. This makes it possible to do eg domain-specific jit (eg compiling DSLs -> clojure code -> java bytecode on the fly). Scala has a run-time interpreter which I haven't used but is reputed to be slow. I haven't yet explored non-jvm backends for scala but I suspect that clojure will eventually dominate on that front for two reasons: 1) when clojure-in-clojure is finished porting clojure to a new platform will be far easier than scala and 2) clojure was designed from the beginning to be a parasitic language and delegates many features to the underlying platform. Scala breaks backwards compatibility much more often than…
pudquick · 2013-03-14
For Google Reader refugees coming here hoping for their salvation, some advance warning: Prismatic is not a straightforward RSS reader. It's more similar in concept to Pandora - you tell it what content you're interested in, it tries to generate a content feed you might find similarly interesting. This does not mean it's a poor source for information, quite the contrary - it's a very useful information discovery tool. However, it will not show you every post (unread or otherwise) from RSS feeds of your choosing. It's just not that kind of tool. Here's an (older) article on NYTimes regarding it: http://bits.blogs.nytimes.com/2012/04/03/prismatic-hopes-to-offer-a-ne… This new entry page on their site seems to be an extension of their Google Reader integration they added last June, automating the import of your current RSS feeds as 'seed' interests to generate your Prismatic feed: http://blog.getprismatic.com/blog/2012/6/1/prismatic-integrates-google…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close