Quantcast
Channel: Lambda Island
Browsing latest articles
Browse All 49 View Live

1. clojure.core/some

Clojure's `some` function is surprisingly versatile. Find out what it does, and what you can do with it.

View Article



2. Introduction to Luminus, part 1

To give you a starting point for building your own app, we'll go through the process of building an application from scratch with Luminus. In this first part in a series of three, you'll learn to set...

View Article

3. Introduction to Luminus, part 2

We continue our journey through Luminus by building a wiki. In this episode you'll learn how to create the form to edit pages, and handle creating new page revisions. We'll also come across Cross Site...

View Article

4. ClojureScript Interop

In this episode we'll go over all the tools ClojureScript puts at your disposal to interoperate with JavaScript. You'll learn how to call JavaScript libraries, how to work with JavaScript datatypes,...

View Article

5. Introduction to Luminus, part 3

In this closing episode of the Luminus introduction, you'll learn how to extend the template language with custom filters, and how to generate HTML components in code using Hiccup.

View Article


6. Building a React app with ClojureScript

React.js is the new hotness in the land of user interfaces. It's descriptive approach pairs wonderfully with ClojureScript's functional underpinnings. This episode will show how to build an app with...

View Article

7. Intro to clojure.spec

The spec library which will be included in Clojure 1.9 gives you a powerful mechanism for validating data. Find out how to use it in this episode.

View Article

8. The ClojureScript Compiler

To be effective at programming, you have to understand your tools. In this episode we'll peel a few layers away, and use the ClojureScript compiler without any help from Leiningen, Cljsbuild or...

View Article


9. Reagent, part 1

One of the more popular wrapper libraries for using React with ClojureScript is Reagent. We'll build a kanban style board to demonstrate the main features.

View Article


10. Reagent, part 2: Cursors

We continue building a Kanban board with Reagent, adding functionality to edit cards. In the process you'll learn all about Reagent's cursors and event handlers.

View Article

11. Reagent, part 3: Keys & Lifecycle Methods

Learn about React performance, the use of `keys` properties, and how to use lifecycle methods with Reagent.

View Article

12. Clojure Keyword Arguments

Clojure's variable argument functions combined with map destructuring results in a concise syntax for keyword arguments. We'll pick this feature apart to see exactly what's inside. You'll learn about...

View Article

13. Ring, part 1

In this new series you'll build an API with Ring from the ground up. The pace is slow and no steps are skipped, making it a great lesson for beginners.

View Article


14. Using Figwheel With Emacs, part 1: inf-clojure-mode

Learn how to integrate Figwheel's browser connected REPL into Emacs, for an ever greater degree of interactive development, using inf-clojure-mode.

View Article

15. Using Figwheel With Emacs, part 2: CIDER

By using Figwheel with CIDER you get both a Clojure and a ClojureScript REPL at the same time, and you get all the nice features of CIDER. It's a more complex setup than just straight inf-clojure, so...

View Article


16. Ring, part 2: the Two Routes

In this second installment of our beginner friendly introduction to Ring the API goes from being read-only to being read-write. You also learn about `juxt`, `slurp`, and how to parse an incoming...

View Article

17. Ring, part 3: Return of the Middleware

We add `GET`, `PUT`, `DELETE` operations to the contact book API. In the process we pull out the EDN handling into its own middleware, and come across some handy Regex tips. This third episode picks up...

View Article


18. Using JavaScript libraries in ClojureScript

One of the benefits of ClojureScript is that it lets you leverage the great JavaScript ecosystem. Using arbitrary JS libraries isn't always trivial though, and a lot of head scratching can ensue. In...

View Article

19. re-frame, part 1

Reagent is a popular and easy to use option for using React with ClojureScript. re-frame builds on top of Reagent, providing an elegant and opinionated way to structure applications and deal with...

View Article

20. re-frame, part 2: Subscriptions

A complete look at re-frame subscriptions, including coverage of Reagent's atoms and reactions. You learn how to write subscriptions, how they work, and how to plug them together into a signal graph.

View Article

21. Compojure

Compojure is one of the more popular routing libraries for Ring. It's easy to pick up, and gives you a great foundation to further explore Clojure web development.

View Article


22. Seq and Seqable

Seqs are a key abstraction in how Clojure processes data, but what exactly is a "seq", and how does it relate to "seqable?". Time for a deep dive in Clojure and ClojureScript source code to discover...

View Article


23. deftype and definterface

Clojure is built on a well thought out set of abstractions. To implement these, it makes use of the ability to define abstractions in the host language, namely Java interfaces, and the high-performance...

View Article

24. defrecord and defprotocol

With records, Clojure has introduced a way to create struct-like objects, while avoiding some of the problems encountered in object orientation. Records don't hide their data behind custom interfaces,...

View Article

25. re-frame, part 3: Events and Effects

