CodeCon 2004
CodeCon Navigation
CodeCon 2004
\\PROGRAM
Audacity - A cross-platform multi-track audio editor.
presentersJoshua Haberman, Dominic Mazzoni
historyAudacity began as the personal project of Dominic Mazzoni while he was a graduate student at Carnegie-Mellon University. From the beginning its emphasis was being cross-platform and presenting an intuitive interface. Since then Audacity has grown significantly, with many regular contributors, a documentation writer, and translations into 17 languages.
demoThe demo will consist of two main parts: one demonstrating Audacity's capabilities from a user's perspective, and one describing issues of interest to developers.

The first part will demonstrate Audacity's range of features, while highlighting some of the capabilities that make Audacity unique. A recurring theme will be the idea that Audacity has a deceptively simple user interface, but has lots of sophisticated techniques and algorithms "under the hood" making very intelligent decisions that many users never even realize are happening, without getting in the way of advanced users that want more control over the system. The demonstration will be focused around a scenario of a garage band who is using Audacity to create a demo CD. Creating this CD will take several steps that each illustrate different features of Audacity.

The second part will give an overview of the issues Audacity faces from a developer's perspective. We will explain the challenges we have encountered in keeping Audacity fully supported on three platforms such as UI consistency and supporting native sound APIs. We will also describe legal issues we have encountered: specifically, patent issues surrounding MP3 encoders/decoders and copyright problems with our support of VST plugins, which requires linking against a nonfree SDK. Finally there will be a short explanation of the nontraditional data representation scheme Audacity uses to support nondestructive editing, and how that scheme allows for innovative features such as Josh's recent work with lossless Ogg Vorbis editing: it allows one to import a lossy-compressed Ogg Vorbis file, edit with cut/copy/paste, then export to another Ogg Vorbis file without re-encoding. This work is part of a senior thesis he is working on this semester. More information about this work is available at http://www.reverberate.org/computers/thesis/.

achievementsAudacity has been downloaded over 3 million times and is being actively used by tens of thousands of people. It is still one of the only multimedia applications that is fully supported on Windows, Mac OS, and Linux, open-source or otherwise.
claim to fame Audacity was featured in Eric Raymond's book "The Art of Unix Programming" as a case study in "transparency in UI design." That excerpt is available online at http://catb.org/~esr/writings/taoup/html/ch06s01.html#audacity We have heard reports of Eric praising Audacity in his speeches.

Audacity 1.0 was reviewed in the Washington Post summer of 2002. Also that summer Audacity was mentioned on TechTV during a segment where a caller was looking for software to remove some clicks from a sound file.

future plansAudacity is on the verge of releasing 1.2. Some developers have expressed interest in doing continued work on the 1.2 branch while others have already begun major revision on the trunk. Major plans are real-time effects and visualization, separating the core code into a separate library, and implementing a scripting interface.

Codeville - Distributed version control system
presentersBram Cohen, Ross Cohen
historyAround February of 2003 Bram wrote code for a novel merge algorithm. Ross then picked up the code and has fleshed it out into a fully functional system.
demoWill show various aspects of the system including: clean merging and conflicts; branching and merging between different servers; adds, renames and deletes of files and directories.
achievementsQuite functional system with less than a year's worth of work.
future plansPerformance, polish, cherry-picking individual changes.

FunFS: Fast User Network File System - An advanced network file system designed as a successor for NFS
presentersMichael Grigoriev, David Held
historyFunFS was originally developed at Net Integration Technologies as a basis for an even more ambitious project: a massively distributed completely decentralized storage system. It has since been made open source in hope that other people will find it useful/contribute.
demoThe presentation will address the unorthodox design decisions made in FunFS, and explain the emphasis that FunFS puts on latency. In particular, the importance of latency applied to network filesystem implementations, and the concept of Negative Latency will be discussed.

Both parts of the presentation will be supported by technical demos.

One of the primary design goals of FunFS is massive persistent caching. It is currently common practice to use NFS to mount the root filesystem for terminals and cluster machines to simplify administration. This approach, however, does not scale well, because of the strain it puts on the NFS server. FunFS clients are much more independent. By caching the files locally, they minimize the dependence on the server. In fact, a system with the root filesystem mounted using FunFS is able to remain functional even during a complete network failure. This situation will be simulated in the first part of the demo.

