Masthash

#clojurescript

4 days ago

Scratching my itch: A #clojurescript QR-code reencoder. Go to thenybble.de/qr-code/, point your camera at a qr code, download an image to present to other scanners.

Entirely client-side. I know the UI is shitty.

Something that's lacking in the Reagent (and re-frame) model is explicit managing of the state of your data sources.

Say you are fetching something from an API, and then you stick that in an ratom, so your UI renders it. That works for the happy path, but then you realize it might error, and you need to show that to the user, and you might want to show that it's loading. And maybe you want to detect a timeout. So you end up with

:new - ratom created, not fetching yet
:loading - fetch in progress
:result - happy path, we haz data
:error - something went wrong
:timeout - we stopped waiting

Say you have a reaction that computes some value based on the result from two API requests. That reaction shouldn't compute until both have valid results. And so that reaction itself has a state, which is the composite of its upstream states.

And in any component you should be able to provide these five states explicitly (if you want to) - here's what to render while data is loading, here's how to show errors, etc.

We're experimenting with ways to handle this systematically in a way that composes.

#clojurescript

(webdev Tory) :emacs:
1 week ago

I made a #static site using #ShadowCLJS #ClojureScript . The last step was to remove the #CLJS. But I still use Shadow to start up a local server and explore my static site in-browser. It works nicely as a quick server. #clojure

The Eldritch Rain
3 weeks ago

Oof I just found out that Tauri dropped support for the ClojureScript template ;_;

#tauri #clojurescript

Erik L. Arneson :emacs:
4 weeks ago

@howard I have been looking at this and thinking about it! First, I am not sure I'm enough of a #ClojureScript expert to really have a worthwhile opinion yet. But I think the nice thing about cljs is that it's nearly #Clojure, so skills transfer over.

I also really appreciate how CLJS maintains the "try to be FP" approach of Clojure. I don't have to think like a JavaScript programmer when I am using it---at least not all the time.

Howard Abrams
1 month ago

Hey @pymander ... would be interested in hearing your perspective in comparing #clojurescript and #junolang.

https://github.com/KinaKnowledge/juno-lang

Giovanni Crisalfi
1 month ago

TIL that #Clojurescript is literally the same as #Clojure: it is just transpiled to Javascript instead of Java. Previously, I thought it was a Clojure clone for JS

Asko Nรตmm
1 month ago

IPRally (https://www.iprally.com/), a company I'm working for is looking for #Clojure and #ClojureScript developers. It's a great place with amazing people.

It is super tricky to review #css code! Do you feel the same?

Reviewing #clojurescript, #clojure, or #javascript, or any other programming language is much easier because you can understand and reason about the code by just reading it.

But reasoning about CSS code without running it and playing with it in the browser's Console? Impossible.

#codereview

It turns out that using var-quoting with reagent (React) components isn't such a good idea.

Var-quoting makes the component function not `identical?` to itself, which causes unnecessary remounts.

(defn foo-component [,,,])

(identical? foo-component foo-component) #=> true

(identical? #'foo-component #'foo-component) #=> false (<-- react will remount)

#clojure #clojurescript #reagent #react

I've been playing around with #ClojureScript and figuring out how to load it into a #WordPress plugin.

Somฤ“
2 months ago

I'm having a problem trying to install GraalVM on my NixOS that already has OpenJDK.

The core of the problem is a collision between graalvm/bin/jhsdb and openjdk/bin/jhsdb.

Does anyone knows how to solve collisions in NixOS?

I'm using home manager version 23.05-pre.

#nixos #nix #linux #graal #graalvm #clojure #jdk #java #openjdk #clojurescript #homemanager #dev #developer #help #tech

Simon Gray
2 months ago

I wanted to try out a #JavaScript library library via NPM in my #Clojure frontend (well, #ClojureScript technically).

Adding this single dependency literally adds 1000+ lines of additional generated shit to my package-lock.json!

Ek is 'n groot aanhanger van babashka om projekte mee aan te pak. Teen die einde van laasweek het ek weer na 'n AWS SAM (Serverless) projek gekyk wat op ys is, en toe probeer ek nbb in die projek gebruik. 'n Paar keer se kop krap en stoei met konsepte, maar ek is nou heel gelukkig hoe dinge uitdraai. Ek gaan waarskynlik al die Vanilla JavaScript dele vervang met ClojureScript!

#AWS #SAM #Serverless #babashka #nbb #ClojureScript

Ek het hier begin: https://github.com/babashka/nbb/blob/main/doc/aws_lambda.md

Somฤ“
3 months ago

Just tried out #UIx (https://github.com/pitch-io/uix). Thinking about using it instead of #Reagent for my next hobby project.

#Clojure #Clojurescript #React #WebDev #Frontend #dev #developer #development

3 months ago

@ebassi do you say #JavaScript? :) Do I hear #ClojureScript? :D

J David Eisenberg
3 months ago

OK, letโ€™s try an #introduction
1) I am interested in #language #learning (see tutorials at https://langintro.com)
2) I like #traveling (https://langintro.com/tripreports/)
3) Iโ€™m a #cat person (see the not-updated-in-ages https://catcode.com/catblog.html)
4) Wrote an introduction to #ClojureScript (https://langintro.com/cljsbook/)
5) Enjoy riding my bicycle for exercise.