Side effects in re-frame are handled through events. You'll implement several event handlers of a TodoMVC app so it becomes functional. You'll also implement custom effect and co-effect handlers for...

View Article


26. Component and System

Stuart Sierra's Component is a small library that can have a big impact on the structure and architecture of your application. In this episode you learn how you can use it to create components, and...

View Article

27. Resolving Dependency Conflicts

In this beginner friendly episode you'll learn how to resolve a common type of Clojure error. It walks you through the process step by step, from analyzing the error, investigating the cause, coming up...

View Article

28. Authentication with Buddy

Buddy is a popular security library for implementing authentication and authorization. In this episode you'll learn what the difference is, and how to implement password based authentication for a...

View Article

29. Building Command Line Applications with Lumo, part 1

JVM based Clojure isn't very suitable for command line scripting. On the command line you want quick feedback, which is at odds with the time Clojure needs to boot up, and just to run a single source...

View Article



30. Building Command Line Applications with Lumo, part 2

Now that the "birch" command is working, it's time to release it to the world. In this episode you'll learn how to turn your Lumo script into an NPM package. You'll also learn how to use packages from...

View Article

31. Component in Practice

Learn how to incorporate Component in a real world project. This episode is a bit of grab bag. It shows how to set up a `-main` function and how to use it, how to use reloaded.repl and tools.namespace...

View Article

32. Introduction to Clojure Testing

Testing libraries and frameworks are indispensable, but there's no magic to how they work. Through implementing your own mini testing framework, you'll learn how `clojure.test` does things under the...

View Article

33. Running ClojureScript Tests

Learn how to run tests with Figwheel, PhantomJS, Node, doo, and Karma. Running Clojure tests once they are written is pretty straightforward, but for ClojureScript there are a few more things to...

View Article


34. Acceptance Testing With SparkleDriver

Learn how to use a headless web browser to test your application for feature completeness. You'll also see how Component can be used to set up an isolated test environment, how to use fixtures and...

View Article

35. Generative Testing with test.check

Generative testing, also called Property Based testing, is a powerful technique able to expose some of the most obscure bugs. You'll learn how to create and compose generators, and how to define...

View Article

36. Datomic Quickstart, part 1

Datomic is a database based on the same principles that underly the design of Clojure itself. Learn what makes it different, and how to start using from Clojure immediately. This first part gives an...

View Article


37. Datomic Quickstart, part 2

Datomic is a database based on the same principles that underly the design of Clojure itself. Learn what makes it different, and how to start using from Clojure immediately. This second part dives...

View Article


38. Transducers

Transducers are a Clojure feature allowing you to write code that is efficient, reusable, and composable. They have been around for several years, landing first in Clojure 1.8, but even some...

View Article

39. Integrant

Integrant is a "micro-framework for data-driven architecture". It manages the lifecycle of your application, and the dependencies between components, similar to Component or Mount, but with some very...

View Article

40. The Ultimate Dev Setup

This one tool will transform how you program. It's time to raise your standards!

View Article

41. Using React Components with Reagent

React's component based approach means you don't have to reinvent the wheel, there are literally thousands of building blocks freely available. When using React components from Reagent there are a few...

View Article


42. Inside Transducers

Clojure allows processing data in a way that is composable, reusable, and performs well, all through the power of Transducers. Episode 38 provided a general overview of what's in the box, the...

View Article

43. Data Science with Kixi.stats, part 1

With the knowledge of transducers under your belt, it's time to start analyzing some data. This episode provides a first introduction to the Kixi.stats statistical toolkit, by analyzing a data set and...

View Article


44. Data Science with Kixi.stats, part 2

After some exploration and analysis of the data it's time to create a predictive model. In this episode you'll discover several new chart types, learn how to evaluate the correlation between variables,...

View Article

45. À la Carte Polymorphism, part 1

Clojure provides polymorphism through protocols and multimethods. Protocols were covered in depth in [episode 24](https://lambdaisland.com/episodes/defrecord_defprotocol). This episode provides a brief...

View Article


46. À la Carte Polymorphism, part 2

With the basics of multimethods out of the way it's time to look at some of the more advanced uses. This episodes explores in depth Clojure's keyword hierarchy features, some little known aspects of...

View Article

47. Interceptors, part 1, concepts

The Interceptor pattern was originally introduced by Pedestal, but has since been adopted by several other projects in the Clojure world. It's an extremely useful design tools to be familiar with, and...

View Article

48. List Comprehension with clojure.core/for

A small macro with a lot of power! We start with a quick recap of Clojure's looping constructs, and then go over the various features and use cases of `for`, backed by examples taken directly from...

View Article

49. Passwordless Authentication With ring-oauth2

More and more sites offer the ability to log in with Facebook, Twitter, or Github, which can be quite convenient, as it means fewer passwords to keep track of. Adding this kind of capability to a Ring...

View Article

Browsing latest articles
Browse All 49 View Live


Latest Images