<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">

<channel>
<title>alvinalexander.com</title>
<link>https://alvinalexander.com/</link>
<description>Free Scala, Java, Linux, and macOS/iOS tutorials</description>
<item>
    <title>Functional Programming, Simplified (a best-selling FP book)</title>
    <link>https://alvinalexander.com/scala/functional-programming-simplified-book/</link>
    <description>Functional Programming, Simplified -- currently 5-star rated on Gumroad.com, 4.5-star rated on Amazon, and one of the all-time best-selling books on functional programming -- is currently on sale in three formats (prices shown in USD): PDF Format $10 on Gumroad Paperback Book $39.99 on Amazon Kindle eBook $9.99 on Amazon</description>
</item>
        
<item>
    <title>Book: Learn Functional Programming The Fast Way! (FP for OOP developers)</title>
    <link>https://alvinalexander.com/scala/learn-functional-programming-book/</link>
    <description>NOV., 2022: My new book, Learn Functional Programming The Fast Way, is currently an Amazon Java and functional programming #1 new release. The book is now available in three formats: PDF Format $10 on Gumroad.com Paperback $30 on Amazon Kindle $10 on Amazon</description>
</item>
        
<item>
    <title>Learn Scala 3 The Fast Way (book)</title>
    <link>https://alvinalexander.com/scala/learn-scala-3-the-fast-way-book/</link>
    <description>I've been slowly working on a series of new Scala programming books, and today I'm proud to announce the first of these: Starting today you can buy the PDF version of Learn Scala 3 The Fast Way! for just ten dollars -- $10 (USD) -- at this Gumroad.com URL.</description>
</item>
        
<item>
    <title>Learning Recursion: A free book, by Alvin Alexander</title>
    <link>https://alvinalexander.com/scala/learning-recursion-free-booklet/</link>
    <description>As a brief note today, I just released the first version of a new, free book/booklet that I've titled Learning Recursion.</description>
</item>
        
<item>
    <title>Functional programming books, comparison</title>
    <link>https://alvinalexander.com/photos/functional-programming-books-comparison-2023/</link>
    <description>Since I've written two functional programming (FP) books, I thought it might help to provide a comparison of them. The short story is that both FP books have &quot;limited technical jargon,&quot; and as shown, The Little FP Book essentially has one purpose, which is to help Java/Kotlin/OOP developers learn functional programming as fast as possible, using a technique that I &quot;discovered&quot; over the last few years. Conversely, The Big FP Book covers many topics in great detail. If you're interested in more details, here are links to the two books: Functional Programming, Simplified (the Big FP Book) Learn Functional Programming Without Fear (the Little FP Book)</description>
</item>
        
<item>
    <title>For OOP developers: The smallest, simplest functional programming book</title>
    <link>https://alvinalexander.com/photos/for-oop-developers-simplest-functional-programming-book/</link>
    <description>Some of the computer programming books on the right side of this image are amazing, and I would never discourage anyone from reading the great ones. But if you're an object-oriented programming (OOP) developer who wants to start understanding functional programming (FP) over a weekend or a few nights of reading, that's the goal of the new little book on the left: Learn Functional Programming The Fast Way. It takes you from Java/OOP to functional programming in the simplest possible step-by-step learning process. FP for Java/Kotlin/OOP developers I taught Java and OOP for many years, and have used other OOP languages like Kotlin, Python, and Flutter/Dart, so I understand both OOP and FP, and I think that helped to make this a simple book for learning FP. I also wrote the FP book in the middle -- Functional Programming, Simplified -- and it's about three times larger than the little book on the left. I based it on most of the FP books on the right, and it goes into many details that the book on the left doesn't go into. It's big, but it's still easier than reading all the books on the right.</description>
</item>
        