To show the real world impact of the latency reducing techniques used in FunFS, a benchmark of FunFS vs. NFS will be used. The same set of file operation will be performed and timed using both filesystems, while counting the number of round trips performed and the amount of data transmitted. While both filesystems transmit roughly the same amount of data, FunFS is a clear performance winner. The explanation lies in the number of round trips performed by each filesystem during the test. The latency-centered protocol design of FunFS allows it to outperform NFS by a significant margin.

achievementsFunFS is currently a functional, highly network efficient, low latency, read-only filesystem with massive persistent caching and disconnected operation support.
future plansFuture plans include write support, extremely efficient and safe write back caching through use of oplocks and, possibly, write support for disconnected mode with sane conflict resolution.

GracefulTavi - Advanced Wiki software in PHP+MySQL, with self-organization, hierarchies, plugins, and google-style search scoring.
presentersMichel Emond, Kelly John Rose
historyWe started with ZWiki, but it was unmaintainable. Wanted to switch to WikkiTikkiTavi, but we missed the hierarchy and nice formatting rules. Implemented them so we could switch. Then, because we knew the code so well, we started adding other stuff.
demoWe'll start with a very brief introduction to wikis in general, then show off our special features: super-condensed formatting syntax, hierarchy management, google-style text indexing, version control, highlighted diffs, SchedUlator, the Table of Contents generator. As part of this, we'll explain the simple plugin architecture and show people how to write a basic wiki plugin.
achievementsMacro plugin system, parsing system, parenting system, search engine, simple installation, schedulator, and an entirely PHP diff function.
claim to fameUsed by everyone in NITI R&D and QA - more than 25 people, with 1000+ pages. Also used on open.nit.ca.
future plans
  • Make better use of CSS to handle layout and feel
  • Get word-diff working in the diff page, so you can see which words changed on a modified line
  • Create a configure page to allow easier configuration of the wiki settings
  • Make an uninstall script that cleanly removes the wiki
  • Design and implement with better access controls
  • Handle plurals, and specially designated "WikiWords"
  • Lots more plugins!

ida-x86emu - The x86 Emulator Plugin for IDA Pro
presentersChris Eagle
historyThis tool was developed to assist in reverse engineering shiva, an anti reverse engineering tool developed for Linux platforms. Initial development took place in September 2003 and new capabilities are constantly being added. The tool played a supporting role in my BlackHat Federal presentation detailing the reversing of shiva, but it has not been formally presented in its own rite.
demoThe tool will be used in reverse engineering demos on both Windows and Linux binaries with a focus on removal of anti-reverse engineering protections such as Shiva and UPX.
achievementsUsed to reverse engineer Shiva in less than 2 days.
Initial release at BlackHat Federal 2003.
future plans Finish implementing the entire x86 instruction set. Add support for calls to platform specific library routines Add support for Windows Structured Exception Handling (SEH)

mod_zeroconf for Apache httpd - mod_zeroconf allows an Apache 2.0 web server to register its services on a Zero Configuration network.
presentersSander Temme
historyThis project was started in the fall of 2003 and aims to enable the Apache 2.0 web server to register its services in a Zero Configuration networking environment as defined by the IETF working group http://www.zeroconf.org/. There has been one limited release so far.
demo
  • A brief overview of Zero Configuration networking, discussing the principles, the required protocols and where mod_zeroconf fits in.
  • Demonstration of the module at work
  • Walkthrough of the module architecture
  • Discussion of pertinent module code
  • Discussion of build-time and run-time requirements
  • Q&A
achievements
  • Working, demo-able code
  • Developed on X86 linux
  • Apache license
claim to famePresented at 2003 Apachecon
future plans
  • More platforms
  • More mDNS responder APIs as they become available
  • Backport to Apache 1.3
  • Aiming for donating the project to the Apache Software Foundation

Mosuki - artificial networks naturally
presentersJonathan Moore, Matt Chisholm, Jeremy Avnet, Steve Hazel
historyWe began as a research group studying social networks; we needed real data and thought of this project as an interesting way to get data.
demoWe will demo
  1. our permission model
  2. a system designed to eliminate the need for writing screen scrapers
  3. a technique for authenticating sessions using HMAC
  4. the ease of application development in our framework.
achievementsWe have designed a general purpose architecture for building social network applications. We have a general data structure for social networks which includes a permission system and a way to establish arbitrary relations between objects. We also have an application framework that makes it easy to deploy new applications on top of this data structure. Arbitrary relations, or certifications, can be used to drive applications.
claim to fameWe don't want to be a social software company.
future plansTotal small world domination.

