juxt.pro - Tech Radar









Search Preview

JUXT: Radar

juxt.pro
☰ Services Home Delivery Training Compliance
.pro > juxt.pro

SEO audit: Content analysis

Language Error! No language localisation is found.
Title JUXT: Radar
Text / HTML ratio 55 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud Clojure it’s We’ve we’ve trial projects library data adopt choice put radar great alternative tool building Ring SQL Om HTTP
Keywords consistency
Keyword Content Title Description Headings
Clojure 20
it’s 14
We’ve 14
we’ve 14
trial 13
projects 13
Headings
H1 H2 H3 H4 H5 H6
1 10 0 0 0 0
Images We found 3 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
Clojure 20 1.00 %
it’s 14 0.70 %
We’ve 14 0.70 %
we’ve 14 0.70 %
trial 13 0.65 %
projects 13 0.65 %
library 12 0.60 %
data 11 0.55 %
adopt 11 0.55 %
choice 9 0.45 %
put 9 0.45 %
radar 9 0.45 %
great 9 0.45 %
alternative 8 0.40 %
tool 8 0.40 %
building 8 0.40 %
Ring 8 0.40 %
SQL 7 0.35 %
Om 7 0.35 %
HTTP 7 0.35 %

SEO Keywords (Two Word)

Keyword Occurrence Density
is a 24 1.20 %
such as 12 0.60 %
at trial 10 0.50 %
with the 8 0.40 %
of the 8 0.40 %
that we 8 0.40 %
in the 8 0.40 %
used it 8 0.40 %
is an 8 0.40 %
and is 8 0.40 %
it at 7 0.35 %
haven’t used 7 0.35 %
could be 6 0.30 %
you to 6 0.30 %
We’ve put 5 0.25 %
for this 5 0.25 %
to the 5 0.25 %
allows you 5 0.25 %
we’ve used 5 0.25 %
you need 5 0.25 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
allows you to 5 0.25 % No
and is a 4 0.20 % No
put it at 4 0.20 % No
haven’t used it 4 0.20 % No
We haven’t used 4 0.20 % No
you need to 3 0.15 % No
it at trial 3 0.15 % No
we haven’t used 3 0.15 % No
it could be 3 0.15 % No
a lot of 3 0.15 % No
library that we 3 0.15 % No
is also a 3 0.15 % No
a library that 2 0.10 % No
be on here 2 0.10 % No
the dominant HTTP 2 0.10 % No
is the dominant 2 0.10 % No
well battle tested 2 0.10 % No
that allows you 2 0.10 % No
used it yet 2 0.10 % No
and for this 2 0.10 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
We haven’t used it 4 0.20 % No
put it at trial 3 0.15 % No
you to build up 2 0.10 % No
put this at trial 2 0.10 % No
We’ve put this at 2 0.10 % No
Team Careers Community Contact 2 0.10 % No
we’ve put it at 2 0.10 % No
that we haven’t used 2 0.10 % No
a library that we 2 0.10 % No
It may be a 2 0.10 % No
and for this reason 2 0.10 % No
allows you to build 2 0.10 % No
with Swagger and Schema 2 0.10 % No
haven’t used it yet 2 0.10 % No
We’ve put it at 2 0.10 % No
that allows you to 2 0.10 % No
projects such as building 2 0.10 % No
takes a different approach 2 0.10 % No
to do much more 1 0.05 % No
much more in templates 1 0.05 % No

Internal links in - juxt.pro

Home
JUXT: Delivering Innovation
Delivery
JUXT: How We Deliver
Training
JUXT: JUXT Training Courses
Compliance
JUXT: Compliance
Blog
JUXT: The JUXT Blog
Why JUXT?
JUXT: Why JUXT?
Why Clojure?
JUXT: Why Clojure?
Clojure In
JUXT: Clojure In - Reference Clojure case studies from across Europe
Tech Radar
JUXT: Radar
Library
JUXT: Delivering Innovation
edge
The Edge Manual
tick
tick
yada
The yada manual
About Us
JUXT: About Us
Clients
JUXT: Clients
Team
JUXT: JUXTers
Careers
JUXT: Join JUXT
Community
JUXT: Community
Contact
JUXT: Contact
OnTheMarket.com and JUXT
JUXT: Blog: OnTheMarket.com and JUXT
Trading Dashboards for Tier-One Banking
JUXT: Blog: Trading Dashboards for Tier-One Banking
Building a Bitemporal Data-Store
JUXT: Blog: Building a Bitemporal Data-Store
Deploying libraries with deps.edn
JUXT: Blog: Deploying libraries with deps.edn
Testable Clojurescript apps
JUXT: Blog: Testable Clojurescript apps
Just a techie?
JUXT: Blog: Just a techie?
Login
JUXT:

