Author of Clojure for the Brave and True Daniel Higginbotham with a clear breakdown of Datomic’s database philosophy and how it differs from its relational and NoSQL brethren.
todays bird

pixel skylines
let's talk about Bridgerton tea, my ask is open
trying on a metaphor
No title available
noise dept.

祝日 / Permanent Vacation

Discoholic 🪩
Keni
we're not kids anymore.

Kaledo Art
he wasn't even looking at me and he found me
One Nice Bug Per Day
Cosmic Funnies
"I'm Dorothy Gale from Kansas"
tumblr dot com

No title available

JBB: An Artblog!

No title available

blake kathryn

seen from United States
seen from United States
seen from United Kingdom

seen from Germany

seen from Malaysia

seen from Malaysia
seen from United States

seen from Germany

seen from United Kingdom
seen from Brazil

seen from United Kingdom
seen from United States

seen from United States

seen from Türkiye

seen from Brazil
seen from Germany
seen from United States
seen from United Kingdom
seen from United States
seen from United States
@unqb
Author of Clojure for the Brave and True Daniel Higginbotham with a clear breakdown of Datomic’s database philosophy and how it differs from its relational and NoSQL brethren.
Strftimer is a Ruby-based stftime generator. It's a useful way to generate your strftime directives from an example date or time.
Really slick web app à la Rubular by Edward Forshaw. Just enter your date/time in the desired format and strftimer spits out the correct format string for Ruby’s strftime method. Not sure how I formatted dates/times in Ruby before this.
In this TIx, I simulate rolling a loaded die in Ruby using Enumerable#max_by and an algorithm due to Efraimidis and Spirakis.
Nurullah Akkaya with a nice Clojure implementation of a priority-map-like data structure with lightning fast insertion and deletion at the expense of only keeping the first n entries sorted.
I’m eager to give this a try on my first real crack at programming in Clojure — a sliding puzzle solver. I’ve got an implementation using IDA* as the algorithm, Manhattan distance as the heuristic, and priority-map as the data structure.
Priority-map has some interesting design decisions that make conj, peek, and pop all O(log n). To be blunt, the inefficiencies in my solver have far more to do with my own failings and ignorance, but I’m curious to see what impact switching to a cheap list has on performance.
My goal is to get it to solve in times comparable to Julien Dramaix’s solution written in Java. At best, mine is a 100 times slower using the same algorithm and heuristic — it solves most random eight puzzles in under a second, but it is far too slow to tackle random fifteen puzzles. I’d like to develop an understanding of why this is and what I can do about it.
Would be nice to solve the Korf set and get a better handle on Clojure along the way, too. (-:
I love this idea of caching Ruby objects using Marshal and Redis written about here by Milovan Zogovic. Here’s a gist of benchmarks that shows it performs well against JSON and raw strings.
This can be really useful for, say, consuming the Twitter streaming API using the twitter gem.
Xah Lee with some poignant criticism of dot notation in object-oriented programming:
The issue with OOP's dot notation, is the disconnection of correspondence between syntax & semantics. The problem isn't the dot notation, but OOP's convention of dot notation. In the OOP's dot notation, given a.b.c(d), one cannot tell whether “a” is the data or “d” is the data.
As I continue to learn the strengths of functional programming, I'm always interested in better understanding what functional programmers view as OOP's weaknesses.
Here's a quick tip if you ever find yourself needing to examine the mobile version of a site.
Beginner-friendly tutorial for TDD in Ruby with minitest by Jumpstart Lab.
I've grown increasingly fond of minitest's simplicity. Adam Hawkins said it best:
rspec is a testing DSL. minitest is ruby.
The one thing that confused me when I first started using minitest was the default no message given message that it spits out on failing asserts and refutes. It took me a while before I realized that this message was a placeholder for an optional failure message that you can pass as a second parameter.
Today I learned that sometimes the answer is staring you right in the face — you just have to take the time to look.
John Hughes' 1998 paper in which he introduces us to arrows — a superset of monads.
I chanced upon arrows while trying to write a more "functional" Ruby one-liner to calculate frequency distributions and looking into how one would implement this in idiomatic Haskell for inspiration.
I rarely purchase physical copies of books anymore, but I'm always tempted every time I wander into a bookstore. Functional programming literature tends to be pretty light where I've been, but I've seen and thumbed through this book several times with interest.
To my delight, the contents are available on Github under a Creative Commons license. I love the cookbook style of posing a commonly encountered problem and then solving it idiomatically. It's a great way to dive deeper into a new language once you have syntax and semantics down.
I've grown increasingly fond of Clojure over the past month and spent a few days exploring the state of its web development tools. Although many of the components you'd expect to find for building a web application exist and seem fairly robust — an HTTP server (Ring), a routing library (Compojure), a DSL for working with relational databases (Korma), an HTML renderer (Hiccup), an authentication library (Friend) — I couldn't find a framework that ties these pieces together into a whole like Rails does in Ruby. Luminus seems to be the closest to filling that void.
Add SciRuby to the list of things that aren't dead yet. A nice summary of the contributions made by four students — Rajat Kapoor, Lahiru Lasandun, Magdalen Berns, and Naoki Nishida — during Google Summer of Code 2014.
Having built several API wrappers over the past year, I've become a huge fan of the Ruby HTTP client library Faraday. It was a natural first choice for honing my open source garden tending and issue triaging skills.
While reading through the issues (and even getting a tiny contribution of my own into Faraday), I came across this one filed recently by one of the maintainers Rick "technoweenie" Olson: Replacing Faraday with Hurley.
In it, Rick describes some of the major roadblocks of migrating Faraday v0.9 to an increasingly unlikely 1.0 release and justification for creating a new project.
Hurley is what Faraday v1.0 would have been. Being a separate library means it can be loaded alongside Faraday during a gentle code migration.
He ends with a request for comments:
I know this is a big change. It's not ideal, but I think better than letting Faraday rot in its current state.
If you use Faraday, I'd encourage you to read the issue for yourself and weigh in with your thoughts. Ultimately, this seems like the better path to take, but I'd love to hear some alternate viewpoints.
And, of course, check out the leading candidate for the next protector of lostisland and give it a whirl.
Nice set of (not necessarily Lisp) programming problems.
I came across this tweet by David Nolen about a month back that describes this as Clojure's equivalent to why's (poignant) Guide to Ruby. That immediately piqued my interest — I love w(p)GtR and have become increasingly interested in functional programming.
I've only made it through the first five sections, but I definitely feel the resemblance. Just like w(p)GtR, this isn't your typical introduction — so if you want a vanilla Clojure tutorial, you might want to look elsewhere. If, however, you are ready to cry, weep, and whimper sweetly for your next adventure into an incredible programming language, Daniel Higginbotham's Clojure for the Brave and True is for you. Onion and chunky bacon not included.
This is a small tip for those who are OCD like me and can't stand typos or poor naming while working in a local git branch.