Osiris - A free Host Integrity Monitor designed for large scale server deployments that require auditable security.
presentersBrian Wotring, Pablos
historyOsiris has been actively developed since 1999 and has gradually picked up steam. With the release of Osiris 2 earlier this year, we offer a practical tool for monitoring host integrity on a large number of heterogeneous systems.
demoWe'll demonstrate how Osiris is installed and used to monitor remote hosts. Of particular interest to other coders, we'll show our practical use of PKI to secure communication between remote agents and management console. We believe the model we've adopted can serve as a basis for other projects that require secure communication between machines.
achievementsLong term project stability; cross platform support; deployments in all kinds of interesting networks.
claim to fameWell, there's the notorious "Internet Random Mail Reader;" the Hackerbot; a kajillion stickers on laptops...
future plansPackage Osiris for various OS distributions; add additional monitoring vectors; expand reporting functionality; integrate with Nagios & OpenView.

PETmail - Permission-based anti-spam replacement for SMTP
presentersBrian Warner
historyStarted protocol design in summer 2003. Reference implementation can send and receive mail as of October 2003.
demoI will show how to use the PETmail local agent to send and receive mail to other agents, demonstrating how a user publishes their contact information, how a new sender is asked to fulfill the recipient's requirements (CAPTCHA challenges or hashcash submission) before they can send mail, and how recipients can put limits (rate, size, content-type) on what particular known senders can send. Then I will show how most typical correspondence patterns (replying to a new sender, third-party introductions) do not require a permission-grant cycle.

Next, I will show a variety of transport mechanisms: direct TCP connections, encapsulated SMTP messages, alt.anonymous.messages postings, and remailer network usage (for outbound messages).

Finally I will show how a recipient who lives behind a remailer network can automatically publish their SURBs to a Transport Server and how a sender can establish easy communication with them despite each message requiring a different transport path.

achievements The local agent can request permission and send/receive messages. The agent is modular, and several pieces are currently implemented with simplistic local stubs: address lookup is done locally, encryption is stubbed instead of forking GnuPG, and the only Transport type implemented is a direct TCP connection to the recipient's host.
claim to fameThe agent includes a cute furry lamb to attract and encourage new users.
future plansAfter implementing everything described in the paper, the next steps are to improve the user agent (with a mozilla plugin and a webmail-based centralized agent) and improve the various servers (by building simple installers for the permission server, address server, and transport server). Other directions include new transport mechanisms (delivering through jabber, applying the same permission model to some kind of IM functionality) and using a DHT to locate identity records (to reduce certain needs for unique addresses and make re-naming easier).

PGP Universal - Automatic, transparent email encryption with zero clicks.
presentersJon Callas, Jason Bobier
history This project had as part of its inception hallway discussions at the first CodeCon. This is a way to take existing standards and technologies and use them in new ways to make message security usable by mere mortals.
demo Explanation of the architecture and design. Demo of the product on the live Internet.
achievements Chosen for an innovation award from VAR Reseller.
future plans More protocols proxied, IM to start, others as desirable.

Scream - A cross platform component oriented Java environment and API to utilize the SuperCollider3 DSP audio engine and language among other OSC/MIDI enabled applications
presentersMike Leahy
historyFull time development of Scream began in April 2003. Mike Leahy premiered the 1st Scream module in early June at Electron Salon 7 during the SuperCollider session. A recording of the concert is available here. A second installation was accomplished at the Sol System 2003 Burning Man camp. The first prototype of a parametric path graphical panning component was utilized to control a large 8 channel sound array via b-format ambisonics. Recent additions to the Scream framework include graphical hardware acceleration for all GUI components, optimized network architecture, and support for OpenGL enabled visualizations and components. The most recent snapshot (pictures and video) of Scream features can be viewed here
demoDepending on resources available a presentation of advanced multichannel panning may be possible. Other demos include a granular sampler. A demo of OpenGL graphic control from Scream components will also be an option. Discussion will include design decisions / strategies and an overview of the SuperCollider3 DSP engine and how Scream interacts with it.
achievements
  1. Custom hardware accelerated GUI framework built with Java2D and JOGL (OpenGL).
  2. NDimensional event system that can interoperate between multiple components on 1D, 2D, 3D levels and beyond.
  3. Optimized network architecture for high volume network transmissions. Scream communicates via the OSC network protocol to OSC enabled software / hardware.
future plansContinued full time development of Scream with an initial beta release planned for approximately fall 2004.

