This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-04-30
Channels
- # aleph (12)
- # beginners (23)
- # boot (12)
- # cider (40)
- # cljs-dev (8)
- # cljsrn (20)
- # clojars (1)
- # clojure (122)
- # clojure-canada (2)
- # clojure-dev (21)
- # clojure-gamedev (2)
- # clojure-italy (3)
- # clojure-nl (12)
- # clojure-norway (1)
- # clojure-sanfrancisco (3)
- # clojure-spec (59)
- # clojure-uk (114)
- # clojurescript (50)
- # clojurex (1)
- # cursive (2)
- # datascript (2)
- # datomic (26)
- # emacs (5)
- # fulcro (19)
- # garden (1)
- # hoplon (54)
- # leiningen (42)
- # luminus (14)
- # off-topic (24)
- # om (5)
- # onyx (7)
- # re-frame (2)
- # reagent (31)
- # reitit (3)
- # ring-swagger (39)
- # shadow-cljs (8)
- # sql (3)
- # tools-deps (13)
Morning
morrrrrning
mornings!
@yogidevbear please let us know how the book is and what you felt was really strong. I'm sure you can squeeze a book review / blog out of it 😉
@dominicm will do. Looking forward to a lot of the chapters in the book
Yes it did 🙂
Introduction
Who This Book Is For
What’s in This Book
How to Read This Book
Notation Conventions
Web Resources and Feedback
Downloading Sample Code
Getting Started
Simplicity and Power in Action
Clojure Coding Quick Start
Navigating Clojure Libraries
Wrapping Up
Exploring Clojure excerpt
Reading Clojure
Functions
Vars, Bindings, and Namespaces
Metadata
Calling Java
Comments
Flow Control
Where’s My for Loop?
Wrapping Up
Unifying Data with Sequences
Everything Is a Sequence
Using the Sequence Library
Lazy and Infinite Sequences
Clojure Makes Java Seq-able
Calling Structure-Specific Functions
Wrapping Up
Functional Programming excerpt
Functional Programming Concepts
How to Be Lazy
Lazier Than Lazy
Recursion Revisited
Eager Transformations
Wrapping Up
Specifications
Defining Specs
Validating Data
Validating Functions
Generative Function Testing excerpt
Wrapping Up
State and Concurrency
Concurrency, Parallelism, and Locking
Refs and Software Transactional Memory
Use Atoms for Uncoordinated, Synchronous Updates
Use Agents for Asynchronous Updates
Managing Per-Thread State with Vars
A Clojure Snake
Wrapping Up
Protocols and Datatypes
Programming to Abstractions
Interfaces
Protocols
Datatypes
Records
reify
Wrapping Up
Macros
When to Use Macros
Writing a Control Flow Macro
Making Macros Simpler
Taxonomy of Macros
Wrapping Up
Multimethods
Living Without Multimethods
Defining Multimethods
Moving Beyond Simple Dispatch
Creating Ad Hoc Taxonomies
When Should I Use Multimethods?
Wrapping Up
Java Interop
Creating Java Objects in Clojure
Calling Clojure From Java
Exception Handling
Optimizing for Performance
A Real-World Example
Wrapping Up
Building an Application
Getting Started
Developing the Game Loop
Representing Progress
Implementing Players
Interactive Play
Documenting and Testing Your Game
Farewell
I may have got a little mixed up with Clojure Applied also, but I'm no longer certain.
2 two-hour meetings punctuated by a two hour meeting
inception for one team, planning for another, then planning again for the first
in the third one now
the charmed life of working in a legacy large retailer
You need a 2 hour meeting to plan the meeting right? If you don't plan the meeting how will anything get done?
... how can you go into a planning meeting all unprepared? surely you need to prepare for that in a pre-pre-meeting?
at least then we won't run out of memory
tbh I hate people coming unprepared into meetings. there’s always a lot of faff that people could do on their own, and this stretches the meeting
rather than send out materials, everyone reads them, preps their own feedback, then meet only for the purpose of collating it
you can tell it’s an inefficient meeting when there are 6-10 people but only like 2 talk, and the rest activate once in the meeting when it’s time to vote or something (if at that)
(But I’m fully aware that it’s a pipe dream - nobody reads meeting prep materials because there’s no bad consequences to doing so. Similar to documentation.)
I mean its a good point to make, can you get people to prepare for meetings in the right way
True, a lot depends on the context of meetings 🙂 I used to do Toastmasters though, and I find myself missing that efficiency. You had people responsible for timing, everyone knew to prepare themselves, no faff (even though it was a storytelling/entertainment focused group).
Ah i was really interested in going to toastmasters, thats the public speaking thing isnt it?
It’s known for public speaking, but it’s also amazing for leadership skills (which I think people don’t realise)
the first half consists of: - “table topics”: a fun challenge, someone gives you a starting topic and you blab whatever comes to mind for 2 minutes - prepared speeches: usually about 3, 5-15 minutes each the second half consists of: - evaluations of speeches: each speaker has an assigned evaluator who gives them feedback - evaluations of table topics (one person) - meta: evaluations of evaluators, how smoothly meeting was led etc
It’s the evaluation/organisation part that helps you build leadership skills; you find out how to best encourage people, how to analyse performance, how not to overwhelm with feedback, how to ensure things go smoothly
You get workbooks for each “skill tree” (public speaking and leadership separately), which have explanatory essays as well as projects in them to complete. Once you complete the basics, you can specialise (there is a “Technical presentations” workbook, but also one for entertainment, storytelling, etc)
If you’re interested, I’d advise coming as a guest (you can come to whichever groups are close to you, as many times as you like, no joining necessary) and seeing which group you mesh with. Every group is going to feel different since people work towards different goals, and you will learn best from people who are more experienced in whatever you want to work towards.
Oh, and they’re big on being welcoming and helping each other out. (My old group was especially good, that’s why I joined.) There is always a person responsible for welcoming guests. When you come as a guest someone will be asked to join you for the duration of the meeting and explain things to you. New members get to ask an experienced member to be their mentor, challenge them and help them get better.
</ad> I feel like a marketer now XD but I recommend it honestly, because it helped me in multiple ways.
We had a temporary space since Feb, but it was not "home", in that we knew we were there for a limited amount of time.
AWS sucks. Edge cases to so many things. Health checks only work in N. Virginia if you want to create alarms is my annoyance today. I now have to re-deploy a tree of things to N. Virginia so I can alert if the site goes down.
I would tend to agree that AWS get a lot of things wrong… but have you tried the alternatives?
The problem is that AWS offers consolidated billing. If there was consolidated billing across "Cloud infrastructure", pingdom, DNS providers, etc. then this would be less of a problem
AWS does DNS don’t they?
https://stackoverflow.com/questions/46080884/multiple-file-provisioner-in-json-terraform terraform requires that you generate JSON with repeated keys in order to have multi-region AWS deployments
IIRC we use wormly for that
https://www.terraform.io/docs/providers/type/monitor-index.html looks like StatusCake is the only one which doesn't have a horrible website
I wonder if having a good website in any way correlates with being a reliable service…
I used LogEntries in a previous job and we weren’t much impressed by it. That was a couple of years ago though.
A lot of companies want to go "AWS only" for convenience, consolidated billing being one of those conveniences.
we’re the opposite - we don’t want to be tied to any one provider
my god... Java 8's map and filter functions suck... I build up a long one with the help form Eclipse and all the various things it suggests... and when I press enter
at the end it decides it is invalid syntax... but can't tell me what is wrong.
mind you.... might be more Eclipse fault then the streaming stuff... but it still feel convoluted.
when I was using Java 8 streams we found that splitting the ops each onto it’s own line really helped readbility - and we also found that there were cases where you were better off not using it
We were all using IntelliJ rather than Eclipse though - I don’t know what Eclipses lambda support is like.
There were certainly some places where it seemed quite nice - but it’s nothing like using a first-class functional language I’m afraid.
Heavens, yes - I found Java 8 streams painful to use. Lots of little incantations that needed to be included to deal with boxing/unboxing, and a plethora of class-specific "Collectors". .Net's LINQ seems like a model of clarity in comparison, let alone Clojure.
@rhinocratic many Java APIs suffer from the fact that eight types of primitive are not Objects
it’s a great big scar across the language as far as I’m concerned
(which makes Clojure’s ability to operate on primitive arrays as if they were ordinary sequences seem all the more welcome)
Indeed - Java's not short of scars, but that one's particularly disfiguring. It was my primary language for about 10 years, and I used to love it. I returned to it after a 6-year sojourn in .Net-land (during which time I discovered Clojure), and now find that I can hardly bear to look at it. 🙁
#smugthativeavoidedjavathusfar
Similar, except that all Java classes inherit from Object (however indirectly).
@alex.lynham One day you'll need to do a Java bootstrap into Clojure
(ahhh programming, where words get redefined XD I meant philosophical inheritance. but yes)
Sorry that I misconstrued - I did wonder if I had done so! Yes, in spirit Java's part of the whole C / Algol lineage.
hey all, I wondered if anybody knew of any opportunities to get involved in volunteering as a clojure developer? I'm thinking something along the lines of donatecode, but Clojure(Script) specific