ACCU 2004 Sessions

Thursday, 15 April

09:00

Turn on the LAMP - migrating to Linux, Apache, MySQL and Python

  • Track: Open Source
  • Presenter(s): Alan Lenton
  • Description:

    This session looks at a key "Open Source Technology Stack" which has been in wide use for many years but only recently gained an acronym. LAMP stands for four components...

    Linux (or FreeBSD, or any other free Unix-like OS)

    Apache, the world's leading web server which also provides many other network services

    MySQL (or PostreSQL, or BerkeleyDB, or another open source database)

    Python (or Perl or PHP): a high level application programming and scripting language, usually combined with a web templating system to generate dynamic pages and forms.

    The talk will discuss how these building blocks fit together to form the basis of arguably the most common Open Source application development framework, and how this adapts and extends the traditional Unix philosophy of simplicity and reuse.

Is C++ Relevant on Modern Environments

  • Track: C/C++/C#
  • Presenter(s): Herb Sutter
  • Description:

    Increasingly, we are writing programs targeted to modern environments characterized by a virtual machine with garbage collection. Leading examples include the JVM and the .NET CLR (ISO CLI, or Common Language Infrastructure, is the standardized subset of the .NET runtime environment and frameworks class library). But Standard C++ has no notion of now-fundamental concepts like garbage collection. Is C++ simply obsolescent? No; it can be cleanly extended to directly support these modern environments. Further, C++ actually offers compelling advantages that can make it the language of choice for your application, even on the "home turf" of newer languages specifically designed for these new environments. In October 2003, a new ECMA standards committee was formed to create an open international standard for "C++/CLI," a set of extensions to C++ that enable full and first-class support for CLI features and idioms, while bringing all the existing powerful features and idioms of ISO standard C++ to the CLI environment. C++/CLI has been designed by Microsoft in collaboration with C++ industry leaders, and is an evolution of the Managed Extensions for C++ (aka "Managed C++"). Formally, C++/CLI is a binding between ISO C++ and ISO CLI; see the announcement here . In this talk, the lead architect of C++/CLI talks about the language design and major features, with a look under the hood at how compilers are implementing the new semantics. C++/CLI provides first-class and cleanly integrated support in the C++ language for all CLI features (e.g., properties and events, garbage collection and generics) uniformly for all types including also for native types. It also provides first-class support in the CLI environment for all standard C++ features (e.g., deterministic destruction and templates) uniformly for all types, including also for CLI types. These facilities are expressed through a set of pure conforming extensions to ISO C++, underpinned by a unified type system and unified pointer/storage system.

10:30

The Bots And Pieces Workshop

  • Track: Process
  • Presenter(s): Maria Kavanagh, Alan O'Callaghan
  • Description:

    Software systems are always 'systems within systems' and often failures in software development projects result from a failure to take this into account. This workshop offers an opportunity for you to explore the systemic and configurational knowledge required for success. Working in teams of five people you will work intensively (possibly agilely) to develop a race-winning Lego Mindstorms robot. You will be competing against other teams which, like yours, will be exercising construction, programming and team-building skills to defeat you. The workshop is based on an idea originally developed by the Xtreme Tuesday club (to each Xtreme Programming) and is being run as part of a year-long, Europe-wide experiment into pattern languages. Its been fun wherever it has been run!

The Design and Implementation of a set of Templates for Input

  • Track: C/C++/C#
  • Presenter(s): Francis Glassborow
  • Description:

    In this presentation I will describe the experience of and the lessons learnt from writing a simple set of templates designed to allow safe, checked input of data from an istream source. I will cover such issues as appropriate handling of failure conditions and the need to distinguish between failure caused by attempting to read beyond the end of a file and other forms of failure. This talk is aimed at intermediate level programmers who wish to explore developing general purpose template functions. It will also show inexperienced C++ programmers how a simple family of templates can make their coding easier.

UML For Embedded C

  • Track: C/C++/C#
  • Presenter(s): Niall Cooling
  • Description:

    This presentation initially looks at the practicalities of implementing a UML v1.x design in the C programming language. UML has become the accepted technique for modern software design. However it is based on object-oriented design principles. In the embedded systems market, there has been a limited up-take of C++ due to either lack of complier support and/or misgivings about its use in this field, leaving C still as the dominant programming language.

    First, the presentation aims to qualify what is meant by "objects" and demonstrate a typical C program supporting object-based principles. Next it identifies the characteristics that differentiate an Object-Based (OB) from an Object-Oriented (OO) system; namely classes, inheritance and polymorphism. Each of these characteristics is then explored in terms of C program constructs from both a theoretical and practical viewpoint.

    The tutorial then introduces the concept of concurrency from both the perspectives of UML and C with a supporting Real-Time Operation Systems (RTOS).

    Finally the presentation identifies the major changes in UML 2.0 and what these will mean to a C programmer.

