Skip to content

Instantly share code, notes, and snippets.

Andrey Antukh niwinz

Block or report user

Report or block niwinz

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View scratch.clj
(require '[clojure.core.async.impl.protocols :as impl]
'[clojure.core.async.impl.dispatch :as dispatch])
;;=> nil
(extend-type java.util.concurrent.CompletionStage
(take! [this handler]
(.whenCompleteAsync this
niwinz / array_type.clj
Created Jul 10, 2019 — forked from Chouser/array_type.clj
Clojure array type hint
View array_type.clj
(defn array-type
"Return a string representing the type of an array with dims
dimentions and an element of type klass.
For primitives, use a klass like Integer/TYPE
Useful for type hints of the form: ^#=(array-type String) my-str-array"
([klass] (array-type klass 1))
([klass dims]
(.getName (class
(apply make-array
(if (symbol? klass) (eval klass) klass)
niwinz / dynamicObject.js
Last active Nov 26, 2019
GraphQL Dynamic Object.
View dynamicObject.js
const {GraphQLError} = require("graphql/error");
const {Kind} = require("graphql/language");
const g = require("graphql");
function parseLiteral(ast) {
switch (ast.kind) {
case Kind.STRING:
case Kind.BOOLEAN:
return ast.value;
case Kind.INT:
View SimpleHTTPServer.cs
// MIT License - Copyright (c) 2016 Can Güney Aksakalli
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System.IO;
niwinz / core.clj
Last active Nov 22, 2017
Recycle Iteration
View core.clj
;; BOOT_CLOJURE_NAME=org.clojure/clojure
;; BOOT_JVM_OPTIONS="-Xms4g -Xmx4g -XX:+UseG1GC -XX:+AggressiveOpts -server"
(set-env! :dependencies '[[org.clojure/core.async "0.3.443"]
[org.clojure/clojure "1.9.0-RC1"]])
(require '[clojure.core.async :as a]
'[clojure.core.async.impl.protocols :as ap])
View sablono-hacks.clj
(ns your.macros-for-cljs.ns
(:require [sablono.compiler :as sablono-c]))
;; Make sablono also walk into other forms:
;; if, for, let, do: Already exist
(.addMethod @(var sablono-c/compile-form) "when"
[[_ bindings & body]]
`(when ~bindings ~@(for [x body] (sablono-c/compile-html x)))))
niwinz / es6-class-react.cljs
Created Apr 8, 2017 — forked from dvingo/es6-class-react.cljs
React component in pure cljs using ES6 class inheritance
View es6-class-react.cljs
;; implementing a React component in pure cljs, no reagent necessary
;; using goog.object.extend to create a ES6 class that inherits from
;; React.Component
;; credit to @thheller
(defn MyReact [props context updater]
(this-as this
(js/ this props context updater)))
View for-like-macros.cljs
(defmacro afor
"Like for but eagerly builds a JS array.
Usually for react consumption."
[[item coll] & body]
`(let [coll# ~coll
neue# (cljs.core/array)]
(loop [xs# coll#
idx# 0]
(let [f-item# (first xs#)]
niwinz / infinite.js
Created Jan 17, 2017 — forked from threepointone/infinite.js
infinite scrolling pattern with react fiber (featuring intersection observers)
View infinite.js
// inifinite scrolling of content without extra wrappers
const { render, findDOMNode } = ReactDOMFiber
class App extends React.Component {
render() {
// wrap the root element with an Intersection Observer, exposing .observe for children
return <Intersection>
<div style={{ height: 200, overflow: 'auto' }}>
<Page offset={0} count={10} />
niwinz / leaflet.cljs
Created Jan 9, 2017 — forked from attentive/leaflet.cljs
Adapting React components in Rum
View leaflet.cljs
(ns project.leaflet
(:require-macros [project.macros :as m])
(:require [rum.core :as rum]
cljsjs.react-leaflet)) ;; js/ReactLeaflet
(m/adapt-react leaflet-map js/ReactLeaflet.Map)
(m/adapt-react tile-layer js/ReactLeaflet.TileLayer)
(m/adapt-react marker js/ReactLeaflet.Marker)
(m/adapt-react popup js/ReactLeaflet.Popup)
You can’t perform that action at this time.