Episódios

  • Object-Oriented Programming (OOP) vs. Data-Oriented Programming (DOP) in Java
    Jun 23 2024
    An airhacks.fm conversation with Nicolai Parlog (@nipafx) about: the advantages and challenges of Object-oriented programming (OOP) vs data-oriented programming (DOP) in Java, using Java record classes, sealed interfaces, and switch expressions to implement business logic outside of data classes, the advantages of polymorphism and transparent persistence in specific use cases, the pitfalls of deep inheritance hierarchies and instance of checks, modeling data with records and sealed interfaces, validating data at the boundaries and ensuring immutability, using switch expressions and pattern matching for type-based logic, the advantages of data-oriented programming for maintainability and safety, applying data-oriented programming to web services and data pipelines, combining enums with records for complex configurations

    Nicolai Parlog on twitter: @nipafx

    Exibir mais Exibir menos
    1 hora e 32 minutos
  • From JSP to Rife and From Kotlin to Java
    Jun 17 2024
    An airhacks.fm conversation with ethauvin (@Erik C. Thauvin) about: Erik previously on: "#298 The bld Power User", running a high-traffic link blog using JSP and Tomcat, challenges with caching and performance, meeting Geert Bevin through discussions about URL encoding, evaluating and migrating his blog to the Rife framework, appreciating Rife's lean architecture and built-in utilities, the appeal and disappointment of Ruby on Rails, using lightweight Java application servers like Glassfish and Payara, avoiding heavy dependencies and XML configuration, generating XML with xdoclet, the advantages of Rife's templating system and code readability, Erik's journey with Kotlin and reasons for returning to Java, building a Kotlin URL encoding library with multiplatform support, the power of Kotlin's multiplatform capabilities, discussing the BLD build tool and its origins in simplifying build processes, the complexities of modern Java builds with dependencies compared to the simplicity of Java EE, considering Ant as an alternative to Maven, the idea of "Build as Code" and integrating build logic into applications, Erik's experience converting over 60 projects to bld, challenges of introducing new build tools in enterprise environments, Erik's automated blog posting system

    ethauvin on twitter: @Erik C. Thauvin

    Exibir mais Exibir menos
    58 minutos
  • The bld Power User
    Jun 9 2024
    An airhacks.fm conversation with Erik C. Thauvin (@ethauvin) about: previously Erik on "#287 How Linkblog Happened", from Rife to bld, Gert on "#284 No Dependencies--Or How Rife 2 and Bld Happened", the simplicity and power of bld compared to Gradle and Maven, using Java as the build language without any DSLs or plugins, the advantages of a direct approach to building and running tools, converting projects from Gradle to bld and the resulting simplification, creating extensions for bld to integrate with various tools and libraries, the benefits of using pure Java for build files and the flexibility it provides, the speed of bld and the underlying Java compilers, ideas for future improvements and features in bld, the philosophy behind bld and its focus on simplicity and developer productivity, the potential for using bld as a scripting tool and automation platform, the extension mechanism in bld and how it leverages the builder pattern, the performance gains of using bld over traditional build tools, the aesthetics and user experience of bld, the history of Java compilers and the evolution of Java desktop applications

    Erik C. Thauvin on twitter: @ethauvin

    Exibir mais Exibir menos
    1 hora e 8 minutos
  • Observability-Driven Development with Digma, Serverless and Java
    Jun 2 2024
    An airhacks.fm conversation with Roni Dover (@doppleware) about: previously Roni on airhacks.fm "#252 BDD: Bug Driven Development vs. Continuous Observability", discussion about the Java community and its focus on innovation, Digma and Java, Digma's growth and user feedback, observability as a tool for early issue detection and better code design, the importance of continuous observability and reducing mental effort, Digma's elevator pitch and data science approach, the changing testing pyramid and the benefits of test containers, "#103 Unit Testing Considered Harmful", the cost and value of different types of tests, optimizing lambda costs and performance, linking System Tests to traces from quarkus JVMs, Digma's architecture and deployment options, recent features and improvements in Digma, the impact of observability on productivity and shorter feedback loops, AWS Lambda Power Tuning, the limitations and potential of large language models (LLMs) in generating tests and code, the importance of understanding the client and writing maintainable code, the challenges of complex code generated by LLMs, the potential of feeding runtime data to LLMs for code generation and optimization, the Java community's vibrant and innovative nature

    Roni Dover on twitter: @doppleware

    Exibir mais Exibir menos
    1 hora e 3 minutos
  • Exploring ONNX, Embedding Models, and Retrieval Augmented Generation (RAG) with Langchain4j
    Jun 1 2024
    An airhacks.fm conversation with Dmytro Liubarskyi (@langchain4j) about: Dmytro previously on "#285 How LangChain4j Happened", discussion about ONNX format and runtime for running neural network models in Java, using langchain4j library for seamless integration and data handling, embedding models for converting text into vector representations, strategies for handling longer text inputs by splitting and averaging embeddings, overview of the retrieval augmented generation (RAG) pipeline and its components, using embeddings for query transformation, routing, and data source selection in RAG, integrating Langchain4j with quarkus and CDI for building AI-powered applications, Langchain4j provides pre-packaged ONNX models as Maven dependencies, embedding models are faster and smaller compared to full language models, possibilities of using embeddings for query expansion, summarization, and data source selection, cross-checking model outputs using embeddings or another language model, decomposing complex AI services into smaller, specialized sub-modules, injecting the right tools and data based on query classification

    Dmytro Liubarskyi on twitter: @langchain4j

    Exibir mais Exibir menos
    1 hora e 9 minutos
  • High-Performance Java, Or How JVector Happened
    May 18 2024
    An airhacks.fm conversation with Jonathan Ellis (@spyced) about: Jonathan's first computer experiences with IBM PC 8086 and Thinkpad laptop with Red Hat Linux, becoming a key contributor to Apache Cassandra and founding datastax, starting DataStax to provide commercial support for Cassandra, early experiences with Java, C++, and python, discussion about the evolution of Java and its ecosystem, the importance of vector databases for semantic search and retrieval augmented generation, the development of JVector for high-performance vector search in Java, the potential of integrating JVector with LangChain for Java / langchain4j and quarkus for serverless deployment, the advantages of Java's productivity and performance for building concurrent data structures, the shift from locally installed software to cloud-based services, the challenges of being a manager and the benefits of taking a sabbatical to focus on creative pursuits, the importance of separating storage and compute in cloud databases, Cassandra's write-optimized architecture and improvements in read performance, DataStax's investment in Apache Pulsar for stream processing, the llama2java project for high-performance language models in Java

    Jonathan Ellis on twitter: @spyced

    Exibir mais Exibir menos
    1 hora e 1 minuto
  • LLama2.java: LLM integration with A 100% Pure Java file
    May 12 2024
    An airhacks.fm conversation with Alfonso Peterssen (@TheMukel) about: discussion about Alfonso's early programming experience and participation in the IOI competition, studying computer science and functional programming with Martin Odersky, internships at Google and Oracle Labs working on compilers and the Espresso project implementing a JVM in Java, espresso mentioned in "#208 GraalVM: Meta Circularity on Different Levels", "#194 GraalVM, Apple Silicon (M1) and Clouds", "#167 GraalVM and Java 17, Truffle, Espresso and Native Image" and "#157 The Ingredients of GraalVM", porting LLVM to pure Java in one class, integrating Large Language Models (LLMs) in Java by porting the LLAMA model from C to Java, GPU acceleration with tornadovm, TornadoVM appeared at "#282 TornadoVM, Paravox.ai: Java, AI, LLMs and Hardware Acceleration", performance of the Java port being within 10% of the C versions, potential huge opportunities for integrating AI and LLMs with enterprise Java systems for use cases like fraud detection, the Java port being a 1,000 line self-contained implementation with no external dependencies, the need for more resources and support to further develop the Java LLM integration, the llama2.java project

    Alfonso Peterssen on twitter: @TheMukel

    Exibir mais Exibir menos
    1 hora e 1 minuto
  • How Kotlin Happened
    May 5 2024
    An airhacks.fm conversation with Anton Arhipov (@antonarhipov) about: Anton appeared previously on "#273 The Long Road to Java and Kotlin", discussion about Anton Arhipov's artwork using circles and a compass, attending the JVM Language Summit in 2011 where Kotlin was introduced by JetBrains, initial skepticism about the need for a new JVM language, JSR-305 Annotations for Software Defect Detection by William Pugh, Kotlin's null safety features and interoperability with Java, Kotlin's growth and adoption by Android developers, Kotlin's multiplatform capabilities for targeting native, JavaScript, and WebAssembly, Kotlin's potential beyond Android development, Kotlin's core libraries for date/time, serialization, and coroutines, the Kotlin compiler being self-hosted and written in Kotlin, benefits of Kotlin Native for serverless and IoT compared to GraalVM, Kotlin Multiplatform support in the upcoming JetBrains Fleet IDE, designers using similar UI principles across IDEs and applications

    Anton Arhipov on twitter: @antonarhipov

    Exibir mais Exibir menos
    1 hora e 18 minutos