Simon Gray
3 months ago

I put the latest blog entry by @nikitonsky on /r/clojure yesterday: "A case for ClojureScript 2.0".

The Right Honourable creator of shadow-cljs, Thomas Heller, chimed in with a rebuttal which could easily be its own blog post: https://www.reddit.com/r/Clojure/comments/14jfs48/a_case_for_clojurescript_20/jplxjm3/

#Clojure #ClojureScript

Somฤ“
3 months ago

New post: wrote about how to setup simple continuous deployment for a #ClojureScript frontend application using #Github Actions and #Glitch

https://somecho.github.io/en/blog/deploy-reagent-app/

Raphael Hemme
4 months ago

Watched this amazing talk about Node.js Babashka (#nbb) by @borkdude last night and I am totally hyped already even though I'm still learning the foundations of #clojure / #clojurescript .

The output and energy of @borkdude is unreal. ๐Ÿคฏ ๐Ÿ‘

Things like this also give newcomers like me confidence in an active community.

https://youtu.be/oCd74TQ-gf4

Raphael Hemme
4 months ago

@some
This is super nice!
I'm just starting out learning #clojurescript but this is extremely motivating to see.

Thanks for the work you put into that project. ๐Ÿ‘

Somฤ“
4 months ago

You can now add CDN links to your p5cljs sketches ๐Ÿฅณ https://p5cljs-editor.github.io/

#p5 #p5js #js #webeditor #editor #webapp #webdev #cljs #clojurescript

a close up screen shot of the p5 cljs editor where a drop down is clicked, showing the new option 'add cdn link'
Sean Corfield
4 months ago

@amcooper If you're already using a JVM-based language, I'd suggest #Clojure (it's what I've been using in production for the past dozen years). If you're already using JS, look at #ClojureScript

Somฤ“
4 months ago

The p5.cljs editor is live! It's a really barebones editor, but you can now try writing P5 in ClojureScript! Link: https://p5cljs-editor.onrender.com/

Not affilliated with P5 or the Processing foundation.

#p5 #processing #clojurescript #cljs #p5js #js #creativecoding

Somฤ“
5 months ago

Building a web editor for P5 but using ClojureScript!

This is a really ugly proof of concept, but I'm really happy to have learned how to create this.

#p5 #p5js #clojure #clojurescript #processing #webdev

Portfolio, a "visual REPL" for #clojurescript looks pretty neat! https://github.com/cjohansen/portfolio

I'm gonna try it out. I'm not sure if it's worth the effort to convert our project from devcards to portfolio but it definitely had couple useful features that devcards lacks (like search, render in iframe, and easier to navigate between one scene to another)

Karsten Schmidt
6 months ago

@bit101 Ohhh... Great choice, Keith! If I may, here're some of my own #Clojure tutorials/workshop repos & projects:

Longish tutorial:
https://www.creativeapplications.net/tutorials/introduction-to-clojure-part-1/

Most posts in 2015/16:
https://github.com/thi-ng/blog

Various thi.ng projects/libraries:
https://thi.ng/?clojure#tags

Collection of various workshops:
https://github.com/thi-ng/demos/

Resonate workshops:

ECS, WebGL & #ClojureScript
https://github.com/learn-postspectacular/resonate-workshop-2015

Graphs, Text adventure, dataviz
https://github.com/learn-postspectacular/resonate-workshop-2014

Generative music w/ Overtone
https://github.com/learn-postspectacular/resonate-workshop-2013

Simon Brooke
6 months ago

@pragprog #ClojureScript , of course. What other way is there?

ClojureScript / Npm integration feels like it has come a looong way. Especially with shadow-cljs.

I was able to get a sanity.io client spun up really easily.

#clojure #clojurescript

https://shadow-cljs.github.io/docs/UsersGuide.html#_using_npm_packages

Simon Brooke
8 months ago

#Lisp folk: if one were building a sophisticated new web client, would it be better in this day and age to write it in #ClojureScript and compile to JavaScript, or in #Schism and compile to #WebAssembly?

Yogthos
8 months ago

Emmy is an implementation of the scmutils system for math and physics investigations in the #Clojure and #ClojureScript https://github.com/mentat-collective/emmy

Karsten Schmidt
8 months ago

#ReleaseSunday Good things come to those who wait... After 10+ years, incl. 4+ years of release candidates and now prompted by a recent PR by @dimovich, earlier today I've released https://thi.ng/geom-clj v1.0.0 proper โ€” a large, comprehensive #opensource 2D/3D geometry toolkit for both #Clojure & #ClojureScript. It's a massive project with too many features to list here, see readme & attached images for a partial list...

This was the first public project under the thi.ng moniker and from 2011-2016 I worked almost daily on it (though in it's current form it's the 4th rewrite). It also was the first project for which I decided to adapt a #LiterateProgramming process, using Emacs #OrgMode, allowing me to develop and intersperse source code with prose, sections, table of contents, reference/research links, tasks, diagrams, visualizations, tables & parametric code templates. Amazing productivity booster & dearly missed since... I continued using LP for several other large thi.ng libraries (most notably https://thi.ng/fabric), but in 2018 I decided to give up, since it proved to be a major hurdle for 3rd party contributions... ๐Ÿ˜ข

In hindsight, the project, design and learnings from Clojure heavily inspired and directly expanded into my later (current!) #TypeScript work and the group of 20 new libraries under the same name (i.e. see https://thi.ng/geom). The latter is _not_ a direct port and currently still has a much stronger focus on 2D, yet again is one of the largest groups of libraries in the entire https://thi.ng/umbrella monorepo...

Screenshot excerpt from the thi.ng/geom readme showing a diagram of the project & type hierarchy...
Screenshot excerpt of the thi.ng/geom readme showing a partial feature list. Direct URL to this section: https://github.com/thi-ng/geom#main-features-non-exhaustive-list
Screenshot of thi.ng/geom Literate Programming examples for the 2D SVG visualization/charting module showing stacked bar timelines, heat maps (cartesian & polar) and a Git commit punchcard incl source code for each.
Screenshot of thi.ng/geom examples for the voxel/volumetric modelling module, showing source code and 3D renders of 3 different voxel models: 1) a cut-open box with gyroid surface infill, 2) a sphere from which smaller spheres are carved out, 3) a 3D simplex noise isosurface
Karsten Schmidt
8 months ago

