Illegal Argument

Illegal Argument

By Mark DerricuttNewsTechnologyTech News
Download on the App Store

Illegal Argument episodes

  • 170: The UI is Broken!
    Illegal Argument Episode 170

    Mark and Greg emerge from their 2020/2021 Christmas/New Year breaks, and temporary Level 3 lock down to break their silence, attempt to remember how to podcast, and further the rumor that we only record an episode on the eve of a new Java release.

    Table of Contents
    • 0:44 Holiday Periods
    • 1:27 Java 16 Release
    • 2:35 Standalone Nashorn
    • 3:18 Native Script
    • 6:28 R.I.P. Chrome
    • 12:51 Module Systems
    • 14:37 setProtected(true)
    • 20:42 Java 16 Release (again)
    • 25:00 Incubation vs Preview Features
    • 37:56 Pattern Matching FTW
    • 43:30 Equality
    • 44:57 Inline Types and Classes
    • 50:34 The Need For Namespaces
    • 55:10 Bintray Closing Down
    • 59:27 R.I.P. netbeans.org
    • 1:07:08 SOA in C/C++
    • 1:14:18 Python and Rust Crypto
    • 1:16:11 Autotools
    • 1:18:34 Rust backend for GCC
    Java Related
    • Why Namespacing Matters in Public Open Source Repositories

    • Major Changes to Clojars - Verified Groups / Namespaces

    • Java 16 - March 16 Release

      • A Discussion on jpackage
      • OpenJDK · GitHub
      • JEP 11: Incubator Modules
      • JEP 338: Vector API (Incubator)
    Miscellaneous
    • Is Google Locking Down Chrome to Resist the Rise of Chromium Based Browsers? - It's FOSS News

    • Apple Card disabled my iCloud, App Store, and Apple ID accounts

    Modules, Releases, and Builds
    • Java Accessible Objects and Reflection

    • Understanding Java Modules

    • Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter

    • RIP netbeans.org

    • Modules, monoliths, and microservices

    • New dependency on Rust causes headaches for Python Crypto lib and distributions

    CPP
    • Not the SOA you think
    1 hr 22 min
  • Don't Tweet Non Truths
    • OpenJDK · GitHub

    • Plans for optimal performance: why CircleCI is changing our pricing model - CircleCI

    • Standalone Nashorn is coming for Java 15+

    • Jbang

    • Property-based Testing in Java: Jqwik - a JUnit 5 Test Engine - My Not So Private Tech Life

      • ABNF for TLDS

        tldlabel = ALPHA *61(ldh) ld ldh = ld / "-" ld = ALPHA / DIGIT ALPHA = %x41-5A / %x61-7A ; A-Z / a-z DIGIT = %x30-39 ; 0-9
    • HUMBLE BOOK BUNDLE: JAVA PROGRAMMING & MORE BY O'REILLY

    • GitHub - baidu/braft: An industrial-grade C++ implementation of RAFT consensus algorithm based on brpc, widely used inside Baidu to build highly-available distributed systems.

    • Leaving OCaml

    • The Birth of Unix with Brian Kernighan - CoRecursive Podcast

    • Rust Programming

      • Rust: Structuring and handling errors in 2020 - nick.groenen.me

      • rust-blog/too-many-brainfuck-compilers.md at master · pretzelhammer/rust-blog · GitHub

      • Using #[derive(Error)]

    • Announcing .NET 5.0 | .NET Blog

    • F# 5 | Visual Studio Toolbox | Channel 9

    • Nix Package Management

      • Nixology - YouTube

      • A tour of Nix

      • Install Nix on macOS Catalina](https://link.medium.com/EAuytTg7s7)

    • Modern IDEs are magic. Why are so many coders still using Vim and Emacs? - Stack Overflow Blog

    1 hr 55 min
  • The Greg Cast

    Welcome to The Greg Cast

    • The Virtual World Podcast
    • On The Metal Podcast
    • JavaZone 2020
    • Ron Pressler: Scalable Harmonious Concurrency for the Java Platform
    • Virtual Threads
    • Async / Await
    • Why Continuations are Coming to Java
    • Java Platform Retention
    • Graal Based Frameworks
    • JavaZone: Building a Distribution Pipeline
    • Lua: Splitting a String
    • Oracle Developer Live
    • Java has moved to Github
    • Java 15 is here, Nashorn is not
    • instanceof Pattern Matching
    • System.Logger
    • Why The C Language Will Never Stop You Making Mistakes
    • Microsoft Control Flow Guard now in LLVM/Rust
    • Microsoft Core C++ Checker gains Rust like checks
    • Fuzz 2020 Report
    • Wither Reason
    • Why Jonny Won't Upgrade

    Full links and more available .

    1 hr 18 min
  • The Joy of Java

    After a lockdown/reopen period we're back with another argument.

    WARNING: The recording dropped out half way thru, and… creative edits were made. Your ears have been warned.

    • Java 15 Ramp Down
    • Second preview of Records
    • Greg doesn't care for new JDKs whereas Mark wants to treat the JDK as "just a library/dependency"
    • Microservices
    • Reuse or no-reuse?
    • Both Hellidon and Micronaut recently released 2.0 releases of their modern JVM web stacks
    • HTTP Structured Headers
    • Roy Fieldings Misappropriated REST Dissertation
    • A toy JVM in AWK
    • Perl 7 Annoucement
    • A Tribute to Bill Shannon – A Giant of the Java Ecosystem

    Full links are available on https://raindrop.io/collection/12086308

    1 hr 6 min
  • Technical Writing

    What's this? Another Illegal Argument episode already? And so close to the last one - it seems the shift to working from home and remote recording has already showed a payoff.

    During the last episode, I'd had it in my mind to discuss the need to improve our documentation, and general communication skills that developers, and development teams often overlook. More so now that many organisations are moving into distributed, remote teams - many of which may never return to normal "office life".

    With this in mind, I thought I'd make use of our new remote recording facilities and bring on both Tim McNamara (Vice-President of NZOSS, Canonical Guy, Author of Rust In Action) and Josh Addison (Technical Writer at MYOB, Game Developer, Conspiracy Podcaster) to lend their voices to our argument.

    On this episode we cover (or planned, as always - things got sidetracked):

    Java News
    • JEP 384: Records (Second Preview)
    • Why #Java record getters have no 'get' prefix?
    • Call for Discussion: New Project: Leyden (static compilation for Java - the return of GCJ?)
    Technical Writing
    • Why Writing Software Design Documents Matters
    • Things Markdown got Wrong
    • Writing Test Plans
    • Architecture Design Records
    • How to write better tickets/commit messages/emails etc. etc.
    • Tooling?
      • Asciidoc
      • ProWritingAid, Grammarly
      • Dropbox Paper
      • Vale - cross platform command line style checker
    • Question-led docs, e.g. cookbook type
    • Doctests are better than you think
    • Knowing your audience - differences between "documentation" and "book writing"
    • Rust In Action
    • WriteTheDocs Slack

    Full links to everything discussed and planned to discuss are found over on my raindrop bookmarks.

    1 hr 8 min
  • Illegal Argument - Episode 165

    Welcome to the "Locked Down Dependencies" remote recorded using Squadcast.fm whilst both Greg and I are stuck in a national COVID-19 lockdown.

    Full links to topics discussed can be found in the shared bookmark folder on Raindrop, but during tonights episode we discuss:

    • How lockdown is affecting us
    • The Release of Java 14
    • Beyond Java 8 and the Java Module System - a discussion over two recent streams/videos from Nicolai Parlog on new features in Java 9-14, and issues with the module system.
    • Maven Dependency Pop Quiz
    • Managing Technical Debt at scale, and designing large scale systems.
    • Improving communication among teams in a work-from-home/remote-work world.
    • Guides to writing technical documentation, test plans, better emails and bug reports.
    1 hr 11 min
  • Episode 164 - Moments before Isolation

    Welcome to the first episode of 2020 - recorded just before all of Coronavirus Mania and then promptly the editing and publishing got unfortunately thrown to the sidelines for a week.

    This week (ha) Greg and I discuss the upcoming Java 14 release, along with C++20, and the granddaddy of functional programming - Miranda.

    • Multiline String literals with Java Text Blocks
    • Preview APIs in the Java Platform
    • Java 14 Arrives with a Host of New Features
    • JDK 14: The new features in Java 14
    • Stephen Colebourne's Tweet Thread on JDK Modules
    • Miranda (forerunner to Haskell) open sourced
    • C++20 IS FEATURE COMPLETE; HERE'S WHAT CHANGES ARE COMING
    • Project LightSpeed: Rewriting the Messenger codebase for a faster, smaller, and simpler messaging app
    1 hr
  • 163: The Continuation
    Topics
    1. Fibre's are dead - long live "Virtual Threads"
    2. Undelimited continuations are not functions
    3. R2DBC 0.8.0 goes GA - Reactive database clients for Java
    4. RUST: Shipping a compiler every 6 weeks
      1. User reported stable regressions
      2. Bisecting Rust Compiler Regressions with cargo-bisect-rustc
    5. Microsoft: We're creating a new Rust-based programming language for secure coding
      1. https://www.reddit.com/r/rust/comments/e5040i/microsoft_creating_new_rustbased_safe_language/
      2. https://www.reddit.com/r/rust/comments/e5kjyr/more_info_on_micrsoft_moving_away_from_rust/
        1. I.e. they're not, this is just another research language. MS is however still heavily looking at rust, and employing rust developers.
    6. Unleashing the (Armed) Bear past Java 11
    7. Using Jlink to shrink your webservices… including nativeimages in the followup tweets
    8. Style guide for Text Blocks
    9. Lambda performance in node - regressions:
      1. Version 13.5.0 -- Questionable Changes? "My testing indicates that the for...of construct is about 60-70% slower as opposed to a classic for(let i; i; i++)."
    JEPs for JDK 14
    • JEP 305: Pattern Matching for instanceof (Preview) was proposed to target.
    • JEP 343: Packaging Tool (Incubator) was proposed to target.
    • JEP 345: NUMA-Aware Memory Allocation for G1 was integrated.
    • JEP 349: JFR Event Streaming was integrated.
    • JEP 352: Non-Volatile Mapped Byte Buffers was targeted.
    • JEP 358: Helpful NullPointerExceptions was integrated.
    • JEP 359: Records (Preview) was integrated.
    • JEP 361: Switch Expressions (Standard) was integrated.
    • JEP 362: Deprecate the Solaris and SPARC Ports
    • JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector was targeted.
    • JEP 364: ZGC on macOS was targeted.
    • JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination was proposed to target.
    • JEP 367: Remove the Pack200 Tools and API was targeted to JDK 14.
    • JEP 368: Text Blocks (Second Preview) was proposed to target.
    • Thread suspend/resume are now deprecated for removal (build 21)
    • Added LuxTrust Global Root 2 Certificate (build 24)
    • NUMA JEP mentioned last week now has an Implementation merged for "NUMA-Aware Memory Allocation for G1":
      • http://hg.openjdk.java.net/jdk/jdk/rev/fce1fa1bdc91?revcount=1000
      • http://hg.openjdk.java.net/jdk/jdk/rev/df6f2350edfa?revcount=1000
      • http://hg.openjdk.java.net/jdk/jdk/rev/6530de931b8e?revcount=1000
    New JEPs
    • JEP 370: Foreign-Memory Access API
    • Draft JEP: Elastic Metaspace
    48 min
  • 162. A Conservative JDK/Java Migration Path
    • CppCon 2018: Thoughts on a more powerful and simpler C++ (5 of N) - Herb Sutter
    • Resources for writing modern Java
    • Java 8 adoption process
    • Conservative migration
      • Build under new JDK
      • Deploy on JDK
      • THEN switch bytecode target to new JDK
      • or...
        • keep main build JDK target, move tests to target new JDK and use new features in non production code
    • records
      • Local records inside a method
    • JEP 345: NUMA-Aware Memory Allocation for G1
    • Java switch - 4 wrongs don't make a right - Stephen Colebourne
    • Jakarta EE 8: The new era of Java EE explained
    • Git Partial clones give shallow checkouts, whilst sparse checkout yields a restricted subset of the working copy to check out.
    • Dart native
    40 min
  • Illegal Argument: Episode 161

    00:00:00: Intro

    00:01:25: Java 12 Is Upon Us

    • 39 New Features (and APIs) in JDK 12
    • Mapping With Switch Expressions

    00:12:31: Supporting Multiple JVM Versions In Libraries

    • Apache Maven Compiler Plugin: Multi Release
    • multi-release-jar-maven-plug
    • Building Java 6-8 Libraries for JPMS in Gradle

    00:34:20: Graal

    • Micronaut on Graal
    • Quarkus Microservices / Kubernetes

    00:41:08: Autoscaling Is A Lie

    00:50:49: Rust Is A Better C?

    • Rust Is Not A Good C Replacement

    00:58:29: "Dynamic Types" In Haskell

    • Dynamic

    01:01:09: Business Errors Vs Exceptions

    • JEP draft: Add detailed message to NullPointerException describing what is null
    1 hr 6 min

About Illegal Argument

From the publisher's feed

Greg, Mark and Richard get together weekly and talk about things of interest in the Java community. Greg works for SimWorks (http://www.simworks.com) who specialize in mobile phone software. Mark…