Stone age brain meets programming

  • Track: Process
  • Presenter(s): Derek Jones
  • Description:

    The human brain evolved in an environment where the ability to solve logical puzzles was not a significant factor in the likelihood of a person passing on their genes to future generations. While mathematical logic is a relatively new (last 100 years) invention, people have been successfully going about their daily lives solving a variety of problems for thousands of years. People do seem to be very good at solving the kinds of problems that regularly occur in their everyday lives and it is assumed that this ability is driven by both genetic and cultural predispositions (ie, we are born with brains containing various functional units whose internal connections are strongly affected by the most commonly received inputs eg, everyday life). This talk will describe some of the results of human reasoning studies that have been performed by cognitive psychologists. In particular it will look at how some of the problems in these studies have parallels with the kinds of problems that software developers have to solve when reading and writing code. Restructuring problems to fit the abilities of the human brain is currently a more practical option that rewiring the brain. Various possible options will be discussed.

Funding Open Source

  • Track: Open Source
  • Presenter(s): Steve Alexander, Paul Everitt, Peter Hollands, Richard Moore, Aljoša Pašic, Atos Origin
  • Description:

    Open Source may have extremely productive dynamics for creating high quality software, but the developers involved still need to eat. This panel will look at a number of models by which development is supported including the adoption of projects or developers by large computer corporations, direct funding from the European Union and other bodies, and even philanthropic sponsorship

11:15

Open source licenses 101 -- a primer

  • Track: Open Source
  • Presenter(s): David Ascher
  • Description:

    While there are technical and social aspects to open source software (approach to release management, development model, cost, etc.), a software project is or isn't open source depending on the type of license agreement that governs its use. Nevertheless, many open source projects choose licenses without a clear understanding of the choices that they represent. Similarly, many businesses are faced with a considerable challenge when evaluating open source projects.

    In this talk, I will give a (non-lawyerly) survey of the wide variety of license types available, their origins and goals, and help understand the factors you should consider when deciding what license to use for a given project, as well as what kinds of risks/obligations one encurs when using software under various license types.

12:15

Linux at IBM

  • Track: Open Source
  • Presenter(s): Richard Moore
  • Description:

    An discussion of why IBM is involved in Linux, what the value proposition is for Customers, Why Linux is a key part of On Demand, The Linux Technology Centre, Its Contribution to Open-source, A summary of its Key Projects and Focus areas for 2004

13:00

Open Source Java initiatives at HP Labs

  • Track: Open Source
  • Presenter(s): Mark Butler, Hewlett Packard Laboratories
  • Description:

    HP Labs in Bristol is involved in a number of Java open source projects. This talk will provide an overview of these projects and describe the way that HP Labs has used open source to guide and ground the creation of new technologies in conjunction with standards organisations such as the World Wide Web Consortium.

    The projects to be discussed will include DSpace, FOA, WH2FO and DELI. First DSpace, developed jointly by MIT Libraries and HP, is a groundbreaking digital library system to capture, store, index, preserve, and redistribute the intellectual output of a university's research faculty in digital formats. FOA and WH2FO are two tools concerned with the creation of XSL-FO stylesheets and the conversion of content to a form suitable for XSL-FO processors respectively. Finally DELI is an open source implementation of two related standards aimed at describing devices capabilities that has been widely used by network operators and phone manufacturers.

14:00

The Bots And Pieces Workshop (cont)

Manipulating Streams

  • Track: C/C++/C#
  • Presenter(s): Dietmar Kühl
  • Description:

    IOStreams provides lots of possibilities for user customization. This talk will show how streams work to provide several independent dimensions of customization (the external source or destination, low-level details like the encoding, and formatting of user defined types). It will show how to create streams for new sources or destinations and present a small framework for easy creation of filtering streams (ie. streams which internally just use another stream). It will also present how to write manipulators and where to store stream dependant formatting information.

Embedded Java

  • Track: Java
  • Presenter(s): Russel Winder
  • Description:

    Java is an embedded systems programming language. Seriously. Honest. Java is generally perceived as a language for developing dynamic server-side systems (servlets, etc.). It is also a popular language for teaching students about programming. What is not always appreciated is that the same properties that make Java good for server-side systems make it a good language for certain types of deep embedded systems. Oak, the precursor to Java, was after all always intended to be for building the computing components of white goods and brown goods (washing machines, fridges, DVD players, televisions, set-top boxes, etc.). I intend that this session will be a lively mix of presentation to set out points and issues and debate to try and investigate some of the issues associated with working with open embedded systems. The starting point will be various bits and pieces of J2ME, CDC, CLDC, MIDP, STIP, FINREAD, Java Card, GlobalPlatform, etc. to set the scene. The closing point will be wherever the audience decide to go with the topics.