Solipsis - A peer-to-peer system for a massively multi-participant virtual world
presentersJoaquin Keller, Gwendal Simon
history In the beginning was the Metaverse (in Snow Crash by Neal Stephenson) and Gnutella 0.4. Three years ago, at the dawn of peer-to-peer systems, the idea of building a serverless shared virtual reality emerged...

France Telecom is indeed a good company for this kind of projects: France Telecom do not operate (almost) any servers, it instead operates networks, and peer networks are networks, aren't they?

demo
  1. run the software and have a live chat with internet users and/or the Codecon attendees (depending on the local network config).
  2. While so, present the Solipsis architecture and algorithms.
  3. And to get feedback and support, we will present also how we envision = the future of Solipsis (open source, standardization, colonization,...).
achievementsthe first shared virtual reality with no server at all
future plansShort term: to make available an easy to install, .exe, installer (hopefully before codecon'2004)
Less short term: to release, in a bazaar open source mode, a Solipsis beta version that could be a reference implementation for standardization at IETF (or so).

Tor - Second-generation Onion Routing: a TCP-based anonymizing overlay network
presentersRoger Dingledine
historyFirst-generation Onion Routing started in 1996, and culminated in an unreleased and inflexible prototype. Tor, the second-generation design, has been funded by the Naval Research Lab since 2002, and is intended as an update and replacement for Onion Routing. It addresses many limitations in the original Onion Routing design, and is released unencumbered as free software.
demoI'll give an overview of the Tor architecture, and talk about what security it provides and how user applications interface to it. I'll show a working Tor network, and invite the audience to connect to it and use it.
achievements
  • Code is usable, stable enough, portable, and small (~11k lines of C)
  • Code is released unencumbered as free software
  • We've written a clear byte-level specification and design paper
claim to fameFreely available unpatented Onion Routing code has been a cypherpunk goal for more than a decade.
future plans
  • Location-hidden servers via rendezvous points
  • Restricted-route (non-clique) network topology
  • Threshold agreement between directory servers
  • Widely deployed testbed network

Vesta - An advanced software configuration management system that handles both versioning source files and building.
presentersKenneth C. Schalk
history Vesta is the result of over 10 years of research and development at the Digital/Compaq Systems Research Center in Plao Alto, CA. It's been in production use by a microprocessor design group (formerly the Alpha development group, now a part of Intel) for over 5 years. It was released as free software in March of 2002.
demo The basic usage flow (checkout, edit, build, checkin) of the system will be demonstrated.

Differences between the Vesta paradigm and other popular versioning/build systems will be illustrated.

The web interface will be demonstrated.

achievements The implementation has gained significant stability from over 5 years of production use by a large, demanding group.

In the last three years, it's been ported to Linux on four different CPU architectures and transformed from a corporate research project into a free software project.

The builder provides completely automatic language-independent dependency detection.

Because of the way the builder is designed, there's a guarantee of precise build repeatability.

It's competitive with [expensive] commercial configuration management systems, but it's free.

(More details at: http://www.vestasys.org/why-vesta.html)

future plans The core design has been stable for several years, and we don't anticipate it changing much. Future plans include:
  • Installable RedHat/Debian packages (probably by the time of CodeCon).
  • Secure authentication between remote repositories and encryption of transactions.
  • The ability to trigger arbitrary actions on repository changes (e.g. sending e-mail on checkin).
  • Ports to new platforms (Solaris, FreeBSD, Darwin/MacOSX, others).

Xerblin - multi-language compiler/debugger/profiler/linker/versioning IDE
presentersSimon P. Forman
historyI first conceived of this system several years ago. It has many novel properties, so many, in fact, that I knew I'd have to provide a working demo to convince other programmers that it could actually work. Since then I have worked on writing such demos in my spare time, but I haven't until now, ever fully implemented full working demo.
demo
  • Read in a simple c-language program and graph it's Abstract Syntax Tree (AST)
  • Edit and debug the program at the AST level
  • Write the program back out both in c and in python and show that both versions run
  • Give a walkthough of the system's novel user interface
achievementsWorking "proof-of-concept" demo version. Can parse c source, can graph AST's and allow editing and verification at an abstract level, yet still "run" the software. Simple and very powerful user interface modeled on Oberon OS.
future plansSupport more languages and object file formats. Grow to encompass general human-computer interfacing.
Sponsors About Lists CFP People Schedule Program Registration Main