Skip to content

Instantly share code, notes, and snippets.

@niteria
niteria / purescript-halogen-radix-ffi.md
Created January 21, 2026 19:33
PureScript Halogen + Radix UI: FFI Feasibility Analysis

PureScript Halogen + Radix UI: FFI Feasibility Analysis

Executive Summary

Creating FFI bindings from PureScript Halogen to Radix UI components is technically feasible but significantly challenging. The fundamental architectural mismatch between Halogen (virtual DOM agnostic, using its own rendering) and Radix UI (deeply coupled to React) means a direct FFI approach is impractical. However, several viable alternative approaches exist.


The Core Problem

{
pkgs ? import <nixpkgs> { },
}:
pkgs.buildDotnetModule rec {
pname = "uvtools";
version = "5.2.1"; # Update to latest from https://github.com/sn4k3/UVtools/releases
src = pkgs.fetchFromGitHub {
owner = "sn4k3";
from build123d import *
from build123d_draft import *
import math
def make_hinge(center, # hinge around this point
dia, # outer diameter of the hinge round part
total_height, #
pin_dia=None, # diameter of the hinge pin
vertical_clearance=0.5, # clearance in Z axis
horizontal_clearance = 0.5, # clearance in X, Y axes
@niteria
niteria / karabiner.png
Last active September 5, 2015 23:02
Hyper support in OSX
karabiner.png
"<> {-> x \\if \"\\\"\\\\\" x elemChar: ['\\\\', x] else: [x]} mapConcat '\"' append '\"' prepend
say say"
<> {-> x \if "\"\\" x elemChar: ['\\', x] else: [x]} mapConcat '"' append '"' prepend
say say
(defproject one "1.0.0-SNAPSHOT"
:description "Getting Started with ClojureScript."
:dependencies [[org.clojure/clojure "1.4.0"]
[ring "1.1.5"]
[compojure "1.1.3"]
[org.clojure/clojurescript "0.0-1450"]
[enlive "1.0.1"]
[domina "1.0.1-SNAPSHOT"]
[org.mozilla/rhino "1.7R3"]
[com.google.javascript/closure-compiler "r2079"]
@niteria
niteria / slim.hs
Created May 12, 2013 22:12
parsing binary data in haskell
module Main where
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as BL
import Data.Binary.Strict.Get
import qualified Data.Binary.Strict.BitGet as BG
import Data.Word
import Control.Monad
import Control.Applicative
import Data.Binary.Put
@niteria
niteria / gist:5521096
Created May 5, 2013 15:21
import maven project in eclipse
mvn eclipse:eclipse # creates .project etc.
mvn -Declipse.workspace="your Eclipse Workspace" eclipse:configure-workspace # sets M2_REPO
# http://www.mkyong.com/maven/how-to-configure-m2_repo-variable-in-eclipse-ide/
# http://stackoverflow.com/questions/2061094/importing-maven-project-into-eclipse
@niteria
niteria / gist:5030275
Created February 25, 2013 14:48
Haskell manual installation
http://hpaste.org/83026
module Main where
import qualified Data.ByteString.Lazy.UTF8 as L
import Data.Char
import Network.HTTP.Enumerator (simpleHttp)
import System.Environment
dupa :: String -> String
dupa [] = undefined
dupa (a:[]) = undefined