1. 1

    Perhaps there are too regular to apply to the 2nd item requirements, but who needs karma anyway?

    Strides – habit tracking. $5 for the pro version, which enables cloud sync amongst other things.

    Enpass – password management. Desktop versions are free, mobile costs $10.

    Scanbot Pro – for going paperless. Excellent scanning tool and OCR tool.

    Things – personal todo list.

    SongShift – playlist synchronisation between different music streaming services. Trained my Apple Music account in few weeks to.an acceptable level from Spotify input thanks to this.

    I’m missing a good meditation app. I’ve tried Calm and Headspace, but they’re too featureful for me. I’d just want something that gives me a time and good selection of background noise/music for the duration of the session.

    1. 2

      I’m missing a good meditation app

      Try breathe meditation timer. All it does is lets you set a timer and set some background music. I’ve been happy with it so far.

      1. 1

        Check out Insight Timer, although I’ve never used it to meditate with sound.

      1. 6

        What about it? There are countless Haskell books, why should I care about this one, what makes it good or interesting?

        1. 10

          It’s a new project.

          1. 1

            One of the authors is our own @bitemyapp

            ETA: No, it’s not.

            1. 9

              Nope, that’s Chris Martin. I am Chris Allen.

              I did: http://haskellbook.com (still working on getting final and print version done)

              Currently doing: https://lorepub.com/ https://lorepub.com/product/cookbook http://lambdaconf.us/training/lcusc/practitioners-haskell.html

              1. 6

                Just wanna say: I love the lorepub and Haskell almanac design.

                1. 4

                  You made the designer I’ve worked with for Haskell Book, Lorepub, and the Almanac very happy :)

                2. 4

                  My mistake!

                  Your haskell book is great, BTW.

                  1. 2

                    Thank you!

                  2. 1

                    Is there a way to subscribe to updates when Haskell Almanac is available?

                    1. 1

                      Other than my Twitter? Not yet.

                  3. 6

                    I thought that too, but it’s actually a different Chris who doesn’t look entirely different from bitemyapp. The other author, Julie Moronuki, is the one that worked on Haskell book with bitemyapp.

                1. 6

                  Currently four categories of free-time activities:

                  • A relaxing combination of running and meditating (run 4 mi, meditate 30 min, run 4 mi).
                  • Damaging my right arm by playing Stepmania one-handed.
                  • Slowly reconnecting with friends whom I have lost touch with (more effort than I expected).
                  • Leisure reading (half an excuse to slowly sip wine while I do so).

                  I also cook 2 meals a day and double-dip my time by listening to podcasts. I see others mention podcasts so I suppose that counts as well?

                  1. 3

                    Interesting run-meditate-run, how did you come up with that? Do you meditate outside at the halfway point, then resume running?

                    1. 3

                      I do meditate outside.

                      I used to run 20 miles per week for a few years (about 7 mi, 3 days per week). Then I had a rough year where I got injured, stressed and fell out of running entirely, which was a vicious cycle adding to stress, because running relaxes me.

                      As I got back into running over the last 4-5 months, my endurance was down quite a bit. While building my distance back up, I started resting at an approximate halfway point on my route, conveniently under an outdoor art instillation. One day I took the time to just meditate for a whole half hour before the other half of my jog and it felt great! So I kept doing it.

                      The second half of my run feels very different from the first half. I won’t speculate too wildly, but I’m sure that thirty minutes of focusing deeply on my oxygen intake is related in some way.

                  1. 4

                    This should make picking up Elixir as an Erlang developer very easy, and makes interoperability between Erlang and Elixir pretty simple.

                    I’ve found this wholly untrue. Elixir has moved away from the semantics and style that Erlang imposes to the point where going from one to another is an exercise in frustration and pain. I, as somebody who knows Erlang, wouldn’t give it up for what Elixir offers.

                    1. 2

                      Thanks for pointing this out! I don’t have a lot of experience with Erlang, so I wrote that from an uninformed perspective. Would you mind pointing out some concrete examples of things that caused you frustration and pain?

                      1. 2

                        The easiest one to illustrate:


                        Trying to call an Erlang function that takes a string.

                        Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
                        
                        Eshell V7.3  (abort with ^G)
                        1> os:cmd("uname").
                        "Darwin\n"
                        

                        This breaks in elixir because their “strings” are binaries.

                        Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
                        
                        Interactive Elixir (1.2.4) - press Ctrl+C to exit (type h() ENTER for help)
                        iex(1)> :os.cmd("uname")
                        ** (FunctionClauseError) no function clause matching in :os.validate/1
                            (kernel) os.erl:384: :os.validate("uname")
                            (kernel) os.erl:214: :os.cmd/1
                        iex(1)>
                        

                        You can make Erlang express the same error by doing:

                        2> os:cmd(<<"uname">>).
                        ** exception error: no function clause matching os:validate(<<"uname">>) (os.erl, line 384)
                             in function  os:cmd/1 (os.erl, line 214)
                        

                        And you can make it work by doing:

                        iex(1)> :os.cmd('uname')
                        'Darwin\n'
                        

                        1. 1

                          Ah, problems with strings vs bistrings make a ton of sense. I can see why they wanted bitstrings to be the default in Elixir, though.

                          1. 1

                            Which is fine, but makes translating hard. Elixir basically asks you to either constantly remember this fact, or forget erlang entirely when working with it.

                      2. 1

                        Would you mind pointing to a few more examples (besides having to remember one fact about strings) to help me understand your experience of interop simplicity as being “wholly untrue” and “an exercise in frustration and pain”? (FWIW I’m a full-time Elixir dev learning Erlang more deeply, love both languages and have had zero problems with interop so far.)

                      1. 2

                        This looks wonderful. Planning to tinker with it over the weekend. Anyone here used it that can comment?

                        1. 3

                          I tested in a couple weeks ago, it’s really nice. I think it’s best suited to learners that don’t need libraries, but that’s no small thing. The “playground” thing is like a persistent REPL that doesn’t go away on reload and continually shows you feedback - it’s nice even if you’re comfortable with Haskell and using it at work like I am.

                          Throw in some Stack integration and people will start using it for their day to day work too.

                          It’s probably the closest thing I’ve seen to a hybrid of IDE and REPL workflows that actually works well. Rather than relegating a small, sad REPL to the bottom of the window, the playground is something even better (IMO).

                          I’ll be checking with testers of our book to see if they’ve gotten the app because I’d like to hear what they think about working through the book’s examples and exercises with this app. I believe it’d make things easier and faster.