Clojure Days
Clojure Days
  • 55
  • 81 100
ClojureScript reimagined - Michiel Borkent
For the last three years I've occupied myself mostly with building new Clojure tooling and libraries: clj-kondo, babashka, nbb, etc. These tools opened up use cases for Clojure(Script) that were previously less feasible and also attracted new audiences to Clojure. With babashka it is very easy to sneak in a small script at your non-Clojure job. Similar for nbb: writing a Node script for your colleagues who just use NPM became easy.
What if we could pull off the same trick with ClojureScript in the browser?
What if sneaking in a little bit of ClojureScript into a JavaScript project was as easy as installing one extra library in your package.json? What if interop between JavaScript and .cljs files was seamless? What if JS devs could still use Node for all your tooling and didn't have to pull in a JVM? What if you could publish libraries with compiled CLJS to NPM that all share the same CLJS core functions?
Would this increase the adoption of ClojureScript in the mainstream? Would this approach be helpful to existing ClojureScript users for a new category of projects? In this talk we're getting a glimpse of what that may look like.
About the speaker: Clojure OSS developer
Michiel Borkent, also known as @borkdude on the web, is an open source software developer who loves Clojure. He is the author of clj-kondo, babashka, SCI, nbb and other tools that you might have heard of. When he is not coding, he likes to go for a walk outdoors or eat vegetables!
มุมมอง: 7 598

วีดีโอ

