Top all-time · #2141
Ruminations of a Programmer
Personal blog · debasishg.blogspot.comprogrammingbusiness
Ruminations of a Programmer is a personal blog at debasishg.blogspot.com about programming and business. Since 2007, 35 different Hacker News readers have linked it 61 times, most often “The Thrush Combinator in Scala”. The last post was in 2017, but the archive is still widely read.
Too few sampled comments (10) to say how often HN recommends it.?
Why HN links it
HN commenters link Debasish Ghosh's blog as background on Clojure and functional programming, especially the thrush combinator, lazy evaluation and immutable data structures. The links are cited as references rather than praised.
Summarised by Claude from a sample of 10 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
A programmer's blog - will deal with everything that relates to a programmer. Occasionally, it will contain some humour, some politics and some sport news.
Most-linked posts?
- The Thrush Combinator in Scala3 people · 3 mentions · first linked 2009-09-28
- Thrush in Clojure2 people · 3 mentions · first linked 2010-04-12
- Laziness in Clojure2 people · 2 mentions · first linked 2010-05-10
- Grokking Functional Data Structures2 people · 2 mentions · first linked 2010-05-31
What Hacker News says?
That's what languages with immutable data structures do. Internally they implement simple data structures (lists, arrays) with more complex ones not to get a performance hit. For example, they don't want to copy every byte every time they add or remove from a list. In ascending order of complexity http://theerlangelist.blogspot.com/2013/05/working-with-immu... http://concurrencyfreaks.blogspot.com/2013/10/immutable-…
Comment linking /2010/05/grokking-functional-data-structures.html
on “Ruby `reject!`”Submitted Grokking Functional Data Structures as a story · 41 points
HN discussionThat's basically what filter does in Clojure (and probably any other language with lazy evaluation): http://debasishg.blogspot.com/2010/05/laziness-in-clojure-so...
Comment linking /2010/05/laziness-in-clojure-some-thoughts.html
on “Understanding .NET 2015”Submitted Erlang as middleware as a story · 34 points
HN discussionThe Rosetta stone paper: http://math.ucr.edu/home/baez/rosetta.pdf also some preliminaries (books by Simmons, Awodey and Lawvere/Schanuel, spivak): http://arxiv.org/abs/1302.6946 http://www.reddit.com/r/math/comments/1eiyid/category_theory... http://blog.begriffs.com/2012/07/order-of-lambda.html http://debasishg.blogspot.com/2012/01/2011-year-that-was.htm...
Comment linking /2012/01/2011-year-that-was.html
on “Monads Made Difficult”Submitted PubSub messaging: scala, Redis , Akka Actors as a story · 20 points
HN discussionThey're called "thrush" operators, and they translate that code to this: (defn ping [] (:content (http/get "http://localhost:5123" :as :string))) (defn multi-ping [] (apply str (repeatedly 16 #(ping))) More examples: http://debasishg.blogspot.com/2010/04/thrush-in-clojure.html
Comment linking /2010/04/thrush-in-clojure.html
on “Clojure, Multi-core, AWS Cluster Compute & Lattes”Submitted Domain Models - Thinking differently in Scala & Clojure as a story · 19 points
HN discussionhttp://tech.puredanger.com/2007/09/18/spelunking/ http://debasishg.blogspot.com/2009/06/code-reading-for-fun-a... http://www.oreillynet.com/ruby/blog/2006/05/post.html (section about "making Mongrels stable and secure" http://news.ycombinator.com/item?id=483824 http://blog.rubybestpractices.com/posts/gregory/005-code-rea...
Comment linking /2009/06/code-reading-for-fun-and-profit.html
on “How to read code”Submitted Random thoughts on Clojure Protocols as a story · 12 points
HN discussionFWIW, several language communities call this "the Thrush combinator"[0]. Armed with that term, searching the web for background/info/theory on this topic will be easier. 0 - https://debasishg.blogspot.com/2009/09/thrush-combinator-in-...
Comment linking /2009/09/thrush-combinator-in-scala.html
on “The JavaScript Pipeline Operator”Submitted Refactoring into Scala Type Classes as a story · 11 points
HN discussionI just finished reading To Mock a Mockingbird (though I don't recall a formal definition) so I'll take a stab and leave it to others to correct me. Combinators are the basic building block of combinatorial logic. Simply, they are functions that permute, group, repeat and/or eliminate their arguments. E.g., The T (thrush using the bird naming convention) combinator takes two args and swaps their order: Txy = yx. The…
Comment linking /2009/09/thrush-combinator-in-scala.html
on “Mockingbirds and Simple Recursive Combinators in Ruby”Submitted Composing a domain workflow with statically checked invariants as a story · 8 points
HN discussionIn clojure, there's the thrush operators: -> and ->> user=> (->> 10 (+ 2) (* 5)) 60 user=> (* 5 (+ 2 10)) 60 http://debasishg.blogspot.com/2010/04/thrush-in-clojure.html
Comment linking /2010/04/thrush-in-clojure.html
on “Functional programming, APL and UNIX pipes”Submitted Static Typing gives you a head start, Tests help you finish as a story · 8 points
HN discussionExamples of successful Strong DSL (ie. standalone) are James Gosling's project for satellite control (I think it was), which he did so that users could make their own changes without bothering him (I doubt details are online - he mentioned it in an interview as a virtual machine that was a precursor to Java). Our own pg also had a DSL for the Yahoo Store (was viaweb), so users could customize it. From the docs, it l…
Comment linking /2008/04/external-dsls-made-easy-with-scala.html?showComment=1208530020000
on “Ask HN: Writing DSL in Python”Submitted Data 2.0 - Is your Application ready ? as a story · 7 points
HN discussionI used Erlang to build a mid-sized web service app (i.e. REST only, no user interface) which serves more than two million connections per day (sustained), and is deployed on a half dozen nodes across the Internet -- different ISPs (yeah, I'm a masochist). The app integrates the Mnesia database (with replication) and the Yaws web server (with my own extensions). On any given node there were between 1,000 and 3,000 pr…
Comment linking /2006/11/threadless-concurrency-on-jvm-aka-scala.html
on “Ask: Is anyone else using Erlang?”Submitted Thrush in Clojure as a story · 6 points
HN discussionSubmitted Composing Heterogeneous DSLs in Scala as a story · 5 points
HN discussionSubmitted A new way to think of Data Storage for your Enterprise Application as a story · 5 points
HN discussionSubmitted Functional Data Structures in a Persistent Setting as a story · 4 points
HN discussionSubmitted Laziness in Clojure as a story · 4 points
HN discussionSubmitted The Thrush Combinator in Scala as a story · 4 points
HN discussionSubmitted Choosing between Abstract Type Members and Existentials in Scala as a story · 4 points
HN discussionSubmitted Domain Modeling in Haskell - Combinators for Composition as a story · 3 points
HN discussionSubmitted Ruminations of a Programmer: Web programming at a higher level of abstraction as a story · 3 points
HN discussionSubmitted Euler Problem #18 and #67 using functional Scala as a story · 3 points
HN discussionSubmitted Designing Internal DSLs in Scala (2008) as a story · 2 points
HN discussion