coltnz
Joined 14 years ago
Joined 14 years ago
The reader reads the specific tokens that define the Clojure Dart dialect via the data readers extension mechanism of the standard Clojure reader. Note, this dialect is not strictly compatible with other Clojure dialects, only with Clojure code that is host platform neutral 'pure Clojure', or code that uses dialect 'reader conditionals' to have specialised functionality. This is as it is with Clojurescript, and libraries made cljs friendly will not doubt be trivially made cljd friendly.
The core libs is where the bulk of the work lies, by lines of code at least. core.cljd is 7135 lines, with all the Java-isms (mainly IO, String and Math fns) replaced by Dart wrapper libs. A lot of it, however, is pure Clojure lifted straight from the original. Furthermore, there's a ready-made test suite.
Finally, the compiler. 4000 lines to produce Dart source from AST generated by the standard Clojure reader (but with Dart extensions support via tagged data).
;compiled at run time
(re/or #"a" (re-pattern "b"))
=> #"(a|b)a"
;compiled at macro time
(re/or #"a" (re/and #"b"))
=> #"(a|(b))"
https://github.com/coltnz/re-extSMX is New Zealand's leading cloud-based email hosting and security provider. A growing blue chip list of enterprise and government customers around the world trust their email security to SMX. We provide a fully-hosted, enterprise-grade email gateway with mail filtering, content control, data loss prevention and archiving.
Colin Taylor (CTO)
Looks pretty amenable to hacking with the boy.
I know we're using an engine, but still shocking how little code it is.
For the sake of the less experienced, I'd point them to these substitutions in particular:
Compojure: Reitit (which they used in the front end too, so migration maybe in progress) would be my preference for backend routing.
Component: Integrant takes Component's ideas, but prefers the flexibility of multimethods operating on plain data to the typed records approach for defining systems.
Schema: Once very popular, but superseded by clojure.spec (bigger in scope) and to a lesser degree Malli for data schemas.
Potemkin: Avoid, handy for some internal code organisation purposes but hostile to tooling and debugging IMO.
SMX aims to be a global leader in managed email security, analytics and deployment solutions.
We deliver enterprise-grade email security, analytics and messaging as-a-service, with a unique focus on the Australasian and Trans-Tasman threat landscape. As a Microsoft Co-Sell Partner and NZ All-of-Government supplier, a growing list of enterprise and government customers trust their email security to SMX.
We're looking for experienced engineers to build our bespoke mail stack which is primarily in C++ on Linux but also using Lua for orchestration.
The primary role is software development, but you will be required to configure, manage and troubleshoot email systems to ensure our customers receive world class service and uninterrupted mail flow. You will also be involved with systems integration, automated deployments, threat analysis, big data ingestion and product design. You won't be on the pager!
GMT+12 adjacent might be an option for remote work. We currently work a mixture of home and office and expect that to continue.
Visa Sponsorship is an option, we are a NZ Govt. preferred employer so very fast turnaround.
Technologies: C++14 on Linux, Lua, Redis, Ansible, Azure.
Contact: [email protected]
SMX aims to be a global leader in managed email security, analytics and deployment solutions.
We deliver enterprise-grade email security, analytics and messaging as-a-service, with a unique focus on the Australasian and Trans-Tasman threat landscape. As a Microsoft Co-Sell Partner and NZ All-of-Government supplier, a growing list of enterprise and government customers trust their email security to SMX.
We're looking for experienced engineers to build our bespoke mail stack which is primarily in C++ on Linux but also using Lua for orchestration.
The primary role is software development, but you will be required to configure, manage and troubleshoot email systems to ensure our customers receive world class service and uninterrupted mail flow. You will also be involved with systems integration, automated deployments, threat analysis, big data ingestion and product design. You won't be on the pager!
GMT+12 adjacent might be an option for remote work. We currently work a mixture of home and office and expect that to continue.
Visa Sponsorship is an option, we are a NZ Govt. preferred employer so very fast turnaround.
Technologies: C++14 on Linux, Lua, Redis, Ansible, Azure.
Contact: [email protected]
Things I'd ask:
- What are the new resources (for Clojure? or just Datomic?), how are they being used? Does Nubank have opinions / direction on these resources.
- Has an open sourced Datomic been discussed? It wouldn't seem to be strategic for Nubank and could be a big boost to the Clojure ecosystem. I'd read every line..
- Who owns the Clojure trademarks and IP going forward. Any talk of a Clojure Foundation?
- Alex Miller does an awesome job but boy he has a lot to cover. It suits Rich to have a small team of trustees for core (though boy its got small) but the community stuff could surely be advanced quicker. Old tickets in contrib and key libs etc..
- There was talk a few years ago of facilitating community involvement with a PEP type process, https://www.python.org/dev/peps/pep-0001/? Any further thoughts?
- Clojurescript has left Core. Is Nubank likely to want to get involved here?
I have no right to these answers, some may be commercially sensitive and of course Clojure doesn't belong to me. However there is no harm in asking when answers to the questions are important to me in my future uses of Clojure. Indeed I think it would be superior - in terms of Clojure's continued acceptance into industry - to know more of it's future direction than has traditionally been the case. Hopefully Nubank provides the confidence needed for this to happen.
SMX have been NZ's email specialists for more than 10 years and are now taking our products global.
We have a bespoke big data and analytics infrastructure built in Clojure and utilising Kafka and Cassandra that requires another senior developer. You will have verifiable experience in some or the above or related technologies, as well as in building secure, highly available systems.
Respond to colin.taylor smxemail.com