airhacks.fm podcast with adam bien

Adam Bien

Java, Serverless, Clouds, Architecture and Web conversations with Adam Bien

  1. قبل ٢٢ ساعة

    NASA, Rocket Science and Oorian

    An airhacks.fm conversation with Marvin P. Warble Jr. (@marvinwarble) about: growing up with the Atari 400 and learning BASIC from a cartridge, saving programs on cassette tapes and upgrading to floppy drives, writing maze games and running out of RAM, the Atari 800XL and Atari ST with graphical user interfaces, studying aerospace engineering and working at NASA on mission planning software, converting Fortran to C and C++ at NASA, the transition from mission-specific software to reusable applications, learning Java in the early 2000s through applets, comparing C++ header files to Java class organization and missing type defs, building a stock data web scraper in Java and getting redirected to the human genome project, working on a Java applet-based product called Galileo that was abandoned when applets were deprecated, developing control system software for an aircraft carrier, the origin of iGrade Plus as an online grade book for schools built with JSP and then the Oorian Framework, the Oorian framework as an object-oriented rich internet application framework written in pure Java, wrapping JavaScript libraries like CKEditor and Chart.js and D3.js with Java APIs, type-safe Java widgets rendered to HTML and JavaScript, configurable communication modes with AJAX and SSE and WebSockets, CSS generation in Java with user-specific themes and multi-tenant support, event handling modeled after Swing with mouse click listeners, iGrade Plus running in production for 10 years with 50000 to 70000 active users and hundreds of schools, 170 JavaScript library integrations planned including Web Awesome and Tailwind CSS and Bulma and Bootstrap, comparison with Vaadin and the different approach of wrapping existing JavaScript libraries, discussion of Quarkus and GraalVM native image compilation, Web Components as a rendering target for enterprise applications Marvin P. Warble Jr. on twitter: @marvinwarble

    ١ س ٤ د
  2. ١٥ مارس

    From Java 8 Lambdas, Streams, Spliterators, to Default Methods

    An airhacks.fm conversation with Stuart Marks (@stuartmarks) about: the history of the Teletype Model 33 and punched paper tape, Telex service and long-distance communication costs, the connection between TTY and the teletype company name, 110 baud modems and 10 characters per second transmission, Wang Laboratories field offices connected via Telex, the evolution from Java Enumeration to Iterator to Iterable, Vector.elements() and the absence of an Enumerable interface, the introduction of Iterator and Iterable in JDK 1.2 and 1.5 respectively, the legacy collections Vector and Hashtable and their method-level synchronization overhead, Java 8 lambdas and streams as the major language feature, default methods enabling compatible interface evolution, the long-standing problem of not being able to add methods to published interfaces, Brian Goetz as the main designer of the Spliterator concept, Eclipse Collections and Rich Iterable as an alternative to streams, the GS Collections to Eclipse Collections history, C# LINQ as a competing influence that pressured Java to add streams, the design decision to separate lazy stream operations from eager collection operations, intermediate vs terminal operations in stream pipelines, why streams cannot be consumed twice and the buffering problem with forking streams, primitive specializations of streams (IntStream, LongStream, DoubleStream) and the original compromise of Java primitives vs objects, Spliterator characteristics, the subsized optimization that avoids intermediate storage and merge steps for array-based collections, how Spliterator splitting works for parallel execution and the fork/join pool, Amdahl's law and minimizing single-threaded setup for parallel streams, why Spliterator.trySplit mutates in place rather than returning two new spliterators, HashSet being sized but not subsized due to bucket distribution, ArrayList vs LinkedList performance considerations for streams, streams from non-collection sources like BufferedReader.lines() and String.lines(), infinite streams with Stream.generate(), the limitations of streams for reactive or socket-based processing, the for-each approach as an alternative to to-list for live data sources, the upcoming topics of fork/join pools and parallel stream configuration, the JavaOne conference Stuart Marks on twitter: @stuartmarks

    ١ س ٩ د
  3. ٩ مارس

    Kaizen and Kaikaku

    An airhacks.fm conversation with Daniel Terhorst-North (@tastapod.com) about: first computer experience with the ZX81 and its 1K memory, the 1K chess game on ZX81, the ZX Spectrum with 16K and later 48K memory, the Amstrad 128K, typing in game listings from computer magazines, Dan's brother John hacking ZX spectrum games using a hardware freeze device and memory peeking/poking, cracking game encryption and copy protection on 8-bit tape cassette games, the arms race between game publishers and hackers, cracking the Star Wars game security before its release, ZX Spectrum fan sites and retro gaming communities, classic games including 3D Monster Maze and Manic Miner and Jet Set Willy, sprite graphics innovation on the Z80 chip, first internship at Domark publishing Empire Strikes Back on ZX Spectrum and Commodore 64, second internship at IBM Hursley Park working on CICS in PL/1 and Rexx, the contrast between casual game studio culture and IBM corporate culture in the 1980s, IBM's role as a founding partner of J2EE Enterprise Java, JMS wrapping MQ Series, the reliability of MQ Series compared to later messaging technologies, finding and reporting a concurrency bug in MQ Series with JUnit tests and IBM's rapid response with an emergency patch, IBM alphaWorks portal and experimental technologies, IBM Aglets mobile Java agent framework compared to modern A2A agent protocols, Jini and JavaSpaces from Sun Microsystems with leasing and self-healing, JXTA peer-to-peer technology, IBM Jikes Compiler performance compared to javac, IBM's own JVM, JVM running on Palm Pilot around 1999, VisualAge for Java as a port of VisualAge for SmallTalk with its image-based architecture and no file system exposure, Java's coupling of class and package names to files and directories as a design weakness, the difficulty of refactoring without IDE support, Eclipse as the first IDE with proper refactoring, NetBeans IDE performance compared to Visual Studio Code, third internship writing X-ray machine control software in Turbo Pascal doing digital image processing, the pace of technological innovation slowing from kaikaku (abrupt change) to kaizen (continuous improvement), Douglas Adams quote about technology perception by age, DEC Alpha 64-bit Unix performance, commodity Linux hardware replacing exotic RISC machines, Apple M series chips rediscovering RISC Architecture and system-on-chip design, innovation fatigue and signal-to-noise ratio in modern tech, LLMs and the trillion-dollar bet on the wrong technology, electric cars as an example of ongoing innovation, Tailwind CSS shutting down due to AI-generated code replacing paid expertise, Stack Overflow in trouble due to AI summarization, open source innovation continuing with tools like Astral's uv replacing the python toolchain, cross-community collaboration between rust and Python and Ruby ecosystems, first graduate job at Crossfield (Fuji/DuPont joint venture) doing electronic pre-press and color transformation through 4D CMYK color cubes, writing a TIFF decoder from scratch in C, Raster Image Processor technology and its connection to Adobe, transition from C++ to Java feeling quirky, joining ThoughtWorks in 2002 for enterprise Java work Daniel Terhorst-North on twitter: @tastapod.com

    ١ س ١٢ د
  4. ٤ مارس

    From Gorillas to AWS CDK

    An airhacks.fm conversation with Thorsten Hoeger (@hoegertn) about: first computer experience with an IBM 8086 and learning programming by modifying the QBasic Gorilla game, early programming journey from QBasic to Visual Basic and the discovery of event-driven programming, building a password security script for autoexec.bat as a childhood project, transition from Visual Basic to Java around 2005 starting with Java 1.4.2, working at a small bank in Stuttgart building a core banking system, experience with Eclipse RCP rich client platform and the overhead of plugin architecture in business software, migration from Swing to Eclipse RCP frontend with JBoss application server backend, building a custom Spring-based microservice framework called Dwallin (Icelandic for dwarf) before Spring Boot existed, using Apache CXF for REST and RPC over messaging with ActiveMQ, comparison of Java development trajectories between annotation-based and XML-heavy approaches, discussion of the infamous Java and XML O'Reilly book that popularized XML configuration, xdoclet as a precursor to Java annotations, contrasting approaches of JBoss-based thin WAR deployments versus Spring-based embedded server microservices, university experience learning Ada programming language and its strict compiler as excellent for learning programming, PL/SQL's Ada-based origins, brief experience with OSGi and strong criticism of its complexity and poor developer experience, comparison of OSGi with Java Platform Module System (JPMS), founding Taimos consulting company 10 years ago originally building BlackBerry enterprise software, pivoting to AWS migration consulting for regulated industries including banks and insurance companies, strong preference for serverless architecture with lambda Step Functions API Gateway and DynamoDB, criticism of running kubernetes on AWS versus using native services like ECS Fargate, the distinction between running "in the cloud" versus "on the cloud", detailed discussion of why GraalVM native images are unnecessary on AWS Lambda due to compliance overhead and memory allocation model, quarkus and SnapStart as solutions for Lambda cold start problems, Java's cost efficiency on Lambda due to fast execution times, involvement with AWS CDK since 2018-2019 including building L2 constructs for EC2 and AppSync, shift from code contributions to community organizing and prioritization work with the CDK team, launching CDK Terrain as successor to CDK for Terraform, nuanced discussion of open source economics when the project primarily benefits a paid cloud provider, using GitHub as a personal index and dashboard for reusable project templates, consulting perspective on contributing to open source for code reuse across multiple clients, teaser for a future deep-dive episode on CDK internals and promoting Java usage with CDK Thorsten Hoeger on twitter: @hoegertn

    ٥٤ د
  5. ٢٢ فبراير

    Agent-to-Agent Protocol (A2A) and the Java SDK

    An airhacks.fm conversation with Kabir Khan (@kabirkhan) about: Discussion about the A2A (Agent-to-Agent) protocol initiated by Google and donated to the Linux Foundation, the A2A Java SDK reference implementation using quarkus, the Java SDK development accepted by Google, comparison of python and Java expressiveness and coding practices, the concept of an agent as a stateful process versus a tool as a stateless function call, the agent card as a JSON document advertising capabilities including supported protocols and descriptions and input/output modes and examples, the three wire protocols supported: JSON RPC and HTTP+JSON (REST) and grpc, the proto file becoming the single source of truth for the upcoming 1.0 spec, the facade/adapter pattern for the unified client across protocols, the agent executor interface with request context and event queue parameters, the distinction between simple message interactions and long-running multi-turn tasks, tasks as Java Records containing conversation history with messages and artifacts, message parts including text parts and data parts and file parts, task lifecycle with task IDs and context IDs for stateful conversations, the event queue as internal plumbing for propagating task updates, the separation between spec package (wire protocol entities) and server package (implementation details), the task store as a CRUD interface with in-memory default and database-backed implementations in extras, replicated queue manager using microprofile reactive messaging with Kafka for kubernetes environments, building A2A agents without any LLM involvement for simple use cases like backup systems, the role of LLMs in creating prompts from task messages and context, the agentic loop and the challenge of deciding when an agent's work is complete, the relationship between MCP (Model Context Protocol) for tool access and A2A for agent-to-agent communication, the possibility of wrapping agent calls as MCP tools, memory management considerations with short-term and long-term memory and prompt size affecting LLM quality, the distinction between the bare reference implementation and Quarkus-specific enhancements like annotations and dependency injection, upcoming 1.0 release with standardized Java records for all API classes and improved JavaDoc, protocol extensions including the agent payment protocol and GUI snippet extensions using template engines, authentication support with OAuth2 tokens and API keys and bearer tokens, the authenticated agent card containing more information than the public agent card, authorization hooks being discussed for task-level access control, the API and SPI segregation suggestion for better clarity between spec and implementation Kabir Khan on twitter: @kabirkhan

    ١ س
  6. ١٥ فبراير

    Custom Virtual Thread Schedulers, CPU Cache Optimization and Work Stealing

    An airhacks.fm conversation with Francesco Nigro (@forked_franz) about: break dancing and basketball including meeting Kobe Bryant in Italy during a dunk competition, using AI coding assistants like Claude Opus 4.5 and GitHub bots for infrastructure setup and CI/CD pipeline configuration, limitations of LLMs for novel performance-sensitive algorithmic work where training data is scarce, branchless IPv4 parsing optimization as a Christmas coding challenge, CPU branch misprediction costs when parsing variable-length IP address octets, converting branching logic into mathematical operations using bit tricks for better CPU pipeline utilization, LLMs excelling at generating enterprise code based on well-documented standards and conventions, providing minimal but precise documentation and annotations to improve LLM code generation quality, the Boundary Control Entity BCE architecture pattern and standards-based development, the core problem of thread handoff between event loops and ForkJoinPool worker threads in frameworks like quarkus Vert.x and Micronaut, mechanical sympathy implications of cross-core memory access when serialized data is allocated on one core and read by another, CPU cache coherency costs and last-level cache penalties when event loop and worker pool run on different cores, the custom virtual thread scheduler project (netty-virtual-thread-scheduler) enabling a single platform thread to handle both networking I/O and virtual thread execution, approximately 50% CPU savings demonstrated by Micronaut when using unified Netty-based scheduling, collaboration with Oracle Loom team including Victor Klang and Alan Bateman on minimal scheduler API design, the scheduler API consisting of just two methods onStart and onContinue plus virtual thread task attachments, work stealing algorithms and their complexity including heuristics similar to Linux CFS scheduler, the importance of being declarative about thread affinity rather than automatic magical binding to avoid issues with lazy class loading and background reaper threads, thread factory based approach for creating virtual threads bound to specific platform threads, stream-based run queues with graceful shutdown semantics that fall back to ForkJoinPool for progress guarantees, thread-local Scoped Values as a hybrid between thread locals and scoped values for efficient context propagation, performance problems with ThreadLocal including lazy ThreadLocalMap allocation overhead on virtual threads and scalability issues with ThreadLocal.remove() and soft reference queues, the impact on reactive programming where back pressure and stream composition still require higher-level abstractions beyond Basic Java concurrency primitives, structured concurrency limitations for back pressure scenarios compared to reactive libraries, deterministic testing possibilities enabled by custom schedulers where execution order can be controlled, the poller mechanism for handling blocking I/O in virtual threads in a non-blocking way, observability improvements possible through virtual thread task attachments for monitoring state changes, cloud cost implications of inefficient thread scheduling and unnecessary CPU wake-up cycles, the distinction between framework developers and application developers as different user personas with different abstraction needs Francesco Nigro on twitter: @forked_franz

    ١ س ١٤ د
  7. ٨ فبراير

    From ZX Spectrum to AI Agents

    An airhacks.fm conversation with Kabir Khan (@kabirkhan) about: first computer was a ZX Spectrum 48K with rubber keys, playing Bomb Jack as a memorable early game, growing up in Norway near Oslo with lots of outdoor activities including skiing and swimming in warm fjords, discovering multimedia kiosks at Tower Records in Piccadilly Circus as career inspiration, writing a Java applet dissertation visualizing Motorola 68000 CPU instruction processing with animations, early programming in Basic on the ZX spectrum including a hardcoded cookbook application, learning Pascal and the revelation of understanding what files actually are, first job writing an HTTP server in C++ on Windows NT using Winsock, implementing Real-Time Protocol streaming for multimedia content, working at a consultancy learning multiple programming languages including Active Server Pages ASP and Microsoft Transaction Server MTS, going freelance and building a Java-based exhibition industry booking system, using JBoss with EJB3 for the second version of the exhibition system, getting JBoss support and being impressed by their expertise, contributing to JBoss Mail and JBoss AOP as open source contributions, meeting Sacha Labourey at a JBoss partner event in Norway who advised focusing on AOP, joining JBoss in September 2004 when the company had only about 50 people, meeting Marc Fleury and having pizza at his house in Atlanta, the Red Hat acquisition of JBoss in 2006, leading the JBoss AOP project and standardizing interceptor chains, working on the JBoss microcontainer for JBoss 5 which was over-engineered and slow, joining the team that rethought the server architecture leading to Wildfly, working on WildFly core server management and domain management, the recent move of the runtimes division from Red Hat to IBM, current work on Agent-to-Agent (A2A) protocol, quarkus being the Java reference implementation for the A2A specification published by Google, Agent-to-Agent Protocol as a standardized protocol for agent-to-agent communication using JSON-RPC REST and grpc, agent cards as capability advertisements similar to business cards, benefits of smaller specialized agents over monolithic AI applications including better traceability smaller context windows and flexibility with different LLMs, comparison of agent architecture to microservices where smaller agents are preferable unlike traditional services where monoliths can be better, upcoming episode planned to deep-dive into A2A with Quarkus and opentelemetry for agent traceability Kabir Khan on twitter: @kabirkhan

    ٤٩ د
  8. ٥ فبراير

    From Rocc Computers to Azul Systems

    An airhacks.fm conversation with Simon Ritter (@speakjava) about: first computer experiences with TRS-80 and mainframe ALGOL68 programming via punched cards in the 1970s UK, one-week turnaround times for program execution, writing battleship games on mainframes, bbc micro with color graphics and dual floppy drives, father's influence as a tech enthusiast with a PDP-8 in his chemistry lab, early fascination with robotics and controlling machines through programming, writing card games and Mandelbrot set fractal generators in Basic, transition from BASIC to C programming through sponsored university degree, working at Rocc Computers on Unix device drivers and kernel debugging, the teleputer, memory leak debugging requiring half-inch mag tape transfers and two-week investigation periods, AT&T Unix source code license access and kernel modifications, Unix System V Release 4 and Bell Labs heritage, Motorola 68000 processor's flat memory model versus Intel's near/far pointers, Novell acquisition of Unix from AT&T in 1993, Unixware development and time spent in Utah, SCO's acquisition of Unix IP and subsequent IP trolling, joining Sun Microsystems in 1996 as Solaris sales engineer, transition to Java evangelism in 1997, working under Reggie Hutcherson and Matt Thompson for nearly 10 years, building Lego Mindstorms blackjack-dealing robot with Java speech recognition and computer vision, using Sphinx for voice recognition and FreeTTS for speech synthesis, JMF webcam integration for card recognition, JavaOne 2004 robot demonstration, Glassfish application server evangelism and reference implementation benefits, Sun's technology focus versus business development challenges, CDE desktop environment nostalgia, Oracle acquisition of Sun in 2010, Jonathan Schwartz's acquisition announcement email, Oracle's successful stewardship of Java through openJDK, praise for Brian Goetz Mark Reinhold John Rose and Stuart Marks, six-month release cycle benefits, Project Amber Loom Panama and Valhalla developments, OpenSolaris discontinuation leading to docker adoption for server containerization, Oracle's 2015 pivot to cloud focus, career-defining conversation in Japan about cloud versus Java evangelism, layoff during vacation in September 2015, joining Azul Systems after three-and-a-half-hour interview with Gil Tene, ten years at Azul working on high-performance JVM Platform Prime garbage collection and CRaC technology, comparison of Azul culture to Sun Microsystems innovation environment, commercial Java distribution value propositions and runtime inventory features Simon Ritter on twitter: @speakjava

    ٥٧ د
٥
من ٥
‫٧ من التقييمات‬

حول

Java, Serverless, Clouds, Architecture and Web conversations with Adam Bien

قد يعجبك أيضًا