it

Episode 78: Fault Tolerance with Bob Hanmer Pt. 2

This is the second part of the discussion on fault tolerance with Bob Hanmer (if you didn't listen to Episode 77, which contains part one, please go back and listen now; this episode builds on that previous one!) We start by discussing a set of error detection patterns. Among are the well-known approaches such as checksums and voting. We then look at error recovery patterns, including restart, rollback or roll forward. The next section looks at error mitigation patterns, which include shedding load and doing fresh work before stale. The last patterns section then looks at fault treatment patterns. We conclude the episode with a small discussion about how to design systems using (these and other) patterns, and with some thoughts on why actually wrote the book.




it

Episode 79: Small Memory Software with Weir and Noble

In this Episode we're discussing patterns for small memory software with the authors of the like-named book Charles Weir and James Noble. We look at various aspects of the small memory problem: How can you manage memory use across a whole system? What can you do when you have run out of primary storage? How can you fit a quart of data into a pint pot of memory? How can you reduce the memory needed for your data? How do you allocate memory to store your data structures? Answers to all those questions are provided in this Episode, and of course in their book.




it

Episode 80: OSGi with Peter Kriens and BJ Hargrave

This episode is about OSGi, the dynamic module system for Java. Our guests are Peter Kriens (OSGI's Technical Director) and BJ Hargrave (OSGI's CTO). We'll discuss what OSGi is all about and why and in which contexts it is useful. Additionally we are having a look at the different layers of OSGI and where and how they are used. Other questions discussed are: What means dynamicity in an OSGI environment? Where is OSGI used? What’s the future of OSGI? How does OSGI interact with existing middleware solutions? How can I run several versions of the same JAR at the same time? Where are OSGI’s problems?




it

Episode 82: Organization of Large Code Bases with Juergen Hoeller

In this episode Eberhard Wolff speaks with Jürgen Höller, the co-found of the Spring framework. Spring is a tremendously successful Java framework so they discuss the design of large frameworks and the issues that arise in the evolution. Jürgen explains the management of dependencies in the framework, how to structure such a framework, how to offer compatibility for the existing user base while evolving the framework and the role of metrics during development.




it

Episode 85: Web Services with Olaf Zimmermann

In this Episode we're talking about Web Services with IBM's Olaf Zimmermann. We mainly focus on the WS-* stack. We also discuss a couple of SOA foundations and architectural decisions that need to be taken when building an SOA using Web Serivces. We also briefly mention the REST vs. WS-* debate.




it

Episode 88: The Singularity Research OS with Galen Hunt

In this episode we talk to Galen Hunt about the Singularity research OS. Galen is the head of Microsoft's OS Research Group and, together with a team of about 30 other researches, has built Singularity. We started our discussion by covering the basics of Singularity: why it was designed, what the goals of the project are as well as some of the architectural foundations of Singularity: software isolated processes, contract-based channels and manifest-based programs. In this context we also looked at the role of the Spec# and Sing# programming languages and the role of static analysis tools to statically verify important properties of a singularity application. We then looked a little bit more closely at the role of the kernel and how it is different from kernels in traditional OSes. In a second part of the discussion we looked at some of the experiments the group did based on the OS. These include compile-time reflection, using hardware protection domains, heterogenerous multiprocessing as well as the typed assembly language We closed the conversation with a look at some of the performance characteristics of Singularity, compatibility with traditional operating systems and a brief look at how the findings from Singularity influence product development at Microsoft.




it

Episode 90: Product Line Engineering, Pt. 3, with Charles Krueger

In this episode Charles Krueger, a well-known member of the product line engineering community, talks about his long term experiences in the field. Charles is also the founder and CEO of a company that provides tooling for variability management and product derivation. Besides some clarifications on terms like product line architecture and reference architecture, you also learn what kind of preconditions need to exist before product line engineering can be applied successfully.




it

Episode 93: Lessons Learned From Architecture Reviews with Rebecca Wirfs-Brock

In this episode, Markus talks to Rebecca Wirfs-Brock on what she has learned from architecture reviews. This is a very complement to the earlier episode on architecture evaluation.




it

Episode 94: Open Source Business Models with Dirk Riehle

In this episode we're talking to Dirk Riehle about open source business models. We started looking at the way OS projects work and defined different kinds of open source projects. In the main part of the discussion we looked at various ways of how to make money with open source: consulting, support contracts, commercial variant of an open source project, etc. We then looked at the chances and risks of each of these approaches. The next part focused on different open source licenses and how they are suitable for open source business. We concluded the episode by discussing a couple of specific questions and loose ends. After the show, Dirk informed me about the following three corrections: Black Duck Software's main product is called protexIP not IP Central, there are presently 70 licenses approved by the Open Source Initiative, and EnterpriseDB has so far acquired $37M in venture capital




it

Episode 95: The New Guardian.co.uk website with Matt Wall and Erik DoernenBurg

In this episode we talk to Matthew Wall (Guardian News and Media) and Erik Doernenburg (Thoughtworks) about their work on the new guardian.co.uk website. We discuss the challenge of scalability and interactivity, their use of Domain Driven Design, some of the technical building blocks as well as the approaches they use for performance measuring and scalability tuning.




it

Episode 104: Plugin Architectures

In this episode we talk with Klaus Marquardt about building systems out of plugins. After briefly introducing the concept of a plugin in contrast to modules and related software engineering concepts, we discuss different views on plugins and different ways of working with plugins for developing software. We are looking at plugins for embedded systems as well as large business systems, at how plugins change the working mode and team organization, and discuss the possibilities of why and when to use plugins for implementing software systems.




it

Episode 105: Retrospectives with Linda Rising

In this episode we're talking to Linda Rising about retrospectives. We start by defining what a retrospective is and discuss some of the logistics of making it work for software projects. We then look at the different phases of a retrospective. The main part then is a discussion about some of the practices or games that are used to facilitate the retrospective. We conclude the retrospective discussion with destroying some of the prejudices against it and the relationship to process improvement and CMM. At the end of the interview we talk a little about Linda's current interest: how does the brain work?




it

Episode 109: eBay’s Architecture Principles with Randy Shoup

In this episode we discuss with Randy Shoup, Distinguished Architect at eBay, about architectural pinciples and patterns used for building the highly scalable eBay infrastructure. The discussion is structured into four main ideas: partition everything, use asynchrony everywhere, automate everything, and design the system keeping in mind that everything fails at some point in a large distributed system.




it

Episode 113: Building Platforms with Jeff McAffer

In this episode we talk with Jeff McAffer about building platforms. We start with a brief discussion about what a platform is in contrast to a framework or an application. Drawing from his experiences working on the Eclipse platform for years, Jeff talks with us about how to develop platforms, why developing a platform is different from developing an application, what makes a good platform great, and why API design becomes so extremely important for platforms. He provides us with some insights on how the development process and the client collaboration for platform development could look like and what has and has not worked in the past.




it

Episode 115: Architecture Analysis

During Evolution of a software system, it becomes more and more difficult to understand the originally planned software architecture. Often an architectural degeneration happens because of various reasons during the development phases. In this session we will be looking how to avoid such architectural decay and degeneration and how continuous monitoring can improve the situation (and avoid architectural violations). In addition we will look at "refactoring in the large" and how refactoring can be simulated. A new family of "lint like tools for software architectures" is currently emerging in the marketplace I will show some examples and how they scale and support you in real world projects.




it

Episode 116: The Semantic Web with Jim Hendler

In this episode we're talking to James A. Hendler about the semantic web. We start with a definition of the semantic web and by discussing the main ingredients. We then look at (more or less) related topics such as prolog, artificial intelligence, wisdom of the crowds, and tagging. In the next section we discuss the core semantic web technologies: RDF, OWL, inference engines, SPARQL, and GRDDL. We conclude our discussion by looking at the status of the semantic web today and a couple of example applications.




it

Episode 119: DSLs in Practice with JP Tolvanen

In this episode, Markus talks with Juha-Pekka Tolvanen about using DSLs and code generation in practice. The main part of the episode is the discussion about a number of case studies that show how DSLs and code generation are used in practice.

  • Omega Tau, Markus' new podcast mentioned in the beginning of the show



    it

    Episode 120: OCL with Anneke Kleppe

    In this episode we're talking to Anneke Kleppe about model-driven software development and language engineering. We start with her involvement in the creation of the Object Constraint Language (OCL) and discuss the intial expactations, actual experiences, and the place of OCL in the current day. From here, Anneke talks us through her take on the formative years of UML and MDA. From here, we expand to the realm of Domain-Specific Languages and Anneke discusses their place in software engineering in general and why we should expect DSLs in significant numbers to become a common sight.




    it

    Episode 121: OR Mappers with Michael Plöd

    In this episode, Michael Plöd is interviewed about Object-Relational Mapping technology. He talks about the common concepts, compares the range of different tools that go by this name, and goes into the design and architectural consequences of using an OR mapper.




    it

    Episode 122: Interview Janos Sztipanovits

    This is a discussion with Janos Sztipanovits about Cyber Physical Systems and how DSLs are used to approach some of the challenges in that domain. Specifically, in the second part we talk about formalizing DSL semantics.




    it

    Episode 123: Microsoft OSLO with Don Box and Doug Purdy

    In this episode we discuss Microsoft's OSLO platform with Doug Purdy and Don Box. We briefly discuss what OSLO is in general and then look at the various components of OSLO. We also look at how OSLO fits in with the general Microsoft strategy and how it compares to other DSL/Model-driven approaches. We then look at language modularization and composition and discuss the similarities with XML and Smalltalk. Finally, we discuss possible integrations of OSLO with other MD* approaches and technologies.




    it

    Episode 124: OpenJDK with Dalibor Topic

    In this episode we look at SUN's open source strategy for the OpenJDK. We discuss challenges in creating such a big open source project, and ways to keep it focused and organized. We discuss what it means for the Java runtime to be adopted as the technological foundation for other programming languages.




    it

    Episode 125: Performance Engineering with Chris Grindstaff

    In this episode Martin talks with Chris Grindstaff about the fundamentals of performance engineering. The episode discusses when and how to work on performance of client- and server-side systems, what you should take into account during development to avoid performance issues, typical situations that cause performance problems, and some common pitfalls when analysing performance.




    it

    Episode 126: Jetbrains MPS with Konstantin Solomatov

    In this episode we take a brief look at Jetbrains' Meta Programming System, a language workbench for creating external DSLs or for extending existing languages (such as Java). In a brief telephone discussion, Konstantin Solomatov explains what the system does and how it works. The system has recently been released into public beta and will be made available under then Apache 2.0 Open Source license.




    it

    Episode 127: Usability with Joachim Machate

    This episode is an introduction to user interface design with Joachim Machate of UID. We talk about the importance of user interface design, about its relationship to the overall software engineering process, as well as about UID's process for systematic user interface design.




    it

    Episode 128: Web App Security with Bruce Sams

    The majority of hacker attacks (70 %) are directed at weaknesses that are the result of problems in the implementation and/or architecture of the application. This session shows how you can protect your web applications (J2EE or .NET) against these attacks. The session covers lots of practical examples and techniques for attack. Furthermore, it shows strategies for defense, including a "Secure Software Development Lifecycle". A "Live Hacking" demo rounds it out. This is a session recorded live at OOP 2009. SE Radio thanks Bruce, SIGS Datacom and the programme chair, Frances Paulisch, for their great support!




    it

    Episode 129: F# with Luke Hoban

    This episode is a discussion about F# with Microsoft's F# program manager Luke Hoban.




    it

    Episode 130: Code Visualization with Michele Lanza

    This episode is a discussion about code and metrics visualization with Michele Lanza. Michele invented the Code Cities idea about which he talks in this episode.




    it

    Episode 131: Adrenaline Junkies with DeMarco and Hruschka

    This episode is an interview with Tom DeMarco and Peter Hruschka about the new book of the Altantic Systems Guild: Adrenaline Junkies and Template Zombies: Understanding Patterns of Project Behavior. This is a session recorded live at OOP 2009. SE Radio thanks Tom and Peter, SIGS Datacom and the programme chair, Frances Paulisch, for their great support!




    it

    Episode 132: Top 10 Architecture Mistakes with Eoin Woods

    This is a discussion with Eoin Woods about his collection of top 10 software architecture mistakes. Looking at things that don't work is always a good way to learn what you should actually do.




    it

    Episode 133: Continuous Integration with Chris Read

    In this episode Markus discusses with Chris Read basics and some advanced topics in the space of continuous integration. We cover concepts, some tools, as well as a number of best practices.




    it

    Episode 134: Release It with Michael Nygard

    This episode is a discussion with Michael Nygard about his book "Release It" which covers aspects of software architecture you often don't think of initially when starting to build a system. Some of the points we discussed were capacity planning, recovery as well as making the system suitable for operation in a data center.




    it

    Episode 135: Introduction to Software Configuration Management with Petri Ahonen

    In this episode Michael interviews one of our regular listeners: Petri Ahonen. Petri introduces Software Configuration Management by defining key terms and describing relevant concepts.




    it

    Episode 136: Past Present and Future of MDA with David Frankel

    In this episode, Dirk talks with David Frankel, resident Metamodeller and MDA expert at SAP Labs LLC, SAP's subsidiary in the Silicon Valley. Dave's extensive experience provides a big picture, from the early days of CORBA all the way to current issues that are bugging most enterprise architects' work with MDA.




    it

    Episode 137: SQL with Jim Melton

    In this episode, Arno talks to Jim Melton about the SQL programming language. In addition to covering the concepts and ideas behind SQL, Jim shares stories and insights based on his many years' experience as SQL specification lead.




    it

    Episode 138: Learning as a Part of Development with Allan Kelly

    In this episode, Allan shares his insights about how learning is a necessary part of software development. He covers the personal as well as the team and the organizational level and offers practical advice.




    it

    Episode 139: Fearless Change with Linda Rising

    This episode is once again with Linda Rising, this time on the book she coauthored with Mary Lynn Manns on introducing ideas into organizations. The talk is another one of the SE Radio Live sessions recorded at OOP 2009 - thanks to SIGS Datacom and programme chair Frances Paulisch for making this possible.




    it

    Episode 140: Newspeak and Pluggable Types with Gilad Bracha

    This episode is a conversation with Gilad Bracha about Newspeak, type systems in general and optional/pluggable types in particular. It was recorded during DSL Devcon in the gardens of the Microsoft campus, and thanks to Gilad's "speaking like a book" way of talking it is published completely unedited :-)




    it

    Episode 141: Second Life and Mono with Jim Purbrick

    In the first part of this episode we discuss a couple of basics about SecondLife (scaling, partitioning, etc). The second part specifically looks at how the dev team tackled a number of interesting problems in the context of executing their own LSL scripting language on top of Mono.




    it

    Episode 142: Sustainable Architecture with Kevlin Henney and Klaus Marquardt

    This is another episode recorded at OOP 2009, thanks to SIGS Datacom and programme chair Frances Paulisch for making this possible. Here is the abstract from the conference program: Many software systems have fragile architectures that are based on brittle assumptions or rigid architectures that reduce options and make change difficult. On the one hand, an architecture needs to be fit for the present day, suitable for immediate use, and on the other it needs to accommodate the future, absorbing reasonable uncertainty. However, an approach that is overly focused on today's needs and nothing more can create an inflexible architecture. An approach that becomes obsessed with possible future changes creates an overly complex architecture that is unfit for both today's and tomorrow's needs. Both approaches encourage an early descent into legacy for a system. The considerations presented in this talk reflect an approach that is more about thinking in the continuous present tense than just the present or the future tense. This includes principles from lean thinking, practices common in agile processes and techniques for loosely coupled design.




    it

    Episode 143: API Design with Jim des Rivieres

    This episode is a discussion with Jim Des Rivieres about APIs: How to design good APIs, the role of the documentation/specification in APIs, API evolution and other relevant topics.




    it

    Episode 144: The Maxine Research Virtual Machine with Doug Simon

    In this episode we talk with Doug Simon from Sun Microsystems Laboratories about the Maxine Research VM, a so-called meta-circular virtual machine. Maxine is a JVM that is written itself in Java, but aims at taking JVM development to the next level while using highly integrated Java IDEs as development environments and running and debugging the VM itself directly from the Inspector, an IDE-like tool specialized for the Maxine VM. During the episode we talk about the basic ideas behind Maxine, what exactly "meta-circular" means and what makes it interesting and promising to build a Java VM in Java. We talk about the relationship to Sun's current production JVM (HotSpot) and about ideas and directions for the future of Maxine.




    it

    Episode 145: Spring in 2009 with Eberhard Wolff

    In this episode we discuss the current state of the spring framework. We talk about core features (dependency injection, AOP) but also about the spring universe, i.e. some of the more specific frameworks such as Spring Batch.




    it

    Episode 148: Software Archaeology with Dave Thomas

    Dave explains why reading source code is at least as important a skill as writing source code. He shares approaches for how to get to grips with unknown and undocumented source code even if it is non-trivial in size. He finishes with advice for how to get started reading code.




    it

    Episode 149: Difference between Software Engineering and Computer Science with Chuck Connell

    Michael discusses with his guest Chuck Connell the differences between software engineering and computer science. What makes software engineering so unpredictable, with so few formal results? And how can we advance the field of software engineering without these results?




    it

    Episode 150: Software Craftsmanship with Bob Martin

    This episode is a conversation with "Uncle Bob" Bob Martin about agile software development and software craftsmanship specifically. We talk about the history of the term, the reasons for coming up with it some of the practices and the relationship to other agile approaches. We conclude our discussion with an outlook on some of todays new and hyped programming languages.




    it

    Episode 151: Intentional Software with Shane Clifford

    This episode is a discussion with Shane Clifford, who is a development manager at Intentional Software. We discuss the idea behind intentional programming, key concepts of the technology as well as example uses and a little bit of history.




    it

    Episode 152: MISRA with Johan Bezem

    Our guest Johan Bezem explains the idea behind and the benefits of MISRA. MISRA defines guidelines for C and C++ programming in order to ensure quality. While it got started for embedded automotive development, it is more generally applicable.




    it

    Episode 156: Kanban with David Anderson

    This episode is part of our series on agile software development. We talk with David Anderson about Kanban, an agile software development method that is quite different from most of the other agile methods out there. We discuss the basic ideas behind Kanban, the differences between Kanban and Scrum and when and why projects can benefit from using Kanban. This episode is done in cooperation with the German magazine ObjektSpektrum (thanks for sharing this interview with us).




    it

    Episode 157: Hadoop with Philip Zeyliger

    Philip Zeyliger of Cloudera discusses the Hadoop project with Robert Blumen. The conversation covers the emergence of large data problems, the Hadoop file system, map-reduce, and a look under the hood at how it all works. The listener will also learn where and how Hadoop is being used to process large data sets.