Fork me on GitHub

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)

Frank Henard15:06:27

tarsnap looks interesting. I'll check into that some more. I use backblaze

Frank Henard15:06:37

and am fairly happy


We use backblaze at work, we're happy with it too 👍


I also use backblaze. On my linux box, I set up a scheduled job to run backups to backblaze b2 with duplicity ( 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


B2 is also just about the cheapest storage around.


Not really what you asked for but since you are already used to a git workflow, I can't recommend git-annex ( enough. It's really easy to keep several backups up-to-date and manageable.


Hosted Datomic-as-a-Service: bad idea? worth trying?


How does that differ from Datomic Ions?


Depends who's hosting it I guess. Might be cheaper than AWS but how reliable is it?


I was thinking something like this but Datomic


I'm worried that it might be against the license for datomic


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.


It’s not allowed by the T&Cs of Datomic afaik


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


It would actually be better to use a hosted service


So your current company could be your first customer? 😉


Well I only know how to solve problems I come across at work 😆


If you started to provide hosted Datomic I mean

Daniel Hines17:06:33

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”.


Let me know if you find anything, I think I am on the same boat

👍 4

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

Drew Verlee22:06:32

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.

😱 4
Drew Verlee22:06:40

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?

Drew Verlee22:06:56

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.


There’s a nice recap of the video in the top comment.


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.

👍 4

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?

💯 12

A few months ago I published an article to express how I discovered FP and why I am excited about it. 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.

Drew Verlee16:06:44

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?

Drew Verlee16:06:07

^^^ 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 😀

Daniel Hines02:06:29

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.


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).

Drew Verlee16:06:44

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.