Test Driven Develpment Workshop

  • Track: Process
  • Presenter(s): Rachel Davies, Ivan Moore, Duncan Pierce
  • Description:

    Test Driven Development (TDD) is a way of writing code that produces clean, concise and well tested code. It is different than the way most people are taught to develop code, and takes some getting used to. This tutorial gives participants a hands-on introduction to TDD in which they can get a flavour of how it works. The tutorial will use Python, a simple, object-oriented scripting language. Sample code will be provided for the exercises in Python, and features necessary for the tutorial will be explained. This tutorial is intended for hands-on developers; you will need to bring a laptop with a CD drive.

Open Source and Open Standards in Finance

  • Track: Open Source
  • Presenter(s): Ken Horn, Deutsche Bank, Christian Nentwich, Technical Director, Systemwire Ltd., Andy Robinson, Peter Shima, Andrew Thompson
  • Description:

    Panel Chair: Peter Shima

    Financial firms have always been the earliest and most aggressive adopters of new technologies and are using Open Source tools as widely as others, even if they talk about it less freely. The desire to avoid license fees less of a factor than in the public sector; however, reliability is critical, and the ability to rapidly amend and deliver systems is of paramount importance.

    Open standards for data exchange are just as important as the code itself processing that data and we will look at the growing use of XML standards for data interchange and of B2B web service architectures, as well as the use of advanced languages and toolkits for "plumbing" systems together rapidly and reliably. The talk will outline the traditional roles of front, middle and back office and how they relate, and feature some exciting demonstrations of how hard problems in this domain are being solved with standard components. Panelists include...

    • Ken Horn, Technical Architect at Deutsche Bank, on issues in enterprise Java issues
    • Christian Nentwich, CTO of SystemWire Ltd, whose Java-based Xlinkit toolkit is providing advanced business rule validation for financial derivative trades expressed in Financial Products Markup Language (FPML)
    • Andrew Thompson of Newhert.com, former Global Head Equity Proprietary Trading at Commerzbank, will demonstrate a complete Risk Management solution built from off-the-shelf components using Python, XML, XSL and SVG
    • Andy Robinson of ReportLab, who provide enterprise document-generation workflows for a growing number of financial players using XML and Python

16:00

The Boost Iterator Library: User defined Iterators made easy

The Bots And Pieces Workshop (cont)

Smaller Software

  • Track: Process
  • Presenter(s): Charles Weir
  • Description:

    Now that Object-Oriented development has become mainstream, O-O environments are being used in many systems with limited memory: smart-cards, personal organisers, smart-phones and set-top boxes for example. And as applications become more sophisticated, even large mainframe and workstation applications may find themselves constrained. So a significant and growing proportion of the O-O community now face the problems of producing O-O systems subject to these restrictions. How can they satisfy their constraints without compromising the principles of object-orientation or limiting the functionality they provide? This talk will describe how to use O-O techniques in a memory-constrained environment. The speaker has made an intensive study of the approaches and techniques used by successful software developers for memory-limited machines. Using an approach based on design patterns this talk will explore a few of the most important of these techniques, and provide guidelines to implementing them

Test Driven Development Workshop (cont)

Software Patents

  • Track: Open Source
  • Presenter(s): James Heald, Steve Probert, Patent Office, Puay Tang, Sussex University, Sarah Weir
  • Description:

    The issue of Software Patents is both topical and critical in the industry at the moment. The practice of patenting software in the US has led to such visible situations as British Telecom's attempt to patent the idea of a hyperlink, but at a more pervasive level it has arguably allowed large companies to issue defensive patents which make it hard or dangerous for smaller companies and open source projects to innovate.

    In late 2003 an assorted group of economists, software developers, MPs and other figures forced the EU to amend a draft law which would have allowed the introduction of software patents, and the matter is now back before member countries for review.

    This session will consist of an introduction to the issues and a summary of the patent "campaign" within Europe at present; followed by a debate-cum-panel involving economists, legal experts, and key figures from both sides of the divide within the software industry.

18:00

Blackwell's Reception

  • Presenter(s):

18:30

Blackwell's Reception continued, plus Birds of a Feather meetings

  • Presenter(s):

Open Source in Education (BOF)

  • Track: Open Source
  • Presenter(s): Chris Withers, Simplistix
  • Description:

    Chair: Chris Withers, Simplistix Ltd.

    This is being organised as a birds-of-a-feather session during the lunch break, as the session came together once the programme was closed. There are options to continue in the early evening. We hope to provide a chance for Universities to compare notes on common projects, with a strong emphasis on document storage, processing and workflows. At minimum subjects will include

    • Sebastian Rahtz of Oxford University Computing services on OSS-WATCH
    • Paul Browning of Bristol University
    • Mark Butler of Hewlett Packard Laboratories on DSPACE, the scalable repository jointly developed with MIT

    Note that the "student price" of £90 has been extended to cover University IT and academic staff on this day only; please register as "student".





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.