This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-06-01
Channels
- # announcements (7)
- # beginners (30)
- # boot (6)
- # calva (24)
- # cider (8)
- # clj-kondo (8)
- # cljs-dev (16)
- # cljsrn (8)
- # clojure (60)
- # clojure-italy (19)
- # clojure-mexico (6)
- # clojure-nlp (2)
- # clojure-uk (11)
- # clojurescript (36)
- # datomic (11)
- # hoplon (1)
- # juxt (2)
- # kaocha (1)
- # keechma (13)
- # nrepl (1)
- # off-topic (51)
- # reagent (7)
- # rewrite-clj (17)
- # robots (7)
- # shadow-cljs (2)
- # sql (4)
- # testing (1)
- # tools-deps (11)
- # vim (12)
Any recommendation for online backup of your personal computer data? I already use a couple of git repositories for my dotfiles, documents, etc... But I'd like to have whole snapshots of my ~/home
(minus big binary files like photos or ISOs)
tarsnap looks interesting. I'll check into that some more. I use backblaze
and am fairly happy
I also use backblaze. On my linux box, I set up a scheduled job to run backups to backblaze b2 with duplicity (https://help.backblaze.com/hc/en-us/articles/115001518354-How-to-configure-Backblaze-B2-with-Duplicity-on-Linux). Costs me less than a dollar a month.
I’ve been using Dropbox + symlinks which works with my workflow and general lack of caring about 90% of my files
Not really what you asked for but since you are already used to a git workflow, I can't recommend git-annex (https://git-annex.branchable.com/) enough. It's really easy to keep several backups up-to-date and manageable.
How does that differ from Datomic Ions?
I was thinking something like this but Datomic https://www.elephantsql.com/
Could be. I don’t know anything about Datomic licensing. But if that’s a problem there’s now also Crux from Juxt which is open source
In this case for Crux it's probably fine, but open source doesn't mean you can just use the code to make profit. In the case of Datomic you need some kind of deal with Cognitect.
I’ve been waiting for something like that to pop up. I’d definitely be interested as a customer
On the other hand.. It’s not probably not a big deal to spin up my own Datomic cluster with the provided CloudFormation. However I’d be interested to pay for “maintenance free” service. I have no clue how much maintenance there is involved in running a Datomic cluster on AWS though..?
Yeah I know at work, we have lots of use cases for Datomic Cloud but the operational parts don't jive with our IT org
I know this comes up semi-frequently, but what’s a good introduction to functional programming for moderate skeptics? My audience of typically of the mind of “I’m too busy grinding out code to learn anything foreign”.
This is what caught my initial attention a few years ago. He mentions Rich Hickey talks at some point and one thing led to another and here I am today https://www.youtube.com/watch?v=7Zlp9rKHGD4
I had coworker that was working on something and i felt they were stressed out so i asked if we could take a look. They had about 100 lines of ruby. they described the problem and i was perplexed so i went and looked at the issue myself to get a more concert idea. After staring at the ceiling for about an hour i wrote 1-4 line of code that was just calling filter. They couldn't accept this solved the problem, even when i produced test cases for them and asked them to provide a counter example. They ended up with 150 lines of ruby i'm sure has a bug in it, but was too hard read and i'm sure wasn't reviewed beyond my attempt. There is a lesson there somewhere, i just dont know what.
I suppose, if management rewards "busyness" then it doesn't matter what approach you take?
Its hard to know the value of something tell you know what it is?
I also like that talk by Martin, i think its also really helpful that he is/was considered a celebratory in the OO world. If your audience doesn't know him, it might be less meaningful.
@U6N4HSMFW btw, in hindsight, don't you find that Uncle Bob's rationale for functional programming mostly misses the point? I recall his main argument was like "the multi-core revolution now makes immutability relevant" when truly manipulating and propagating information is what makes it relevant.
@U8QTB156K I guess what got me into it was feeling too slow in Java, which fueled my PL curiosity until I found RH talks.
The Value of Values is a really good motivation of functional programming IMO, but maybe it only preaches to the converted
Also maybe "Clojure, made simple", but that's more about Clojure than FP
@U06GS6P1N as far as I remember, what got me interested was the observation that OO-style state management leads to more complex programs and FP/immutability could avoid a lot of that. Back in 2014 there was definitely more buzzing around the multi-core revolution in general.
My background was that I had learned to program Java at the university and I really thought that was the “industry best practice” but the more I did it the more I felt like it was too difficult to do properly. This went on for a few years. Then I wrote one bigger project using Python and I discovered that with some discipline even procedural Python was in my opinion more readable and maintainable than enterprisey Java code. And a lot more fun. So I wasn’t satisfied with OO and that’s probably the biggest reason why Bob’s talk and FP clicked. I don’t know how to convince people who really love (or think they love) OO. I would probably try not to emphasise the FP vs. OO dichotomy itself but start from the question how could we write simple and beautiful programs that get the job done with less code.
When I’m asked about FP, I usually first admit I also didn’t get the point of it for a long time and had to try it myself to understand the value of it. And then my biggest selling point is: with immutability half of my brain that was previously occupied by thinking “what if this variable changes” is now free to do other, more interesting things.
Not related to this thread, but it seems to me we’ve put yet another layer between us and the processors/cores. Instead of deploying big monoliths on the beefiest multi core servers (and explicitly handling concurrency), we deploy small micro services into kubernetes running on said beefy multi cores and hope that eventual consistency will save the day.
In my experience, learning clojure has made me a much better OO developer. So, if their excuse for not learning FP is that they’re too busy grinding out code, maybe you can try to sell it from the perspective that FP will help them write OO code faster and more efficiently?
A few months ago I published an article to express how I discovered FP and why I am excited about it. https://eccentric-j.com/blog/3-functional-programming-experience.html I tried to be respectful towards OOP so as not to make people defensive. I would appreciate any feedback for how it can be improved to reach resistant people like @U8QTB156K describes.
Pulling back a bit from "selling FP", I tend to have more success selling an abstraction one level higher up from the one the buyer is currently working at. In my story (above) the buyer was using a 1. using an imperative for loop and 2. not seeing how some simple defaults to his function could save a lot of state management. Missing those two details introduced enough complexity to let things spin out of control. So in this case, introducing FP is as simple as going from a slightly lower level concept (for loop) to filter. It's not a hard sell, i have found, mostly that people not under a lot of stress can handle that. It almost because hard for them to not start doing it because they lose nothing (they still have their for loops). Each time, as you gain a better reputation, introduce more general concepts. Build up enough of those small changes and eventual ppl are doing FP without an official proclamation. Its critical that you keep up with the regular demands of the job though.
I wonder if resistant people feel about FP material as I do with game reviews. I can’t read or watch them anymore, they are just not valuable to me. Reviewers tend to converge on the same jaded personality types nitpicking a lot of technical problems trying to build a reputation on how comically cynical their reviews are. Instead, I find a lets play from a group I enjoy. There is something about the context of seeing people choose to play a game and trying to enjoy it I find a lot more genuine and informative. Maybe we need more content focused around what we enjoy experientially with FP rather than trying to definitively take down OOP?
^^^ read your audience. Building on that, a good number of people just want to get home and be with their kids, play games, go on dates. For them, you need to show them how what your selling gets them that. For a lot of people, their has to be a safe social community around the ideas as well, no matter how rational the argument they will need to see ppl above them accept it before they will. I would probably recommend targeting "influencers" first. Be warned though, once these people adopt your ideas, their not yours anymore. You tend to have very little control over how they interpret your ideas.
Wow I have experienced all of the above. Included the "not yours anymore". And yes, sometimes it feels good to be recognized 😀
This is solid 💯 thread. Thanks all!
I really like Li Haoyi's post "What's Functional Programming All About?" It's a very practical introduction that focuses on the parts of it that matter most for how applications are designed in practice and avoids ten-dollar words from category theory. http://www.lihaoyi.com/post/WhatsFunctionalProgrammingAllAbout.html
For me, I think even saying FP or OO like those are single identifiable things is the start of a bad discussion. Pretty parallel to discussing political right vs left - how wide are the possible meanings? But I’m unusually whiny when it comes to words and their meaning...
@UCW3QKWKT good point! I usually like to think of FP vs OOP as "perspectives, not characteristics" - therefore helpful but insufficient for drawing relevant conclusions about a language or an architecture. The advice I generally give people is "don't believe you can draw a useful comparison if you haven't actually tried both alternatives" and "don't listen to someone who think they can" (which includes most of the opinions voiced on the internet).
I agree, In generally, I would just explain the ideas you think will help the audiance and steer away from labels. I tend to find those with the time and energy to learn, will get the new concepts, those that don't, usually are struggling with the current set of tools they are using. Maybe they are over stressed, lacking sleep and exercise. As odd as it sounds, I think building a culture around health is more probably a foundational step. I finally finished "why we sleep" and after some careful thought, have decided to never trade sleep for anything. An easy choice to make, now that I fully understand what I'm giving up.