Illegal Argument

Illegal Argument

By Mark DerricuttNewsTechnologyTech News
Download on the App Store

Illegal Argument episodes

  • Episode 120 - Better (epically) late than never?

    So.... this podcast thing - it turns out you don't just RECORD episodes, you really should edit, and POST them as well....

    Yes, I (mark) dropped the ball and got side tracked with life, concerts, and TV and and woefully behind in posting this ( and the next, er last ) episode - so much that I've misplaced any and all links to articles we may have mentioned in this fairly short(ish) show.

    Hope you enjoy.

    35 min
  • Episode 119: $ sudo make me a project

    Sorry this episode took so long to get packaged up and built, but you know how long those type based compilations using make go....

    Seriously tho, illness, lethargy, and just plain laziness got the better of me.

    Enjoy a rant-free conversation on make, builds, larps, and the evil that is JBoss Classloaders....

    1 hr 12 min
  • Episode 118 - The 'F' Bomb!

    Join Mark, Greg, and Peter for some more absurd type level rants, whilst we weren’t exactly planning on diving once again into a big argument around types and functional programming, somehow we fell afoul of one almost immediately even before we got around to introducing the episode.

    • Memory Allocation of various and classes
    • Java Memory Model Pragmatics (transcript)
    • Functional Programming

    The argument starts with an argument over whether one can do “functional programming” in Java, and the difference between “functional programming” and “a functional programming language”. In this argument Greg claims that memory allocated for a class instance constitutes the state of a class — even if the class structure holds no state, and that ‘functions’ don’t allocate memory when defined.

    • Should you always pass just the bare minimum data into a function?
    • Project Jigsaw: Phase 2

    The main discussion for the evening relates to an Ars Technica article about how much information you should pass in a function: a rich object structure or individual arguments.

    During the discussion, Mark suggested that simply using String as the type of the argument is probably a bad design as you may want to restrict the context of the arguments, such as using a specific Password type, this ensued with an argument over deep type hierarchies (do I smell a theme here?) to which Mark countered this by (badly) describing a way of using parametric typing (and phantom typing) to improve the contract of passwords in the API.

    Unfortunately the discussion got sidetracked with factories and PK7 implementations being tightly woven into the which probably detracted from any useful discussion.

    • String Variables Considered Harmful
    • Using Phantom Types in Haskell for Extra Safety
    • Phantom Types in Java

    Escaping away from type theory, Peter brings us back to the real worldwith a discussion on Web Fragments and JBoss Hell…

    • Project Lombok
      • Illegal Argument interview with Reinier Zwitserloot and Roel Spilker
    • Web Fragments
      • Webjars - Web Libraries in Jars
      • Jawr - Java Web Resource Bundling and Compression
    • Farewell Node.js

    Misc:

    • Hoogle! The Haskell API Search Engine - enter the signature you want and find the matching methods.
    • Git tooling sucks
    1 hr 26 min
  • Episode One One Seven :: Int -> Int -> Int -> ()
    • The Prisoner

    • Pull Request Ettiquette

      • manually merge pull requests

      • Github and Tooling

      • Github dependence - distributed VCS but centralized tooling

    • Repository Templates - git-init and --template

    • Gitosis

    • gitslave

    • git fetch and merge, don’t pull

    • Git Minutes Podcast

    • Speed of Development

    • Estimates

      • Do you count technical debt?

      • Time tracking of issue times

    • testng-issue-reporter

    • Intra-repository review builds with gerrit and apache maven

    • First Ever Maven Development Hangout

    • Evolving the POM format - Hangout #2

    • Module Systems from Alex Blewitt

      • Roman Numeral Version Scheme

      • The Linux Version Scheme

      • The Solar Version Scheme

    1 hr 48 min
  • Episode 116 - Messy Types and Garbage Collection
    • Garbage Collection
    • Language/Compiler design
    • Function Types
      • A discussion on whether a functions signature is a type, or not.

    During this discussion we talked about the implicit currying of haskell functions and how this could lead to run-time errors rather than compile errors, however whilst I (Mark) knew what I was talking about, I missed a fundamental part of the equation - function types include the return type, so a partially applied function that doesn’t fit a high-order function is a compile time error.

    So given two functions:

    someHof :: (String -> String) -> String take3StringsReturningString :: String -> String -> String -> String

    The first function someHof takes a function String -> String and returns a String, if we partially apply take3StringsReturningString "test" the resulting function is String -> String -> String which doesn’t match the required syntax of someHof so wouldn’t even compile.

    1 hr 59 min
  • Episode 115 - Programming is Hard

    Illegal Argument - Episode 115

    • Learning to program is hard

      • Why Programming Is Difficult, Joe Armstrong

    • Programming enviroments and tooling make things hard

    • Pharmo Smalltalk

    • Scala Days 2013 talk: Fun programming in Scala: Games, Algorithms, and Apps

    41 min
  • Ill-Informed Argument #1
    • Copyrighted APIs - Oracle vs Google

      • Oracle’s win over Google is a loss for computer science.

      • Oracle wins Android-Java copyright appeal: API code copyrightable, new trial on fair use.

      • David Pollak: Are APIs Copyrightable?

      • David Pollak: He’s not So Fine.

      • David Pollak: Lawyers and Developers, not so different.

      • David Pollak: Every one us is an Infrigner.

      • David Pollak: Yes, we do all infringe.

      • Android Gets Java 7 support.

      • Clojure Mailing List Thread: Java API is copyright protected? .

    • Concurrency - we got it wrong

      • The Node.js CPU blocking thing.

    • ORMs

      • The Server Side: Hibernate 1.0 Announced - July 06 2002.

      • InfoQ: Domain-Driven Design Using a Functional Language.

      • InfoQ: DDD and CQRS Using the Functional Language F#.

      • InfoQ: A Discussion with Allard Buijze on CQRS with the Axon framework.

      • InfoQ: Udi Dahan on Event-Driven Architecture and Loosely Coupled Systems.

      • Java 8: No More Need for ORMs.

      • Functional Patterns in Domain Modeling - The Specification Pattern, Immutable Aggregates and Functional Updates, Anemic Models and Compositional Domain Behaviors, A Sketch as the Query Model of an EventSourced System.

      • Lambda Architecture.

      • Forget big data, small data is the real revolution.

      • 10 Reasons 2014 will be the Year of Small Data .

    • How Target Figured Out A Teen Girl Was Pregnant Before Her Father Did.

    • Black Mirror | The Entire History of You | Channel 4.

    47 min
  • Illegal Argument - Episode 113 - Dynamic Languages

    A discussion of dynamic lanugages with guest Manix Cook.

    • TCL/TK

    • DynJS JavaScript expression handling

    • The 6th Underhanded C Contest is now Open

    • TestNG Repeating Tests via the invocationCount attribute

    • JavaScript and Tail Calls

      • Functional JavaScript – Tail Call Optimization and Trampolines

      • JavaScript (ES6) Has Proper Tail Calls

    • Haskell: How to use thread safe shared variables in Haskell

    • Haskell: Control.Concurrent.STM.TVar - Transactional variables

    • Java: Pluggable Static Analyzers

    • Java: ThreadSafe static analysis tool for Java concurrency: now with command-line invocation

    • Java: Simplifying ReadWriteLock with Java 8 and Lambdas

    • NodeJS: Cluster - Stability = Experimental

    • HP Labs: SmartFrog - Deployment tool

    • SmartFrog Homepage

    • Subscribe to RSS Feed The Making of Erchef, the Chef 11 Server. The Chef 11 server moved to Erlang.

    • YouTube: Punch and Judy

    • Smalltalk: RIP James Robertson

    1 hr 50 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…