<item>
    <title>Scala: What do “effect” and “effectful” mean in functional programming?</title>
    <link>https://alvinalexander.com/scala/what-effects-effectful-mean-in-functional-programming/</link>
    <description>When you get started with functional programming (FP) a common question you'll have is, &quot;What is an effect in functional programming?&quot; You'll hear advanced functional programmers use the words effects and effectful, but it can be hard to find a definition of what these terms mean. Effects are related to monads (but don't worry) A first step in the process of understanding effects is to say that they're related to monads, so you have to know just a wee bit about monads to understand effects. But fear not, this is surprisingly simple. As I write in my book, Functional Programming, Simplified, a slight simplification is to say that in Scala, a monad is any class that implements the map and flatMap methods. Because of the way Scala for-expressions work, implementing those two methods lets instances of that class be chained together in for-expressions (i.e., for/yield expressions).</description>
</item>
        
<item>
    <title>A ZIO 2 cheatsheet</title>
    <link>https://alvinalexander.com/scala/zio-cheatsheet/</link>
    <description>April, 2024 Update: This ZIO cheatsheet is currently being updated to ZIO 2.x, but it's still a work in progress. If you want a good cheat sheet right now, see this one on github. I'm creating my own as I learn ZIO and read the ZIOnomicon book. During the learning process I find that it's much better to create your own by hand, that way you get something that's meaningful to you. Note that almost all of these initial examples come from the ZIOnomicon book and the video that I link to later. The ZIO Scaladoc Here's a link to the ZIO Scaladoc. That's for the companion object, and this link is for the companion trait.</description>
</item>
        
<item>
    <title>PsyPost article: Breath-based meditation shifts the brain into a deeply relaxed state</title>
    <link>https://alvinalexander.com/misc/breath-based-meditation-shifts-brain-relaxed-state-brain-waves/</link>
    <description>From this article on how &quot;Breath-based meditation shifts the brain into a deeply relaxed state&quot;: &quot;We found that rhythmic breathing practice like Sudarshan Kriya Yoga allows an easier access to a deep state of meditation,&quot; Tripathi told PsyPost. &quot;EEG from participants were recorded before, during and after they were practicing the technique. EEG records brain activity which can be quantified into different rhythms like alpha, beta, theta, delta and gamma.&quot; &quot;What we found was that the breathing activated the theta rhythms in the brain which allowed a practitioner to easily transition to a relaxed state with heightened theta-delta activity. This activity is somewhere between fully awake (alpha/beta dominant) to fully asleep (slow waves and delta dominant), suggesting that the practitioner is in a relaxed yet aware state which traditional texts of meditation have referred to as Turiya (fourth state of consciousness, the others being sleeping, awake and dreaming).&quot;</description>
</item>
        
<item>
    <title>Every moment you aren’t being mindful, you’re feeding your ego</title>
    <link>https://alvinalexander.com/misc/every-moment-not-mindful-youre-feeding-ego-cage/</link>
    <description>One thing you learn when you really become dedicated to mindfulness practice is that every moment you aren't being mindful, you're feeding your ego. Any thought about the past or future solidifies this &quot;ego-cage&quot; you have built up in your mind. (Note: I saw the term ego-cage in a book, but I don't remember which one.)</description>
</item>
        
<item>
    <title>My “Back To Now” mindfulness reminder app is available on iPhone/iPad devices</title>
    <link>https://alvinalexander.com/photos/back-to-now-mindfulness-reminders-app-store-ios-iphone/</link>
    <description>Dateline August, 2025: My &quot;Back To Now&quot; mindfulness reminder app is once again available on iPhone/iPad devices.</description>
</item>
        
<item>
    <title>Interview question: Who are your heroes, or people who have motivated you (Bernie Glassman)</title>
    <link>https://alvinalexander.com/photos/heroes-role-models-bernie-glassman-zen-master-dude/</link>
    <description>Another good interview question of late was something like, &quot;Who are some of your heroes, or people who have motivated you?&quot; I forgot to mention Bernie Glassman, from whom I learned that you don't have to go off and meditate in the mountains to become enlightened. You can learn more about him here on Wikipedia if you're interested. And here's a link to The Dude and the Zen Master on Amazon.</description>
</item>
        
<item>
    <title>The ZIO 2 “mental model”</title>
    <link>https://alvinalexander.com/scala/zio-2-mental-model-and-best-practices/</link>
    <description>As I work more with ZIO 2, I also find myself thinking a lot about the ZIO 2 mental model, by which I partially mean &quot;a way of thinking about your code&quot; and also &quot;ZIO 2 best practices.&quot; Here are my initial notes. Also, I hope that most of this code is mine, but several snippets are from other sources that I don't remember, including the official ZIO 2 docs.</description>
</item>
        
<item>
    <title>ZIO 2: Error-Handling Decision Tree (Flowchart)</title>
    <link>https://alvinalexander.com/scala/zio-2-error-handling-decision-tree-flowchart/</link>
    <description>This page provides a comprehensive overview of error-handling strategies in ZIO 2. My hope is that you can use this decision tree to determine good/best approaches for handling errors in your ZIO effects. Each section includes a use case (question/answer), brief explanation, and ZIO 2 example. As a brief note, I have ensured that the following examples compile, but at some point I need to take the time to double-check my work.</description>
</item>
        
<item>
    <title>Sometimes you need to talk about things (even when you think you don’t need to)</title>
    <link>https://alvinalexander.com/misc/sometimes-you-need-to-talk-about-things-even-when-you-dont-think-so/</link>
    <description>I haven't interviewed for a job in many years, and yesterday I had my first interview in 14 years. I thought I could just pick up where I left off many years ago without any practice, but boy was I wrong. I *did* want to talk about my health saga from 2012-2019 because it's an important part of who I am today, but I talked about it too much. All I wanted to say was that (a) I got very sick and went unconscious many times before Doctor #26 found that I was born with a rare blood disease, (b) everything is fine now, and (c) the important part of that saga is that I gained much more empathy for people going through things, and I also learned that I wanted to be more of service to other people. But I blabbed on about the health stuff for too long, and I regret that. If they offer me a second interview after that, they will be very kind, indeed. (I also could have added something useful like, &quot;If you're constantly itchy, have hives, or frequently get sick, feel free to ask me any questions you want later.&quot;) In my mind I thought that because I had written about this stuff many times before that I didn't need to talk about it, but in retrospect I realized that it would have helped to talk about this stuff with other people before any interviews. I also thought that I had conquered a lot of things with my ego, but this was another kick-in-the-butt reminder of where I really am.</description>
</item>
        
<item>
    <title>Applications I’ve written</title>
    <link>https://alvinalexander.com/apps/</link>
    <description>This is a list of some of the applications I (Alvin Alexander) have written. I've included links to places where you can find more information about each app or application. Just Be Just Be is a mindfulness reminder application for Android. Being an Android app, I wrote it in Java. You can learn more about it at JustBe.cc.</description>
</item>
        
<item>
    <title>“I slept and dreamt that life was joy”</title>
    <link>https://alvinalexander.com/misc/i-slept-dreamt-life-was-joy-acted-service-joy-quote/</link>
    <description>&quot;I slept and dreamt that life was joy. I awoke and saw that life was service. I acted and behold, service was joy.&quot; ~ Rabindranath Tagore</description>
</item>
        
<item>
    <title>A garbage dumpster in Seward, Alaska</title>
    <link>https://alvinalexander.com/photos/garbage-dumpster-seward-alaska/</link>
    <description>My favorite garbage dumpster in Seward, Alaska: &quot;Look for peace, look for love, look for good things, look for moose.&quot;</description>
</item>
        
<item>
    <title>iTunes AppleScript examples (command examples)</title>
    <link>https://alvinalexander.com/apple/itunes-applescript-examples-scripts-mac-reference/</link>
    <description>AppleScript FAQ: Can you share some iTunes/Music AppleScript examples (example scripts)? As I've been working a lot with macOS speech recognition software lately, AppleScript has once again become important in my life. I've been writing a lot of small AppleScript scripts -- including AppleScript iTunes scripts -- and I thought I'd share snippets of code from those iTunes scripts here for anyone else they might benefit. 2021 Update: Wherever it says &quot;iTunes&quot; below, substitute the word &quot;Music&quot;, as Apple has renamed the iTunes application to Music.</description>
</item>
        
<item>
    <title>Mac startup/login programs (startup items)</title>
    <link>https://alvinalexander.com/mac-os-x/mac-startup-programs-items-applications-how-to/</link>
    <description>Mac startup/login programs FAQ: How do I set up a Mac application to automatically start up when I log in? If you have a normal Mac application that you want to setup as a Mac startup program -- also called a Mac &quot;startup item&quot; -- the process is fairly simple, and I'll demonstrate the approach in this article. For other Mac applications, like a command line program, the approach is different, and I'll cover that in a separate article.</description>
</item>
        
</channel>
</rss>
