Caliban: Functional GraphQL Library for ScalaPierre Ricadat
Caliban is a library for GraphQL in Scala. It was designed with the goal of reducing boilerplate to a minimum while exposing a purely functional interface. In this talk, we’ll discover how to create a simple GraphQL API from the ground up, then we’ll dig into advanced features such as query optimization and middlewares. Finally, we will take a look at the recently released GraphQL client support.
Caliban: Functional GraphQL Library for ScalaPierre Ricadat
Caliban is a library for GraphQL in Scala. It was designed with the goal of reducing boilerplate to a minimum while exposing a purely functional interface. In this talk, we’ll discover how to create a simple GraphQL API from the ground up, then we’ll dig into advanced features such as query optimization and middlewares. Finally, we will take a look at the recently released GraphQL client support.
A profile is defined for a user named lagénorhynque who is interested in programming languages, linguistics, law, politics, and mathematics. They are fluent in several languages including French and Russian. The document also discusses forming effective teams by focusing on communication, clear responsibilities, flexibility, addressing issues promptly, and continual learning and improvement.
This document defines a macro called my_macro in Clojure that takes a predicate and list of arguments and conditionally executes the arguments if the predicate returns true. It demonstrates calling my_macro with (= 1 2) which returns false and doesn't print "hello", but with (= 1 1) which returns true and prints "hello". It also shows compiling my_macro into a function that can be called directly later.
This document provides information about various languages including their linguistic classification, typology, word order, writing systems, and examples sentences. It compares the structures of English, French, German, Russian, Arabic, Chinese, and Turkish by noting their language family, typical word order, and how a similar sentence requesting a glass of white wine would be expressed in each.
This document discusses the concept of "simple" and "easy" as it relates to programming languages and Clojure in particular. It explores the differences between concepts that are simple versus complex, and easy versus hard. It provides examples of how Clojure aims to make programming simple by avoiding unnecessary complexity through choices like immutable data and avoiding side effects.
1. The document introduces a Clojurian named lagénorhynque who is interested in programming languages like Clojure, Haskell, and functional programming.
2. It describes lagénorhynque's contributions to Clojure projects on GitHub and creating Clojure bots for Slack.
3. The Clojurian aims to expand the "Land of Clojure" and has given many talks in Japan about Clojure, functional programming, and spec to help develop the Clojure community.
This document compares and contrasts Clojure and Elixir programming languages. It provides an overview of their origins, syntax, concurrency models, macro systems, and further reading recommendations. Key points include Clojure running on the JVM while Elixir runs on the BEAM VM, both having Lisp-like syntax with differences in collection types, and both supporting metaprogramming through macros while having different macro expansion approaches.
This document describes how to build a GraphQL API in Clojure using Duct, Pedestal, and Lacinia. It discusses project structure using Duct, implementing the API server with Pedestal, and using Lacinia for the GraphQL implementation. It provides an example GraphQL API for a fictional anime club database, showing the GraphQL schema, sample queries and responses, and how the resolvers interface with the database boundary.
Interceptors: Into the Core of PedestalKent Ohashi
Pedestal is a Clojure library for building server-side web applications. It uses interceptors, which are similar to middleware, to modify the request-response context as it passes through the system. The document shows how to create a basic Pedestal project, define routes and handlers, and use interceptors like body-params to extract parameters from requests. Further reading sections provide links to learn more about Pedestal, interceptors, related concepts, and alternative routing libraries.
Boost your productivity with Clojure REPLKent Ohashi
This document discusses using the Clojure REPL (Read-Eval-Print Loop) with the rebel-readline library to improve productivity. It provides instructions for setting up rebel-readline with both the plain Clojure CLI and with Leiningen. Using rebel-readline adds features like syntax highlighting, multiline editing, and command history to the REPL. Further reading recommendations are also included.
This document provides an introduction to ClojureScript, including:
- ClojureScript compiles Clojure to JavaScript, allowing Clojure code to run in browsers.
- ClojureScript shares many of Clojure's "good parts" like S-expressions, immutable collections, and REPL-driven development.
- Specification and testing with clojure.spec helps catch errors and validate ClojureScript programs.
1. The document describes an example rock-paper-scissors game app built with re-frame and ClojureScript.
2. It introduces re-frame and its data flow architecture, including events, effects, queries, and views.
3. It also discusses strategies for integrating ClojureSpec with re-frame apps for specification and testing of domain logic and app database.