Automated Correctness Analysis for core.async - Sung Shik Jongmans
มุมมอง 2862 ปีที่แล้ว
It's been over nine years ago since Rich Hickey wrote the first blog post on the core.async library. At the time, Rich already hinted at the potential for "automated correctness analyses" but also stated that "no work has been done on that front for core.async as yet". To celebrate almost a decade of channels in Clojure, let's take another swing at this! In this talk, I'll present the Discourje...
Clojupedia, linking the Clojure ecosystem - Adam Helins
มุมมอง 4862 ปีที่แล้ว
A new initiative funded by Clojurists Together, Clojupedia aims to bridge our rich ecosystem by using personal knowledge management software in a non-personal fashion. We shall have a quick look at how we can centralize our libraries and tools to make them easily searchable. More importantly, link all those pieces together to make them discoverable. About the speaker: Founder of Protosens SRL A...
tagfl, task analysis generated from lisp - Adrien Siegfried
มุมมอง 1612 ปีที่แล้ว
Task analysis is an effective tool to capture the why and how's of a business requirement. Although some efforts are made to make this analysis more readable and capable of representing objects in use - such as the HAMSTERS notation, building such graphs are yet a challenge. A new approach is to consider the automatic generation of such graphs by using a graph visualization tool such as graphvi...
Sorry For The Convenience: The Importance of Progressive Enhancement - Brendon Walsh
มุมมอง 3172 ปีที่แล้ว
A summary of progressive enhancement techniques and how breaking GUI changes can be just as harmful to users as breaking API changes are to developers. About the speaker: Software Developer Software Developer for 15 years (Clojure for 9). Accessibility extremist and web archival enthusiast.
Golfing Clojure: Check Checker under 280 characters of Clojure - Daniel Janus
มุมมอง 3252 ปีที่แล้ว
I spent one hot July weekend solving a CodeWars challenge: write a program to find out whether the king is in check on a given chessboard. The trick? Squeeze it in fewer than 280 characters of Clojure code. It was a lot of fun! In this talk, I’d like to share some of that fun with the audience. We’ll see some _very_ dirty tricks and experience some ‘aha!’ moments along the way to squeeze out ju...
A Library Reckoning - Paula Gearon
มุมมอง 6912 ปีที่แล้ว
Clojure was about to release a namespace for doing math, but only on the JVM. Why not ClojureScript as well? When I asked, the answer was that Java offered certain mathematical guarantees. Could ClojureScript offer the same? The answer turned out to be a lesson in IEEE 754 floating-point numbers; a question of portability between JavaScript and Java; a framework for cross platform testing; disc...
Clojure + UI = ❤️ - Nikita Prokopov
มุมมอง 7K2 ปีที่แล้ว
The web became a de-facto way of building UIs these days. But is it good? Or fast? I argue that the web has its unique features, but it also brings a lot of unnecessary complexity to desktop apps, both in performance, resource use, compatibility, and stability. Another point is that REPL-driven development is a perfect environment for building UIs, which ClojureScript Figwheel has proven. Zero ...
How we migrated a complex JavaScript application to ClojureScript step-by-step - Alex King
มุมมอง 3.9K5 ปีที่แล้ว
How we migrated a complex JavaScript application to ClojureScript step-by-step - Alex King
Future boot - Matthew Ratzke
มุมมอง 3815 ปีที่แล้ว
Future boot - Matthew Ratzke
DCD 2019 Closing
มุมมอง 825 ปีที่แล้ว
DCD 2019 Closing
The rise and fall of e2e testing at scale - Phillip Mates
มุมมอง 5125 ปีที่แล้ว
The rise and fall of e2e testing at scale - Phillip Mates
How I Supercharged Learning Clojure through Gamification - Mey Beisaron
มุมมอง 6K5 ปีที่แล้ว
How I Supercharged Learning Clojure through Gamification - Mey Beisaron
Re-find: discover functions with spec - Michiel Borkent
มุมมอง 6005 ปีที่แล้ว
Re-find: discover functions with spec - Michiel Borkent
nREPL Redux - Bozhidar Batsov
มุมมอง 1.5K5 ปีที่แล้ว
After years of stagnation nREPL left Clojure Contrib and its development has resumed! It wasn’t easy, it took a lot of work, I learned many valuable lessons along the way, and I want to share all of this with you! This talk is going to examine the efforts that lead to restarting the active nREPL development in 2018, the current state of the project and the ambitious plans for its future. As alm...
Clojure powered services at Finnish Broadcasting Company - Heimo Laukkanen
มุมมอง 3865 ปีที่แล้ว
Finnish Broadcasting Company runs the most loved streaming service in Finland. One enabler is the use of Clojure, which empowers teams to build and operate robust micro-services. This talk shares our experiences and learnings on how we have enabled developer success in our ecosystem since 2015.
Discourje: Automatically validated message exchange patterns in Clojure - Ruben Hamers
มุมมอง 2615 ปีที่แล้ว
The core.async library provides many high-level features for async programming, but does not protect against classical concurrency problems. Discourje extends core.async and offers high-level abstractions to define message exchange patterns that are run-time validated and enforced between threads. About the speaker: I got in touch with Clojure while reading about Java concurrency and was instan...
Decentralized evolutionary computation with Clojure and ClojureScript - Rakhim Davletkaliyev
มุมมอง 1.2K5 ปีที่แล้ว
@freetonik Rakhim Davletkaliyev Decentralized evolutionary computation with Clojure and ClojureScript Let’s get inspired by biological evolution and write a decentralized genetic algorithms framework entirely in Clojure and Cljs. Then let’s use it to casually tackle some NP-complete problems by combining the computing power of all devices of Clojure Day 2019 participants! About the speaker: Sof...
DCD 2019 Opening
มุมมอง 3205 ปีที่แล้ว
DCD 2019 Opening
Growing a biomedical search engine in Clojure - Joël Kuiper
มุมมอง 9085 ปีที่แล้ว
Starting a new project is always hard. The blank pages stare at you. Sometimes you know what needs to be done, but sometimes the requirements are totally unknown. Three years ago Doctor Evidence decided to build a biomedical search engine, and this talk will be about our journey into the unknown. About the speaker: I once set out on doing academic research for a living, but then thought better ...
Building BNR Smart Radio & FD.nl Recommender system using Clojure - Bahadir Cambel
มุมมอง 3185 ปีที่แล้ว
Managing servers and infrastructure is a costly, time consuming huge pain. This talk is going to demonstrate how Clojure is a perfect match for Serverless Architecture and how to max AWS capabilities to build your ultra-scale system without any frameworks. About the speaker: Software Architect & Lead Data Engineer @fd_nieuws #Clojure #Python distributed computing. Runner. Almost ultra-marathone...
5 years of Clojure: building better infrastructure with parentheses - Pierre-Yves Ritschard
มุมมอง 7216 ปีที่แล้ว
5 years of Clojure: building better infrastructure with parentheses - Pierre-Yves Ritschard
Stay agile with clojure.spec - Roland Kay
มุมมอง 4856 ปีที่แล้ว
Stay agile with clojure.spec - Roland Kay
Online statistical analysis using transducers and sketch algorithms - Simon Belak
มุมมอง 3986 ปีที่แล้ว
Online statistical analysis using transducers and sketch algorithms - Simon Belak
Embrace the JVM - Alexander Yakushev
มุมมอง 9576 ปีที่แล้ว
Embrace the JVM - Alexander Yakushev
REPtiLe - exercise your lizard brain and share REPLs in a cold-blooded browser - Ray McDermott
มุมมอง 2896 ปีที่แล้ว
REPtiLe - exercise your lizard brain and share REPLs in a cold-blooded browser - Ray McDermott
Practical Generative Testing Patterns - Srihari Sriraman
มุมมอง 1.1K6 ปีที่แล้ว
Practical Generative Testing Patterns - Srihari Sriraman
Implementing Graph API's with Clojure - Wilker Lúcio
มุมมอง 3.7K6 ปีที่แล้ว
Implementing Graph API's with Clojure - Wilker Lúcio
No EC2 instances were harmed during this deployment - Josh Glover
มุมมอง 1686 ปีที่แล้ว
No EC2 instances were harmed during this deployment - Josh Glover
Easier REPL-based debugging with scope-capture - Valentin Waeselynck
มุมมอง 1.2K6 ปีที่แล้ว
Easier REPL-based debugging with scope-capture - Valentin Waeselynck

