# Advent of Parens 2019

**URL:** https://clojureverse.org/t/advent-of-parens-2019/5159
**Category:** Blogs
**Created:** [December 1, 2019, 10:24pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159 "2019-12-01T22:24:56Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 1, 2019, 10:24pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/1 "2019-12-01T22:24:57Z")

</div>

This year during the advent I’ll be posting one post every day on the [Lambda Island blog](https://lambdaisland.com/blog). I don’t have comments on the blog, so I’m starting this thread in case people want to respond.

The first post just went up about a little bit of [Clojure vocab: to reify](https://lambdaisland.com/blog/2019-12-01-advent-of-parens-1-clojure-vocab-reify).

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 2, 2019, 3:25pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/2 "2019-12-02T15:25:13Z")

</div>

Post 2 is about one of my favorite tools: Netcat

> **[Advent 2019 part 2, Piping hot network sockets with Netcat](https://lambdaisland.com/blog/2019-12-02-advent-of-parens-2-netcat)**
>
> This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Part of what I want to do in this series is simply point...

Roundup of day 1

- Alexander Oloo [says he wants to do more beginner friendly tutorials](https://alexanderoloo.com/blog/2019/12/01/advent-of-parens.html)
- John Stevenson [kicks off with a long list of Clojure related materials to indulge in](https://practicalli.github.io/blog/posts/advent-of-parens-2019/)
- Erik Assum [writes about Problem Solving](http://slipset.github.io/posts/Problem-solving)
- Bobby Towers [talks about a twitter bot and off-handedly mentions a really cool mario inspired chiptune tracker](https://porkostomus.gitlab.io/posts-output/2019-12-01-advent-of-parens/)

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 3, 2019, 3:14pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/3 "2019-12-03T15:14:19Z")

</div>

Part 3 was fun to write, are you using `every-pred` and `some-fn` already?

> **[Advent 2019 part 3, \`every-pred\` and \`some-fn\`](https://lambdaisland.com/blog/2019-12-03-advent-of-parens-3-some-fn-every-pred)**
>
> This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Ah clojure.core , it’s like an all you can eat hot-pot....

On day 2:

- Bobby Towers introduced the [MECCA Music Platform](https://porkostomus.gitlab.io/)
- Alexander Oloo did a great post about the [5 Tools for Getting Started with Clojure](https://alexanderoloo.com/blog/2019/12/02/5-tools-for-getting-started-with-clojure.html)

---

<div class="post-metadata">

### Author: ![StanDyck](https://clojureverse.org/user_avatar/clojureverse.org/standyck/32/2549_2.png) [@StanDyck](https://clojureverse.org/u/StanDyck)
#### Post date: [December 4, 2019, 8:37pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/4 "2019-12-04T20:37:53Z")

</div>

Enjoying these so far. Also, thanks for introducing me to this forum. Looking forward to spending more time here.

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 4, 2019, 9:26pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/5 "2019-12-04T21:26:25Z")

</div>

Welcome to ClojureVerse @StanDyck! Make sure to introduce yourself in the “Introduce Yourself” thread.

Day 4 I wrote about [a little idiom that I like a lot](https://lambdaisland.com/blog/2019-12-04-advent-of-parens-4-a-useful-idiom), it has some `juxt` and some transducer and it is all around lovely.

Alexander [talks about how listening to podcasts](https://alexanderoloo.com/blog/2019/12/03/living-clojure.html) really helped him stay motivated, especially the ones with @gigasquid. We had a great [AMA with her](https://v2.clojureverse.org/t/im-carin-meier-ask-me-anything/1408) a while back right here on ClojureVerse. We should do one of those again!

Erik [implores us](http://slipset.github.io/posts/Christin-Gorman) to check out a talk by someone who really inspires him, Christin Gorman. I’m watching it right now!

Bobby [continues to showcase](https://porkostomus.gitlab.io/posts-output/2019-12-03-mecca-paint/) all the cool things he’s done with MECCA, and has some Klipse magic in the post to give you an inline mario inspired pixel art editor. Sadly it didn’t work in my browser but hopefully it does for you.

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 6, 2019, 12:42pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/6 "2019-12-06T12:42:23Z")

</div>

Yesterday I wrote about [Clojure In the Shell](https://lambdaisland.com/blog/2019-12-05-advent-of-parens-5-clojure-in-the-shell), pointing at a few projects I like: rep, jet, and babashka.

Today I wrote about [another small idiom](https://lambdaisland.com/blog/2019-12-06-advent-of-parens-6-a-small-idiom) I quite like, involving the underappreciated `comp` and set literals used as predicates.

Please do share what you think of these posts. I’ve seen some responses on reddit, but I think this is a much nicer place to have conversations. Just post in this thread, if a topic sparks discussion I can split it out into its own post.

Alexander wrote [about destructuring](https://alexanderoloo.com/blog/2019/12/05/destructuring-keys-in-clojure.html), in particular in the context of processing JSON, and Erik shared some of his thoughts about [Code over configuration](http://slipset.github.io/posts/Code-over-configuration). Bobby continues his series about [MECCA](https://github.com/porkostomus/mecca), showing how to [upload an image file with ClojureScript and extract](https://porkostomus.gitlab.io/posts-output/2019-12-05-mecca-pix/) the pixel data.

---

<div class="post-metadata">

### Author: ![mario](https://clojureverse.org/user_avatar/clojureverse.org/mario/32/2226_2.png) [@mario](https://clojureverse.org/u/mario)
#### Post date: [December 6, 2019, 7:51pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/7 "2019-12-06T19:51:04Z")

</div>

Just wanted to add to StanDyck up there: enjoyed all the posts so far!

If you ever find the time: I would love to read more about your workflow using `netcat` (or even a short screen cast / Lambdaisland episode / live coding session … but those are a lot of work I guess 🙂 )

> [@plexus](#):
>
> Day 4 I wrote about [a little idiom that I like a lot](https://lambdaisland.com/blog/2019-12-04-advent-of-parens-4-a-useful-idiom), it has some `juxt` and some transducer and it is all around lovely.

Transducer? What do I miss?

Again: Thanks for all the content!

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 11, 2019, 10:09am UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/8 "2019-12-11T10:09:48Z")

</div>

6 posts were split to a new topic: [To comp or not to comp](https://clojureverse.org/t/to-comp-or-not-to-comp/5195)

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 9, 2019, 3:28pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/11 "2019-12-09T15:28:23Z")

</div>

Time flies!

- Day 7 about some [unexpected uses of `doto`](https://lambdaisland.com/blog/2019-12-07-advent-of-parens-7-do-that-doto)
- Day 8 [more shell shenanigans](https://lambdaisland.com/blog/2019-12-08-advent-of-parens-8-everything-is-a-pipe), especially combining various networked things with shell tools
- Day 9 [an investigation of dynamic vars in ClojureScript](https://lambdaisland.com/blog/2019-12-09-advent-of-parens-9-dynamic-vars-clojurescript)

---

<div class="post-metadata">

### Author: ![AlexVPopov](https://clojureverse.org/user_avatar/clojureverse.org/alexvpopov/32/2085_2.png) [@AlexVPopov](https://clojureverse.org/u/AlexVPopov)
#### Post date: [December 11, 2019, 7:50am UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/15 "2019-12-11T07:50:44Z")

</div>

Hello. One day 9:

> **[Advent 2019 part 9, Dynamic Vars in ClojureScript](https://lambdaisland.com/blog/2019-12-09-advent-of-parens-9-dynamic-vars-clojurescript)**
>
> This post is part of Advent of Parens 2019 , my attempt to publish one blog post a day during the 24 days of the advent. Clojure has this great feature called Dynamic Vars, it...

I think the first two forms in the first code examples are missing a closing paren:

```auto
(defn hello [x]
  (str "hello " x)

(defn greetings []
  (str "greetings" foo)

```

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [December 11, 2019, 9:13am UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/16 "2019-12-11T09:13:56Z")

</div>

😱 🙀

Fixed.

_May your parens always be balanced._

---

<div class="post-metadata">

### Author: ![sogaiu](https://clojureverse.org/user_avatar/clojureverse.org/sogaiu/32/1489_2.png) [@sogaiu](https://clojureverse.org/u/sogaiu)
#### Post date: [December 11, 2019, 3:37pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/17 "2019-12-11T15:37:53Z")

</div>

[Integrant in Practice](https://lambdaisland.com/blog/2019-12-11-advent-of-parens-11-integrant-in-practice) looks like it could be quite helpful in preparing to understand the code in Mark Bastian’s conj talk this year.

Will be checking out clip and aero as well.

The `jit` tip to avoid `require` was also interesting.

Thanks!

---

<div class="post-metadata">

### Author: ![saikyun](https://clojureverse.org/user_avatar/clojureverse.org/saikyun/32/1958_2.png) [@saikyun](https://clojureverse.org/u/saikyun)
#### Post date: [December 12, 2019, 7:19am UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/18 "2019-12-12T07:19:34Z")

</div>

> [@plexus](#):
>
> Today I wrote about [another small idiom](https://lambdaisland.com/blog/2019-12-06-advent-of-parens-6-a-small-idiom) I quite like, involving the underappreciated `comp` and set literals used as predicates.

I really liked this part:

```auto
;; get all black or oolong teas
(filter (comp #{:black :oolong} :type) teas)
;; => ({:name "Dongding", :type :oolong}
;; {:name "Baozhong", :type :oolong}
;; {:name "Taiwan no. 18", :type :black}
;; {:name "Dayuling", :type :oolong})

;; get all non-oolong teas
(filter (comp (complement #{:oolong}) :type) teas)
;; => ({:name "Longjing", :type :green}
;; {:name "Taiwan no. 18", :type :black}
;; {:name "Biluochun", :type :green})

```

Showing how easy you can extend and get the other results is really cool. 🙂

---

<div class="post-metadata">

### Author: ![plexus](https://clojureverse.org/user_avatar/clojureverse.org/plexus/32/6_2.png) [@plexus](https://clojureverse.org/u/plexus)
#### Post date: [June 11, 2020, 7:19pm UTC](https://clojureverse.org/t/advent-of-parens-2019/5159/19 "2020-06-11T19:19:39Z")

</div>

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.
