Brool

brool.com · Personal blog · on HN since 2008

Brool is a personal programming blog covering Clojure, Python, Lisp implementations, org-mode and GTD, and other language experiments.

What HN saysHN commenters link it for pattern matching in Clojure, the tiniest Lisp in Python, and the Python versus OCaml essay, often as self-links.
16HN people shared it
7linked it in comments
9stories submitted
76story points
9 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Pattern Matching in Clojure
    4 people · 7 points · first shared 2009 · discussion on HN
  2. 2
    Automatic Proxy Creation in Clojure
    2 people · 33 points · first shared 2009 · 1 comments on HN
  3. 3
    The Tiniest Lisp (in Python)
    2 people · 3 points · first shared 2012 · discussion on HN
  4. 4
    Tokyo Cabinet API for Clojure
    1 people · 25 points · first shared 2009 · discussion on HN
  5. 5
    The Tiniest Lisp (in Python)
    1 people · 3 points · first shared 2008 · discussion on HN
  6. 6
    The Genius of Python, the Agony of Ocaml (2006)
    1 people · 2 points · first shared 2017 · discussion on HN
  7. 7
    Posting to Wordpress from Git
    1 people · 2 points · first shared 2010 · discussion on HN
  8. 8
    A Modest Proposal (PHP like templates for Clojure)
    1 people · 1 points · first shared 2010 · discussion on HN
  9. 9
    The genius of python the agony of ocaml
    1 people · first shared 2011
  10. 10
    Using org mode with gtd
    1 people · first shared 2015
  11. 11
    Using google authenticator for your website
    1 people · first shared 2011

What HN people wrote when they linked it

indymike · 2015-06-07
My experience with it was really different. I didn't read GTD first. I read this: http://www.brool.com/index.php/using-org-mode-with-gtd. Then I read this: http://members.optusnet.com.au/~charles57/GTD/orgmode.html. I thought, hey, this idea of having a trusted system and getting things I needed to do out of my brain and into the system might really help. I also loved the idea of putting my todos in contexts like "home" "office" "lunch" "driving". Those two simple things really made a huge difference for me...
lloeki · 2012-01-25
A similar endeavor in Python: http://www.brool.com/index.php/the-tiniest-lisp-in-python I find it quite entertaining to see how specific language features allow for differing patterns. It is much more apparent with such Lisp implementations than with your typical Hello, World app or hidden by some library or framework.
pangram · 2011-06-28
Python code to validate via Google authenticator (sorry, self link): http://www.brool.com/index.php/using-google-authenticator-for-your-web…
Zak · 2010-04-26
A little bit of googling gave me the sense that pattern matching in Mathematica is different from the pattern matching present in several functional languages. Please let me know how these Clojure features differ from that: Clojure has pattern matching for the arguments in a function definition similar to ML or Haskell. It's often used as a more verbose alternative to optional args, but it's more powerful fundamentally. Clojure has destructuring in binding forms like let, described here: http://clojure.org/special_forms Clojure has multimethods which let you pick the method to use based on an arbitrary dispatch function. There's a pattern matching macro that seems to be the beginning of a DSL for predicates: http://www.brool.com/index.php/pattern-matching-in-clojure
mquander · 2010-08-31
Re: the underlining -- no idea, just an instructional aid, I guess. Here's another example that might look "DSLy": http://www.brool.com/index.php/pattern-matching-in-clojure The pattern matching macro "match" is written entirely in Clojure, without any compiler tricks. I wish I could do the same in C#! (I'd need to have a bunch of cruft defining a predicate object with options for each match criterion.) All of these techniques boil down to how easy it is to do two things in a language: - To write DSL code in your structure of choice without having to cover it in a huge amount of syntax goop, e.g. the loop macro or the magic LINQ syntax. - To analyze and transform that DSL code programmatically, in a way that's more structured than simple string manipulation, so that you can do the right thing with it. C# 2.0 was very bad at both of these. C# 3.0 improved a lot, by adding lambda expressions for the first, and allowing you to analyze C# expressions as a syntax tree. But Clojure (& Lisp in general) is really good at both.
mahmud · 2009-08-24
This was posted here yesterday: http://www.brool.com/index.php/snippet-automatic-proxy-creation-in-clo… A neat hack to get something working quickly, but very unlispy. I can't even make sense of the AUTO-PROXY macro. A syntax barf mixed with a gratuitous breaking of LET. Also note that Rich Hickey decided to use the proxy design pattern to interop with Java, instead of doing all business with Java through FFIs; in a sense, Clojure's type system is embedded in Java. http://clojure.org/java_interop#toc25 This is a minor aesthetic nitpick from a concerned Lisper, mostly for selfish reasons. My thinking goes: "Today I have Common Lisp for my projects and I am happy with it. But tomorrow if I need Clojure, I hope to find it in a sane, Lispy world. I don't want to learn Java so please don't make me" ;-) For a far more alarmist polemic, albeit a satirical one, see this: http://jng.imagine27.com/articles/2009-08-19-011225_clojure_the_false_…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close