In case you're curious, these custom blocks are freely available at: https://t.co/AA5mkyMXaU
Still setting everything up, so it might be a little broken depending on when you look.
Got the runtime API designed. Outside of timelines, full scroll trigger, and full stagger support everything else in GSAP core should be covered.
#wordpress#gutenberg#gsap
The plan is to wrap GSAP in a runtime that uses data-* attributes. So something akin to AlpineJS or HTMX but specifically for animations.
Then expose the data-* attributes in WordPress as attributes on the custom block.
I plan to even have timelines working.
#wordpress#webdev
Just got done creating a proof-of-concept custom WordPress block.
I wanted all the power of GSAP in WordPress but I refuse to pay to for it. So I ended up paying in time. π€£
#webdev#wordpress#gsap
Just got done creating a proof-of-concept custom WordPress block.
I wanted all the power of GSAP in WordPress but I refuse to pay to for it. So I ended up paying in time. π€£
#webdev#wordpress#gsap
@Mazorrahavanar Yeah... But it's an absolute pain in the ass as a desktop environment. Much easier to just go with a normal distro. So I'm now trying out Debian π
I went on a side quest thinking I'm just gonna set up NixOS and dwm. I ended up learning a degree's worth of Linux and developing a dangerous obsession with Lisp, Emacs and FP.
Send help π€£
#nixos#linux#ricing
The more programming languages I learn the less unique they all seem. It's just the same features and implementations. Only thing that really changes is the syntax.
It makes arguments over which programming language is the best seem EXTREMELY stupid.
#programming
What on earth is HR smoking?
"like a tree ready for wiring to discover the bonsai within" π€£
Also, why is Python getting used for the frontend!?
#jobhunting
@JoshJosephB Recursion is a thing of beauty.
I keep staring at this function. The way it works is so damn stunning. Granted it's a whole lot easier to do this in an imperative language. But the beauty of this solution is something you won't find in an imperative language
@JoshJosephB A collector function is basically just a function which, in this case, get's called with the newely constructed list and a variable saying how many times the new atom was inserted to the left and to the right.
I am blown away by "The Little Schemer" by Daniel P. Friedman and Matthias Felleisen.
Instead of taking the typical academic approach of throwing definitions at you it trains your pattern recognition via small questions and answers.
#lisp#scheme#programming
"Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp." - Greenspun's tenth rule of programming
Build something real with vanilla code first, then youβll know when frameworks actually solve problems versus when theyβre just expensive duct tape
Crude example - learn to implement your own linked list with raw pointers and malloc() before reaching for GLib.
This can be extended to JavaScript and moreβ¦
@_avdept Phoenix has a very similar router. I suspect both generate something similar to a nested array.
Clojure on the other hand couldn't be bothered with a pretty API like Rail's π
I never considered creating a router as nested arrays. I mean it's a good way to internally represent a router but I'm so used to seeing routers in a more OOP style of programming where you create a router instance.
#webdev#clojure
It's reasons like this that I believe learning programming from a generalist approach is so extremely important. You get to see many different view points. You get to see the same problem solved in dozens of unique ways.
Specialization leads to tunnel vision.
#programming
I never considered creating a router as nested arrays. I mean it's a good way to internally represent a router but I'm so used to seeing routers in a more OOP style of programming where you create a router instance.
#webdev#clojure