ความคิดเห็น

  • @ErinHollett
    @ErinHollett 29 วันที่ผ่านมา

    I've been interested in learning Clojure for some time but have struggled with adapting to the repl based environment and slow start up times from the JVM. Babashka has been a gateway drug for me into the Clojure world and I'm grateful for the work borkdude has done to make it more accessible to beginners like me

  • @orange-vlcybpd2
    @orange-vlcybpd2 5 หลายเดือนก่อน

    5:50 that is also what the so called property-based testing (PBT) is about.

  • @josephs1732
    @josephs1732 ปีที่แล้ว

    Clojurescript should change direction and follow this guy. As of now clojurescript is pretty useless coz it doesn't support ES6 property and interop with existing js libraries is a nightmare. Clojurescript is a stupid failure because it can't make use of the js ecosystem natively. Someone should fire the clojurescript leadership team for heaven's sake.

    • @laughingvampire7555
      @laughingvampire7555 10 หลายเดือนก่อน

      the ball was seriously dropped, from the very beginning, when it was launched it was a chore just to access a repl, multiple steps within the clojure repl itself.

  • @sergeysmyshlyaev9716
    @sergeysmyshlyaev9716 ปีที่แล้ว

    I wonder, if the reason for Java UI libraries being slow is actually JNI. In this case, HumbleUI will hit the same limitations eventually. Notice, that so far we have either native code desktop frameworks (like QT) or Browsers/Electron where the interpreter calls built-in functions to update an intermediate representation which is then again processed by native code.

  • @saurabhmehta7681
    @saurabhmehta7681 ปีที่แล้ว

    A tool emitting modern readable Javascript code from Clojure? Awesome!

  • @matrixnorm6672
    @matrixnorm6672 ปีที่แล้ว

    >focus on data privacy 😂 nice joke

  • @BobbiCodes
    @BobbiCodes ปีที่แล้ว

    TIL Vite is pronounced "veet", it's French for "fast"

  • @magne6049
    @magne6049 ปีที่แล้ว

    Racket is the Lisp/Clojure-like language which is tailor made for creating DSL's. They call it the Language-Oriented Programming Language.

  • @blindender9979
    @blindender9979 2 ปีที่แล้ว

    Repl is Life, I will give a try om humbleui

  • @laalbujhakkar
    @laalbujhakkar 2 ปีที่แล้ว

    I know nothing about Java and barely anything about Clojure, but this is too cool! I'm going to try and build a simple gui I need in Clojure instead of slapping it together in PySimpleGUI

  • @mgetommy
    @mgetommy 2 ปีที่แล้ว

    Awesome 😎

  • @bnbvbbnbvb3332
    @bnbvbbnbvb3332 2 ปีที่แล้ว

    I love repl

  • @kap4020
    @kap4020 2 ปีที่แล้ว

    can't wait to try it. anyone have a link to a sample app?

  • @AlexShulgin
    @AlexShulgin 2 ปีที่แล้ว

    Love how you did the slide deck in Humble UI itself, and becomes apparent only halfway in the talk! :-D

  • @panglossism
    @panglossism 2 ปีที่แล้ว

    A few months ago I developed an internal app using HumbleUI. It was really easy and the results were great. A fantastic experience then, and it's only improved since.

  • @MrJabbakrope
    @MrJabbakrope 2 ปีที่แล้ว

    The squint compiler output size is awesome! I'll finally be able to the Codingame seasonal challenges using Clojure (sending the compiled JS to their platform, cause their support for Clojure is terrible)

  • @geiltonxavierbr
    @geiltonxavierbr 3 ปีที่แล้ว

    Awesome, thanks for this talk.

  • @mertnuhoglu
    @mertnuhoglu 4 ปีที่แล้ว

    This is one of the best design talks I have ever listened to. I was thinking for very long time about why constraints let someone produce better programs. The relationship between constraints and better predictions is an invaluable insight.

  • @Skiamakhos
    @Skiamakhos 4 ปีที่แล้ว

    This is really good. It reminded me of when I was learning BASIC back in the 1980s - so much of that was about doing type-in programs that someone else had written, usually with some bugs, usually a game. It's tried & tested!

  • @cynicist8114
    @cynicist8114 4 ปีที่แล้ว

    Great video, but I would add a correction on re-frame regarding 26:32. As you said, the reason you do that encapsulation in Java is because you want to ensure the state of the class is private, and you do this by ensuring that it is only accessible through methods, so that state updates are controlled. The alternative is that multiple classes can access and write to the fields directly, which means you have shared mutable state and the obvious dangers that go with that. In re-frame, this is not even a possibility because you never access state directly. The unidirectional data flow, going from view -> event generation -> state change -> updated view, does the same thing as encapsulation. It ensures that state updates are controlled because the only way to modify state is to fire events and have re-frame itself coordinate the actual changes. It's identical to the reducer model of Redux, where you end up collecting state changes and applying them at the same time. I know it "feels" or "seems" like you are modifying state directly, but this is the reason you have to write subscriptions and events and so forth. It's so that the architecture can handle this for you in the background.

  • @eelkevanfoeken1630
    @eelkevanfoeken1630 5 ปีที่แล้ว

    Thanks for this talk, although at minute sixteen the code seems only half visible

  • @cellularmitosis2
    @cellularmitosis2 5 ปีที่แล้ว

    Great!

  • @yifanwang4906
    @yifanwang4906 5 ปีที่แล้ว

    This is beautiful. The talk is easy to follow and mind-blowing, especially graph reconnecting and connecting two different graphs part. And the questions from audiences are also helpful, indicate they already had some insight on GraphQL already.

  • @robinmattheussen2395
    @robinmattheussen2395 5 ปีที่แล้ว

    I love Mr Batsov's presentations and work, he's a true soldier!

  • @olimsaidov
    @olimsaidov 5 ปีที่แล้ว

    Excellent talk

  • @JaihindhReddy
    @JaihindhReddy 6 ปีที่แล้ว

    Nice talk! Cleared the clouds in my mind about some of these things. Unit testing inherently is more *white box* than system testing, which is ultimately what we want. We wanna answer the question, "does the software do what we want for the business?", and system tests are also far less brittle. My belief in example based unit tests has lowered. Dev-time instrumentation and automatic checking of function specs mostly obviates the need for example based unit tests.

  • @OttoNascarella
    @OttoNascarella 6 ปีที่แล้ว

    Amazing talk

  • @whiskas-1
    @whiskas-1 6 ปีที่แล้ว

    This was one of the best talks i ever watched

  • @imtk
    @imtk 6 ปีที่แล้ว

    The slides: speakerdeck.com/phillipmates/how-we-test-at-nubank-dcd-2018

  • @DmitryFomin
    @DmitryFomin 6 ปีที่แล้ว

    Very usefull! Thank you! I wished there was also a bit about how to use clojure REPL with Java apps

  • @eduardoseabra681
    @eduardoseabra681 6 ปีที่แล้ว

    Awesome talk and presentation Phillip! Working with 'flow' integration tests is really easy and gives a nice code coverage. Great to see these test libraries as open source.

  • @WilkerLucio
    @WilkerLucio 6 ปีที่แล้ว

    Hello! if you like to see the sources from this presentation, check it at: github.com/wilkerlucio/clojure-days-clojure-graph-presentation/blob/master/src/clojure_graphs_presentation_demo/indexes.clj

  • @DmitryFomin
    @DmitryFomin 6 ปีที่แล้ว

    "all or nothing" is what author of mount mentioned. He told mount is a library while component is a framework. So it may be easier to start using mount in existing app.

  • @DmitryFomin
    @DmitryFomin 7 ปีที่แล้ว

    I wonder if NomNom is still staying on Clojure. :)

  • @JoshReighley
    @JoshReighley 7 ปีที่แล้ว

    Does anybody have a link to the integrant talk he mentions?

    • @TheRealRichardEast
      @TheRealRichardEast 7 ปีที่แล้ว

      Yes - skillsmatter.com/skillscasts/9820-enter-integrant-a-micro-framework-for-data-driven-architecture-with-james-reeves

    • @JoshReighley
      @JoshReighley 7 ปีที่แล้ว

      Thanks. I did find it. Mr. Reeves is one of the best teachers of the basics I have seen.. I have looked up all of his talks in the past few days and found them all very helpful.

  • @rast4ndy
    @rast4ndy 7 ปีที่แล้ว

    Just enlightening!!! Thank you!

  • @ivanzypher4532
    @ivanzypher4532 8 ปีที่แล้ว

    Very interesting talk, especially the rebuke of this tendency to represent all data in 2D frames instead of representing the data how it wants to be represented, as structured and possibly nested collections. Funnily enough it reminds me of Hadley Wickham's recent talk where he seems excited about the idea of representing nested structures inside data frames in R. I will look into Huri more. I hope some more infrastructure comes to Clojure, we need an Rstudio clone, statistics, machine learning, visualisation libraries or ports, and functionality like knitr to build automated report workflows, and we need it to be easy: install clojure, install the IDE, everything integrated, and that's it. Then it takes off.

  • @AsotXxlS2000
    @AsotXxlS2000 8 ปีที่แล้ว

    Slides are here bit.ly/onyx-clojure