Skip to content

Instantly share code, notes, and snippets.

(defrecord Closure [form env])
(defn closure?
[x]
(instance? Closure x))
(defn close-over
[form env]
(println "(close-over " form (str env ")"))
(Closure. form env))
(defmulti -exec (comp peek :control))
(defmethod -exec 'NIL
[{:keys [stack env control dump] :as registers}]
(-> registers
(update-in [:stack] conj nil)
(update-in [:control] pop)))
(defmethod -exec 'LDC
[{:keys [stack env control dump] :as registers}]
(defun current-font-height ()
(cdr (assoc :height (face-all-attributes 'default))))
(defun set-font-height! (height)
(set-face-attribute 'default nil :height height))
(defun increase-font-height ()
(interactive)
(set-font-height! (+ (current-font-height) 5)))
(defprotocol PointerTo
(pointer [val]))
(extend-protocol PointerTo
String
(pointer [s]
(Pointer/pointerToCString s))
clojure.lang.Seqable
(pointer [seq]
(defn server-handler []
(proxy [ChannelHandlerAdapter] []
(channelRead [^ChannelHandlerContext ctx ^ByteBuf msg]
(.write ctx msg)
(.flush ctx))
(exceptionCaught [^ChannelHandlerContext ctx ^Throwable cause]
(.printStackTrace cause)
(.close ctx))))
(defn handlers
(set! *warn-on-reflection* true)
(defn server-response
[packet]
(Unpooled/copiedBuffer "Hello, world!" CharsetUtil/UTF_8))
(defn packet-content
[^DatagramPacket packet]
(str (.content packet)))
(defn server-response
[^DatagramPacket packet]
(let [ret (packet-content packet)]
(Unpooled/copiedBuffer ret CharsetUtil/UTF_8)) )
(defn server-handler []
(proxy [SimpleChannelInboundHandler] []
(messageReceived [^ChannelHandlerContext ctx ^DatagramPacket packet]
(let [content (packet-content packet)
res (DatagramPacket. (server-response packet) (.sender packet))]
(defn ^String packet-content
[^DatagramPacket packet]
(.toString ^DefaultAddressedEnvelope (.content packet) CharsetUtil/UTF_8))
(defn protocol-multiplexer-channel-initializer
[]
(proxy [ChannelInitializer] []
(initChannel [^SocketChannel ch]
(-> (.pipeline ch)
))))
@aamedina
aamedina / gist:6f10ac467fa3c782f5ae
Created June 20, 2014 21:20
tre extraction functions
(defn parse-header
[archive]
(zipmap [:file-id
:version
:total-records
:records-offset
:records-compression-level
:records-deflated-size
:names-compression-level
:names-deflated-size
(let [flt (with-precision 6 (/ (bigdec n) 1))]
(if (> (.scale flt) 6)
(str (.setScale flt 6 java.math.RoundingMode/UP))
(str flt)))