Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: kousen/java_upgrade
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: 66-24/functional_java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 14 commits
  • 22 files changed
  • 2 contributors

Commits on Aug 13, 2025

  1. ✨, 📝, ⬆️ feat(project): setup development environment with direnv and…

    … add notes
    
    The project now uses direnv to manage the development environment.  A `.envrc` file has been added to configure environment variables and manage dependencies.  The `.gitignore` file has been updated to ignore direnv and other development-related files.  Notes on functional programming in Java and JVM troubleshooting have been added to `Notes.md`. The Java version has been upgraded to 21.  A `devenv.nix` file has been added to manage the Nix development environment.  A `devenv.yaml` file has been added to configure the development environment.  The `functional_programming_in_java.pdf` file has been added.  The `build.gradle` file has been updated to use Java 21.
    funsimplenimble committed Aug 13, 2025
    Configuration menu
    Copy the full SHA
    8ae7d4c View commit details
    Browse the repository at this point in the history
  2. 📝 (Notes.md): Add notes on Nix-based development environment setup

    The commit adds a section to the Notes.md file detailing the steps for setting up a Nix-based development environment.  This improves reproducibility and consistency across different development machines.
    funsimplenimble committed Aug 13, 2025
    Configuration menu
    Copy the full SHA
    eb6710d View commit details
    Browse the repository at this point in the history
  3. ✨ Add watch-pull.sh script to automate branch pull

    This commit introduces a new script, `watch-pull.sh`, that
    automates the process of periodically pulling changes from a
    selected remote branch.  The script uses `fzf` for
    interactive branch selection and allows the user to specify
    the update interval.  This improves developer workflow by
    providing a convenient way to monitor and update specific
    remote branches.
    funsimplenimble committed Aug 13, 2025
    Configuration menu
    Copy the full SHA
    dcb91bc View commit details
    Browse the repository at this point in the history
  4. 📝 ✨ Add notes on AI assist, data types, latency, and prefixes

    The commit adds several sections to the Notes.md file:
    
    - AI Assist: Links to Google's Gemini Code Assist documentation.
    - In Bits and Bytes: A table summarizing the sizes of common data types in Java.
    - Latency Numbers Every Programmer Should Know: A table listing latency numbers for various operations.
    - Powers of 10 (Time Units) and Powers of 2 (Common Data Units): Tables summarizing common time and data units and their abbreviations.
    - Decimal vs Binary Prefixes: A table comparing decimal and binary prefixes and highlighting the percentage difference.
    
    These additions provide valuable reference information for future learning and development.
    funsimplenimble committed Aug 13, 2025
    Configuration menu
    Copy the full SHA
    c1b25e9 View commit details
    Browse the repository at this point in the history
  5. ✅ ✨ (FunctionalInterfacesTest.java): Add tests for Supplier and Doubl…

    …eSupplier functional interfaces
    
    The commit adds several new test cases demonstrating the use of `Supplier` and `DoubleSupplier` functional interfaces with lambda expressions and method references.  This enhances the test suite's coverage of functional programming concepts in Java.
    funsimplenimble committed Aug 13, 2025
    Configuration menu
    Copy the full SHA
    fb0a4be View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2025

  1. ✨ Add CurryingExample.java: implement currying in Java using lambda e…

    …xpressions
    
    The `CurryingExample.java` file demonstrates the concept of currying in Java using lambda expressions.  It shows how to define a curried function, apply arguments one by one, and perform partial application to create specialized functions.  This example enhances understanding of functional programming concepts.
    funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    a6de8ac View commit details
    Browse the repository at this point in the history
  2. 📝 ✨ (Notes.md, CurryingExample.java): Add Vavr.io notes and improve c…

    …urrying example code formatting
    
    The `Notes.md` file has been updated to include notes on Vavr.io, a functional programming library for Java.  The `CurryingExample.java` file's code formatting has been improved for better readability, making the curried function definition clearer.
    funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    8d64563 View commit details
    Browse the repository at this point in the history
  3. Refactor FileFilterExercises tests for clarity and completeness

    - Consolidated static imports for assertions
    - Implemented missing TODOs with directory filters using lambdas, anonymous inner class, and block lambdas
    - Added assertions for directories count where applicable
    - Minor improvements to test logging with `System.out.println`
    kousen authored and funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    4a0271d View commit details
    Browse the repository at this point in the history
  4. Implement remaining TODOs in LazyEvaluationExercises and `FileFilte…

    …rExercises`
    
    - Replaced commented-out TODOs with proper implementations in `LazyEvaluationExercises`
    - Added filename and directory filters using lambdas and method references in `FileFilterExercises`
    - Included assertions for file/directory counts and .java extensions
    kousen authored and funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    95e00d9 View commit details
    Browse the repository at this point in the history
  5. Modernize UsePerson with Java 17 features and suppress warnings

    - Add `@SuppressWarnings("Convert2MethodRef")` to avoid inspection noise
    - Replace `collect(Collectors.toList())` with `.toList()`
    - Adjust regex in `split` method for consistency with whitespace handling
    - Simplify `LinkedList` instantiation using diamond operator
    - Use `parallelStream` for potential performance improvements
    kousen authored and funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    9174f1a View commit details
    Browse the repository at this point in the history
  6. Refactor FlatMapDemo and CompanyEmployee with modern Java constructs

    - Use `isEmpty()` instead of `size() == 0` in `FlatMapDemo`
    - Migrate `CompanyEmployee` to a `record` for brevity and immutability
    - Adjust `Employee` interface methods to align with record fields
    - Add `mapForEach` test method in `FileFilterExercises` to explore map iteration techniques
    - Update `CompanyEmployeeTest` to test the new record structure
    kousen authored and funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    fcdda0c View commit details
    Browse the repository at this point in the history
  7. Add tests for stream reduce operations in ReduceTest

    - Implemented various scenarios for `reduce`, such as summing numbers, string concatenation, counting characters, and filtering with reduction
    - Included tests for `IntStream.sum()` and optional handling with `orElse`
    kousen authored and funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    ffa0d7d View commit details
    Browse the repository at this point in the history
  8. ✨ Add haskell_gaming.png

    Added a new image file, `haskell_gaming.png`, likely for use as a logo or graphic within the project.  This enhances the project's visual appeal or provides necessary assets.
    funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    cba2028 View commit details
    Browse the repository at this point in the history
  9. 📝 (Notes.md): Add links to various resources and update notes

    ✨ (Notes.md): Add new sections on JSpecify, OCaml, and Haskell
    
    ✨ (Notes.md): Add a new section on Streams, detailing types of operations and their purposes.
    
    ✨ (img.png): Add image for Haskell gaming section
    
    The commit adds several new links to resources related to Java, functional programming, and other programming languages.  It also introduces new sections on JSpecify, OCaml, Haskell, and Streams, providing more detailed information and examples.  Finally, an image related to Haskell gaming is added to enhance the notes.
    funsimplenimble committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    36b26ac View commit details
    Browse the repository at this point in the history
Loading