shaunparker
Either way, I'm going to upgrade as the 1st gen SE camera is showing its age. Everything else about the 1st gen is still good enough for me.
A long time ago I used Mint. If I remember correctly, I had tons of syncing issues and problems navigating their UI. I tried USAA for a while, but eventually stumbled upon Personal Capital. I passionately dislike Intuit due to their pricing practices of Quickbooks Online, so I'd never use Mint again ;)
Most of Clojure's current development is around tooling [1] and some changes to move clojure.spec out of alpha. I believe they want to accomplish this for 1.10, but I'm not sure where I remember hearing that.
Alex Miller has mentioned that Cognitect built and continues to work on a tool that tracks all of your functions with spec definitions and generatively tests them only when the function or one of its dependencies changes. This would be extremely helpful since generative testing can be expensive to run, especially if you want to generate huge amounts of test cases. It'd be nice to say "test all of my codebase's functions 10 million times" and then have that information stored locally with the code.
In Rich's "Effective Programs" talk [2] he outlines the "10x problems" that Clojure was targeted at solving. In it there are two 10x problems that weren't solved by Clojure: resource utilization and libraries. There's not much Clojure can do to solve resource utilization as it's dependent on the host (JVM), but the library problem (especially Clojure libraries with spec definitions) is solvable (though there seems to be some disagreement on whether only allowing growth in libraries in a practical).
Pure speculation: All of their tooling projects (spec, codec, tool.deps, and the above mentioned generative test runner/tracker) are going to come together in a tool that attempts solves the library dependency problem. Rich outlines a lot of his thinking about how to accomplish this in his "Spec-ulation" talk [3]. He wants Clojure to "become the first community to make [dependencies] great". I hope that we'll see more tools and guidance from the Clojure team on this soon (and maybe improved out-of-the-box error messages)!
[1] https://github.com/clojure/tools.deps.alpha [2] https://youtu.be/2V1FtfBDsLU?t=29m53s [3] https://www.youtube.com/watch?v=oyLBGkS5ICk
I also find it frustrating that they don't have more turnkey services. In particular, search. It's ironic that Google's doesn't offer a search service (except if you use App Engine).
Interviewer: "Wouldn't it have been possible or simpler to add this using some kind of library or framework to an existing language? In other words, why does this kind of stuff need language support as opposed to just a library?"
Rich: "In fact it is a library. It's a library written in Java that you can use from Java. The whole thing about a language is, a language is about what does it make idiomatic and easy. So for instance, you can use the same precisely the same reference types, and the STM, and the data structures of Clojure, all from Java... The lack of idioms and language support means using exactly the same constructs, the same underlining code, from Java, is extremely painful compared to Clojure where it is the natural idiom."
I've always loved that definition of a language.
[0]: http://www.se-radio.net/2010/03/episode-158-rich-hickey-on-c...
https://cloud.google.com/appengine/docs/standard/java/search...
I received an email this morning from the editor asking "to make an end of year tax deductible contribution to keep the stories coming. Anything you could donate would be greatly appreciated".
If you enjoy their content, please consider subscribing.
I'm not affiliated with Nautilus in any way, just a concerned subscriber.
I've been writing the same boiler plate code in my API layer as well and have been thinking about something like this for a while. This is the first validation library I've seen that provides the coercion needed when dealing with user generated data. I've seen plenty of libraries that do one or the other, but when you use two libraries you end up duplicating the schema definition or writing custom transformation functions to make the libraries play nicely together.
I haven't play with it yet, but am extremely excited to do so and will post my thoughts soon. Thanks for all the great stuff you and the Prismatic team are putting out; it's greatly appreciated!