Juxt.pro Spined HTML


JUXT: Radar ☰ Services Home Delivery Training Compliance Resources Blog Why JUXT? Why Clojure? Clojure In Tech Radar Library Tech crux whet tick yadaWell-nighAbout Us Clients Team Careers Community Contact Radar The 2016 JUXT Clojure Technology Radar Loading radar.. Welcome to our Clojure tech radar. This is an opinionated view collated from our joint wits of towers projects with Clojure. There will be many libraries that should be on here but aren’t, and partly this is lanugo to the superstitious Clojure ecosystem, and how we take some of it for granted. Whilst we have uncontrived wits of the vast majority of items on the radar, some will be on here that we haven’t used. We will explicity mention this where towardly in the write up. No radar can overly be perfect, but we hope that this radar will be useful for those deploying Clojure in real-world projects, and we welcome your feedback and suggestions. Our Radar is derived from the well known ThoughtWorks technology radar. Rings We use the same rings as ThoughtWorks do: hold, assess, trial and adopt. Hold ways that we are holding off using this technology for now for some given reason. It may be a library that we consider simply too raw and new, or it could be a tool that we had issues with in the past and that there are valid alternatives. Assess ways that we think this libary is worth checking out, but we don’t consider to be an will-less choice. It may be a new library that we haven’t used but wish to, or one that you should definitely weigh up the pros and cons for. Trial ways go try this library. It may still be new or there may be cases where it’s not entirely suitable, but if it in anyway fits your problem case, then you should requite it strong consideration.Preferthis is a library that we have used in wrongness and is a solid choice. Quadrants We’ve divided the radar up into four quadrants. ClojureScript and Tools should be self explanatory. Infrastructure refers to a group of libraries that have a upper architectural footprint on your application. The smaller libraries, we’ve simply put into libraries. Infrastucture We’ve used Stuart Sierra’s Component in wrongness on many projects to manage the lifecycles of state in our programs (such as database connections). This fits in with the Reloaded workflow pattern, so we don’t have to alimony wavy the REPL during development. Although this was a upper profile large step for Clojure architectures, there is snooping from some that the introduction of protocols can proliferate, and that the layers of wresting and indirection are increased. Mount is a new volitional that uses namespaces and vars as oppose to protocols and records. We haven’t used it yet and so it’s at trial, here’s an interesting discussion on it. Ring is the dominant HTTP web using framework, providing an out of the box HTTP server, middleware and more. Ring has been wrestle tested on many large projects. Http-Kit is an volitional that follows the Ring spec and is thus uniform as a waif in replacement, but is built from the ground up to support "highly concurrent a/synchronous" web applications. We’ve put this at trial owing to our lack of usage of the server component (the vendee lib is great). Aleph is flipside Ring uniform contender, built on top of the event streaming library Manifold. We’ve put Aleph as adopt. Compojure-API is a power-up for the plain old Compojure over Ring stack. It integrates tightly with Swagger and Schema, giving you a Swagger UI for nearly free, and Schema coercions (i.e. converting to and from dates and UUIDs inside of JSON payloads). Swagger is a trappy present you can requite to your third-party server consumers, describing your APIs. We’re fans of Pedestal, a web framework bringing the concept of interceptors that can be chained together and executed asynchronously. Frankie says why interceptors are preferable over the conventional tideway of using Ring middleware and handler functions; "data beats function composition". We’re using Pedestal on many of our projects, and so we view it as adopt. We finger that Liberator is moreover a valid option when you need good HTTP compliance, but for worldwide use-cases of towers simple websites and simple REST services, it could be over-doing it. Liberator isn’t trivial with its state machine, and using Pedestal or Compojure/Ring returning explicit HTTP status codes may be easier. New emerging web service libraries include yada and Kekkonen. yada, like Liberator nails the HTTP spec in a resource-oriented fashion, using institute over explicit configuration. We’re rating it as assess, considering it’s still in beta. Kekkonen is moreover at alpha-stage and aims to hold similar ground in the API definition space, with integration with Swagger and Schema etc. We haven’t used it, but we are keeping an eye on it. Buddy is a security framework we’ve had success with. It’s at trial considering it’s relatively new for a security library, and all the features you need may not once exist. We’d recommend giving it a go though. It has many components including a crypto API, wangle tenancy for ring middleware, and hallmark of JWT (json web tokens). Frankie gives an example usage of the latter. Storm is a 'distributed realime computation system' we’ve used, but it involves a lot of devops, and it’s non-trivial to get running in the REPL. Onyx is a increasingly modern, Clojure-centric volitional that we would use instead on our next project, when we have the ramified requirements of spreading a pipeline of computational work over a cluster of nodes. core.async would be our first nomination when you don’t need to spread work over parallel machines or processes, but you still want to the separate work up, and to potentially utilise a number of cores. Riemann is a highly concurrent realtime event processing platform we’ve used on previous projects, to integrate with 3rd party services such as Logstash, Pagerduty, and to send emails upon incident. We’ve placed it at assess. It’s a unconfined and powerful platform, but a lot of what we’ve used Riemann for you can do with the third parties now directly, and libraries such as metrics-clojure help us to do event team directly in the application. Avout is an would-be project to provide a 'distributed implementation of Clojures multi-version-concurrency-control STM'. Basically creating atoms with the data persisted into a inside store such as ZooKeeper. We place this on hold owing to some outstanding issues recorded in the GitHub that unauthentic our previous experience. If you like the genernal idea of Avout, then trammels out zookeeper-atom which is simpler and aims to do one thing well. Datomic is a unconfined Clojure immutable database and a compelling choice. We’ve used it in wrongness on various projects and would classify it as adopt. Libraries On the database side we’ve got HoneySQL, Yesql and Korma. We’ve used HoneySQL extensively on various projects, which allows you to build up SQL via Clojure data structures. There’s the occasional time you need to unravel out of the DSL and either waif lanugo to using raw SQL (supported), or you can add your own SQL terms via extension points. Yesql takes a variegated tideway to HoneySQL where you treat SQL as raw text. This can be a cleaner, but less amendable for when you need to dynamically build up ramified SQL statements. Korma is comprised out of macros, which makes composability increasingly difficult and for this reason we’ve used it less. For increasingly information on the various SQL libaries, see this good Clojure SQL libary showdown. Compojure is a the dominant HTTP routing library. We finger there are modern alternatives as so Compojure is at trial. Bidi is one such volitional (for ClojureScript also) that we’ve used extensively that allows you to pinpoint bi-directional routing and to alimony the routes as data. Tripod is a flipside trademark new routing library, that ports the routing aspects of Pedestal for use with Ring middleware and Clojurescript. We’ve once mentioned Prismatic’s Schema library, which has proven invaluable on a number of projects. As well as its use for data validation, the urgency facilities can be extremely useful. Spectre is a new tool that promises to make working with immutable data easier. We haven’t used it yet, but it looks unconfined and could be essential. We’ve put it at trial. Nomad is a good prefer nomination for managing using configuration, marrying the EDN format and reader conditionals so that you can have powerful and flexible config files. Aero is similar, but newer and increasingly limited, therefore at trial. Environ is a small lib that allows you to grab environment settings from various sources. We’ve put this at trial; it’s great, but it adds variability as to where settings come from. Prone is unconfined Ring middleware for helping to exhibit and diagnose exceptions. Cheshire is an extremely well wrestle tested and performant option you can prefer for deserialising and serialising JSON. If you need to deal with binary data packets, transforming them when and along from Clojure data-structures, then Gloss is a lifesaver. Metrics-Clojure is an invaluable tool for batching up metrics for periodically sending to a third-party service such as Riemann or Logstash. If you’re holding when collecting metrics considering it’s expensive to log and send each one individually, consider this approach. If you want to alimony your logging config purely in Clojure, then Timbre is getting a lot of love for this and is placed as adopt. clj-time is an indepensible library for wrapping the joda-datetime Java library, giving it increasingly of an immutable Clojurey feel. Instaparse is indispensable for towers parsers to process large formally-defined languages. For template languages, we’ve not yet established a well-spoken winner. Hiccup is unconfined for towers up HTML like data-structures and then converting them to very HTML. Given the sheer usefulness of Hiccup (even when it’s not the main templating language) we’ve put it at adopt. Some finger that Hiccup lawmaking can be nonflexible to parse for others not used to Clojure (i.e. CSS designers), and so the Enlive tideway is often taken. With Enlive you work with XHTML templates, and have some behind-the-scenes lawmaking to re-render the templates based on real data. Some finger that this decoupling makes the whole spritz harder to follow. Template rendering aside, Enlive is a unconfined tool for parsing HTML, and should unchangingly considered for this use case. Taken as a whole, we’ve put at trial. Stencil follows the Mustache spec and is a well wrestle tested option (performance is excellent). It is limited though as a templating language, and can frustrate with it "logic-less" philosophy, therefore trial. Selmer is based on the Django templating approach, and looks like a compelling volitional (we haven’t used). It should indulge you to do much increasingly in templates than with Mustache. ClojureScript Lein-cljsbuild interacts with the ever-improving ClojureScript compiler and is a must (unless you’re using Boot, which is moreover a viable option). Figwheel (and boot) have revolutionised the wits of developing ClojureScript, automatically pushing changes to the browser. We say lein-cljsbuild and FigWheel are prefer considering they simply just 'work', and they vastly enrich the developer experience. Om is the standard nomination for a React ClojureScript wrapper. We’ve used it successfully slantingly Om-tools to reduce the boilerplate. Om has a large on-going minutiae effort overdue it, and the future iteration of Om Next is very interesting. Some developers can find Om a touch complex, in particular with the availabilty of component-local state and cursors for interacting with the global using state. Reagent takes a variegated tideway and bypasses much of this complexity, humid React lanugo to just functions and atoms, and for this reason it’s wilt very popular (the radar on this page is built using it, rendering an SVG using Clojure functions accessing data in a Reagent atom). re-frame offers a layer on top of Reagent helping to structure your using and event flow. Both Reagent and re-frame are ripe for adoption as an volitional to Om (although Om is moreover a unconfined choice). Quiescent is a lightweight wrapper virtually React.js. We haven’t used it directly, but it is definitely worth evaluating. Therefore trial. For increasingly resources on Clojurescript React wrappers, trammels out this post tent a comparison of the main players. Sablono allows you to build up regular HTML React components using the familiar Hiccup syntax. You can use Sablono with Reagent and Om, and is most definitely adopt. Datascript allows you to have a database in ClojureScript that supports Datalog. It supports most of the Datomic queries with documented exceptions. We’ve put it at trial. It could be overkill for simple websites that would goody from straightforward React (with the data housed in atoms), but for increasingly ramified websites it could be suitable. Tooling Paredit (or an volitional tool to help you with parens), is a must. For towers Clojure projects, Lein is the dominant choice.Marchingis relatively new and offers a programmatic volitional in difference to Lein’s declarative style. We likeMarchingand use it for some projects (such as towers this website), but we’ve had some teething problems with it for larger projects (such as towers up ramified uberjars). Some of these niggles are stuff ironed out, and it’s worth checking out.Marchingvs Lein is really a philosophical wrestle over programmatic vs declarative, and it will be interesting to see if marching gets mass adopted. Gradle could be the weightier multi-language build tool for the JVM as a whole, but its support for Clojure is not near the maturity of other languages such as Java and Groovy. Therefore it’s a hold. For editors, CIDER is the main player for Emacs and has lots of superstitious features (debugger, eval’ing lawmaking inline). The main issue people mutter well-nigh is when you start upgrading and you get stuck in between versions and their dependencies. This has wilt an tormentor many of us have come to live with. clj-refactor is an Emacs addon that complements CIDER, providing lots of refactoring goodness omitted from the CIDER mothership. clj-refactor is fit for use, but is a bit increasingly experimental than CIDER in its nomination of features and will siphon on evolving, and so we’ve put it at trial. If you’re using IntelliJ and want to stick with it, then prefer Cursive. The debugging and refactoring support has been spanking-new from day one. Cursive is so good, it’s swaying some established Emacs/CIDER users. Garden is a good tool for towers up CSS from Clojure data structures. We’re putting it at assess considering whilst it’s a good fit for some projects, it’s not an hugely zippy project and is still missing some features such as conversion from other preprocessors such as Sass and Less, which is useful if you want to use mixins from third parties such as Bootstrap and Google Material Designs. For testing, we rely heavily on clojure.test. We’ve moreover used Midje, a tool to 'make tests increasingly readable', but we’ve had a couple of tussles with it (such as reporting, reloading code, working with the macros). We’ve got it at hold, but other minutiae teams have used it extensively, and have taken to the DSL. We have wontedly used Joplin for migrating a variety of variegated databases, including PSQL and Elasticsearch. Honourable Mentions We have used Logback for logging with frequent success. It’s written in Java, and is a splendid example of Java/Clojure interop. clj-http is an old friend that wraps the Apache HTTP vendee library. Authors Jon Pither, Malcolm Sparks Contributors/Reviewers Our thanks to the efforts of many in the JUXT network who have given opinions and suggestions for this radar, including Ernestas Lisauskas, Kris Jenkins, Oliver Hine, Frazer Irvine, David Humphreys, Frankie Sardo, Martin Trojer, David Smith, Dalibor Novak, Sam Newman, Stathis Sideris. Further Resources Checkout the Clojure Toolbox for a increasingly expansive listing of what’s in the Clojuresphere. Copyright © JUXT LTD 2012-2018 Technology House, 151 Silbury Blvd., Milton Keynes MK9 1LH United Kingdom Company registration: 08457399 Home Software Clojure In Clojure Radar Open Source Software Services TrainingWell-nighUs Team Careers Community Contact In London Library Blog GitHub @juxtpro Login