@ndj

A recovering over-thinker. One half of @clojuredesign.

Los Angeles, CA
Joined July 2008
The right editor to use when learning #clojure is whatever editor you're most familiar with.
3
6
We're back! Huge thanks to @enigma2a for working with me on this awesome project. I'm so glad we get to continue our discussion on pure data models. It's such a unique approach to core functionality, and we have more to come.
State over time? Insight from data? In our latest episode, we look at two types of models; one that will follow you through time, and one that helps you make sense of collections. #clojure #functional #podcast clojuredesign.club/episode/1…
1
4
112
Nate Jones ⚽️ retweeted
clojurians unite! how do you answer this one?
unavailable
9
2
14
1,689
Clojure team: What’s a compile time?
I’m talking to an OCaml team: “Argh, our compile times are so slow, it takes 15 seconds to compile the project from scratch!” I’m talking to a C++ team: “Wow, our compile times are so fast, it takes only 55 minutes to compile the project from scratch! It used to be 8 hours.”
2
2
23
1,118
Nate Jones ⚽️ retweeted
I had so much fun watching Christoph Neumann's (@enigma2a) Clojure/conj talk on his work enabling live sports and e-sports programming. I haven't watched e-sports much, but I did watch the documentary of Google DeepMind’s AlphaStar, where it played some of the best StarCraft II players in the world. The event was so brilliantly done, and was hosted by professional commentators, who helped explain and give context to what we were observing. It was so good that I made my kids watch it, and I’m not ashamed to say that it actually made me cry! (As did watching the documentary on Google DeepMind AlphaGo — holy cow. Move 37 FTW!) (I'll include the links to those videos at the bottom of this tweet.) Christoph gave an amazing talk on how the code he wrote enables these types of live e-sports broadcasts of some amazing gaming brands: - Heroes of the Storm (including the draft tool to facilitate team hero selection in real-time, as well as enabling the commentators to do their job, too) - Hearthstone (including tools to analyze and display the game state live on-air) - Overwatch (including integrating live game statistics for the Overwatch League) He also describes some of the work he did to help brands such as Blizzard Entertainment (home of StarCraft II, which was obviously the game that AlphaStar competed in), NFL, Overwatch League, Heroes of the Storm, Activision, Call of Duty League, Hearthstone: Heroes of Warcraft, NEP, Twitch, Wimbledon Championships. One reason I was nerding out so much during Christoph’s talk was because he had hinted at so many of these things in his awesome Functional Design in Clojure podcast (@clojuredesign), but never really elaborated on what he actually did. I’ve listened to every one of their 100+ episodes that he did with Nate Jones, @ndj, and always hoped they would go into more detail about what they’ve done in e-sports. Wish granted! It’s such a cool talk. Among other things, he talks about the high stakes involved in live events — mistakes are seen by everyone, and could actually jeapordize events where hundreds, thousands, or even millions of people are watching! Christoph: "You have hours of boredom followed by seconds of terror." Ha! Everything he's built is done in Clojure, whether it's a event in front of an audience, broadcast over the airwaves, or streamed to a channel. "My hope is that by the end of this talk, you're going to have an idea of what's involved in pulling off a live sports production, and then how to build a system using it." Yes!!! 1/n Source: youtube.com/watch?v=kIhY4VDa… Also: the amazing video of StarCraft II AlphaStar live broadcast: youtube.com/watch?v=cUTMhmVh…
2
7
34
3,515
Nate Jones ⚽️ retweeted
Replying to @enigma2a
@enigma2a's clojure conj talk just dropped on yt! Far and away my favorite talk of the conj. link:
3
2
7
261
Happy Birthday Babashka! This wonderful tool enables me to bring Clojure's data-oriented simplicity to my terminal scripts. I no longer have to bash my head against the wall trying to remember how to write a conditional or loop in a shell script. #babashka #clojure
Today is #babashka's 5th birthday! To celebrate, share your favorite bb scripts, tips, tricks, projects with the #babashka and #clojure hashtag, star the repo if you haven't done so or RT this tweet! Thanks for using bb! github.com/babashka/babashka
1
2
17
948
But #babashka isn't just #clojure on the command line. It includes the babaska.* libraries that dramatically ease working with files and processes (and other things). Clojure has always flourished as a hosted language, and Babashka fits into it's host (the terminal) just as well.
2
97
What are the building blocks of pure data models? How does each part contribute to robust, understandable code? In our latest episode, we look at pure data models we've created and see what they have in common. #clojure #functional #podcast clojuredesign.club/episode/1…
2
5
445
What code is the essence of an application? Is it concentrated together or spread all over the codebase? In our latest episode, we find a clear and pure heart in our application, unclouded by side effects. #clojure #functional #podcast clojuredesign.club/episode/1…
2
1
8
611
Frontend codebases a dizzying maze? Code, markup, images, media, events, bundling, frameworks, browser APIs, oh my! In our latest episode, we turn our attention to the frontend, and our eyes burn from the complexity. #clojure #functional #podcast clojuredesign.club/episode/1…
1
1
16
2,122
Have you felt lost in a new codebase? How can you make sense of it quickly? What clues show how it all fits together? In our latest episode, we look for a suitable place to dig into the code and find an entry point. #clojure #functional #podcast clojuredesign.club/episode/1…
2
1
15
1,114
Have you joined a project and felt frustrated with the docs or tests? Was it hard to figure out the structure and flow? Worse yet, it's your old code! Listen to our new series about setting your future self up for success! #clojure #functional #podcast clojuredesign.club/episode/1…
1
1
8
655
That game was somewhat memorable too. 😉⚽️
For just the third time in club history and first since March 31, 2018 (vs. LAFC), the @LAGalaxy produced a comeback victory after they trailed by two or more goals when entering the 70th minute of a match.
125
How do you get from a blank editor to a battle-tested application? Why is the Clojure way different than other languages? In our series finale, we highlight the highlights of the Sportify! series. #clojure #functional #podcast clojuredesign.club/episode/1…
2
1
8
904
Nate Jones ⚽️ retweeted
Programming can create so much wasted effort. Even worse, computers are exacting, so extra code is often slow to write! @ndj and I created this series to help you save time and make better software using a bottom-up method of coding in #Clojure. Check it out!
How do you get from a blank editor to a battle-tested application? Why is the Clojure way different than other languages? In our series finale, we highlight the highlights of the Sportify! series. #clojure #functional #podcast clojuredesign.club/episode/1…
1
4
306
How can you make software extremely reliable? What makes it testable, inspectable, and predictable? In our latest episode, we loop back to our new approach and find more, and less, than we expected! #clojure #functional #podcast clojuredesign.club/episode/1…
4
1
14
606
Nate Jones ⚽️ retweeted
Do you love waking up in the middle of the night to troubleshoot a bug? I don't either. That's why @ndj and I recorded this. Learn a functional programming pattern for making extremely reliable software.
How can you make software extremely reliable? What makes it testable, inspectable, and predictable? In our latest episode, we loop back to our new approach and find more, and less, than we expected! #clojure #functional #podcast clojuredesign.club/episode/1…
1
1
2
118
Have you ever tried to handle one more case only to end up refactoring your entire approach? In our latest episode, we throw our code in a loop, and it throws us for a loop. #clojure #functional #podcast clojuredesign.club/episode/1…
3
10
360
Why does it take longer to gather information about an error than actually fix it? Can we do better than println debugging? In our latest episode, our downloads fail at random, but our dead program won't give us any answers. #clojure #functional #podcast clojuredesign.club/episode/1…
2
1
9
368
Have you ever spent more time scaffolding a test than writing it? Must I/O-laden code be awful to test? Can simple logic be tested simply? In our latest episode, we need to test our logic, but the I/O is getting in the way. #clojure #functional #podcast clojuredesign.club/episode/1…
1
1
7
449