#genuary2023 Art Deco. In 2013/4 I (over)worked on one of the largest and most exhausting #GenerativeArt projects of my life: Co(de)factory was an interactive installation piece for the Digital Revolutions/DevArt exhibition, commissioned by Google & The Barbican Centre London. The centerpiece was a DIY 3D resin printer used to publicly fabricate objects designed by visitors via a custom WebGL-based visual programming environment (which was pain to get running on Chrome on the Nexus tablets embedded in the plinths). This design tool (written in back then still pre-mature #ClojureScript) was based around my https://thi.ng/morphogen DSL which defines 8 basic tree operators (e.g. reflection, subdivision, skewing, tapering etc.) to generate complex geometries via recursive transformations of a single arbitrary seed box. Not going to talk much more about the project here (maybe another time), other than to say the large 3D printed canopy structure/sculpture (3 meters tall, 2.4m diameter) surrounding the printer, as well as the cladding for the plinths were all created from hundreds of small modules designed with the Morphogen DSL and used the "golden era" of 1920s American Art Deco as main inspiration... You can find the entire source code for all components (incl. the design tool, server backend, fabrication files etc.) on GitHub:

https://github.com/postspectacular/devart-codefactory/

#3Dprint #LuxRender #Clojure

Photograph (by Andrew Meredith) of the Co(de)Factory installation, showing the large hanging 3D printed canopy sculpture (consisting of 446 golden glowing yellow resin modules) and 3 plinths with embedded touchscreen tablets, also cladded in resin modules. A partially visible 1.2m tall 3D printer is located within the canopy (also used as fence to avoid visitors disturbing the 3D print process). In the background is a largely still empty, illuminated shelf with a few 3D printed objects. The bottom row has blue LCD displays displaying credits & object information for each object...
3D render of a 90 degree section of the circular 3 meter tall generative canopy structure (viewed bottom-up). This was used to pre-visualize the color change effect of the semi-transparent resin used for the 3D print.
3D renders of 2 of the 446 generative panels used for the canopy sculpture, each with subtle differences in form & aspect ratios... These panels were used near the bottom of the funnel like structure
3D renders of another 2 generative panels used for the canopy sculpture. These panels were used near the top of the funnel like structure and also have more pronounced petal like elements (compared to modules near the floor)
Erwin
10 months ago

#introduction time.

#freelancer gone #corporate, #fullstack developer working at #github, I programmed for a living in #php #csharp #java #javascript #clojure #clojurescript #typescript #python #ruby #rust.

Failed once starting a company, hope to try succeeding once again.

I love watching #sports, especially #formula1

Happy owner of 2 fox terrier #dogs

@nosherwan As a functional programmer, it's React, sans JSX, and it's not even close. I'm not going to leave my beautiful, trustable, pure functions. At this point you can use React to build anything and everything, even native desktop apps, and you can do it with #ClojureScript too.

chander
11 months ago

Hello, I am Chandrasekar. I am a #frontend developer working #remote for a company in #Chennai. I now live in #Malaysia with my wife. I am interested in talking about #films #books #boardgames and the #web.

Dropping some hashtags for a few other interests that I would like to follow here - #clojure #clojurescript #javascript #indieweb #design #UX #sciencefiction #linux

#MastIndia #introduction

(webdev Tory) :emacs:
2 years ago

The Twitter Webdev community is largely preoccupied with single-line promotional texts (largely about the glories of #javascript) and threads of gee-whiz info that I actually find quite useful sometimes. So, in proper #Clojure fashion, I've decided to use that community as Host and do all those same things, but Clojure[Script]. Feel free to join me! #ClojureScript #webdev