Menu

blog

The CDR Fell Off

Last month my former colleague, Chouser, invited us to work through Lisp in Small Pieces (LiSP) as a group. Forty-six of us joined the group slack and are working through Chapter 1 exercises right now. Allegedly. Amazon says LiSP landed in my wish list mid-2015, so it’s high time I checked this one off. Coincidentally, 2015 is the last I worked on the LonoCloud team and wrote Clojure for a day job. The CDR Fell Off full article

An HAProxy, segfaulted, choose-your-own adventure

Originally published on Medium. Reverse proxy routers mysteriously segfault. Docker ignores your cries for a core dump. Stack Overflow quietly smirks at your solitary misfortune. You can retreat to defetal position and give up on your microservices dream, or you can pick up your gdb, face down Docker, and go to war. Production is war, and war is hell. — Bryan Cantrill, Dockercon 2015 backstory IBM 1401 core memory An HAProxy, segfaulted, choose-your-own adventure full article

Reactive Binary Clock, Hoplon Edition

Demo • Source Code Reactive programming is taking a ride on the Computer Science pop culture carousel, and attracts an impressive list of corporate sponsors: React (Facebook), Rx (Microsoft), RxJava (Netflix), Elm (Prezi). In the Clojure world, two libraries getting buzz with reactive cores are Om (built on React) and Hoplon. Om and a post by Fredrik Dyrkell inspired this binary clock demo in Hoplon. Hoplon Hoplon is ambitious, seeking to unify HTML page markup and the JavaScript environment. Reactive Binary Clock, Hoplon Edition full article

Guy Lewis Steele's Wordsplit, Redux

UPDATE: 05 September 2013 (later) Thanks to some prodding from Jozef Wagner, I reworked the solution to use Clojure reducers for the combine step. Speedup now nearly scales linearly with processor count. previously on 24 … Guy Lewis Steele’s Wordsplit and the Reducers - in which we applied GLS’ algorithm on clojure.core.reducers/fold and learned some limitations. We then used some trickery to batch-reduce text sections on fork/join and successfully split text in parallel. Guy Lewis Steele's Wordsplit, Redux full article

Guy Lewis Steele's Wordsplit and the Reducers

UPDATE: 05 September 2013 Guy Lewis Steele’s Wordsplit, Redux, in which we address the issue raised below. UPDATE: 04 September 2013 A reader pointed out an issue with the benchmark, namely some lazy seqs not being realized. I updated the code and post. Now the parallel speedup, while existing, is not as impressive as previously measured. The initial observations regarding the use of reducers for this problem are still relevant. Guy Lewis Steele's Wordsplit and the Reducers full article

quine in awk

Quines are self-printing programs. Here’s one for fun in awk (gnu awk). source quine_gawk.awk BEGIN{S="BEGIN{S=\"%s\";s=S;gsub(/\\\\/,\"\\\\\\\\\",s);gsub(/\\\"/,\"\\\\\\\"\",s);printf(S,s)}";s=S;gsub(/\\/,"\\\\",s);gsub(/\"/,"\\\"",s);printf(S,s)} usage awk -f quine_gawk.awk 2>/dev/null | diff quine_gawk.awk - quine in awk full article

Quick(er)sort, Parallelism, and Fork/Join in JDK7

Most men age twenty-six can boast few accomplishments. Sir Charles Antony Richard Hoare is not most men. At that age, C.A.R. Hoare invented Quicksort (pdf). Quicksort is typically more efficient than other comparison sorting algorithms in both auxiliary memory requirements and execution cycles. Yet, it shares the same common case time complexity limit of its peers - O(n*log n). Parallelism is the tool to effectively breach that barrier. As a binary tree sort, Quicksort is especially suited for parallelism since multiple threads of execution can work on sorting task parts without synchronized data access. Quick(er)sort, Parallelism, and Fork/Join in JDK7 full article


site menu

Back to top