2009 /dev/world Sessions

/dev/world/2009 was held at the National Convention Centre, Canberra, on September 28-29, 2009. Click a session title to see more details about that talk and the speaker, and to view a recording of the session if one exists.

Feature Presentation: Developing for success on the iPhone
Rob Murray, CEO, Firemint

Firemint is a game development studio in Melbourne, Australia. They work with publishers as well as creating their own original titles such as Flight Control and Real Racing for the iPhone. Rob Murray is the CEO of Firemint will outline their method for success in the iPhone and mobile games market.

Feature Presentation: Parallel Programming for Multi-Core Devices
Derek Gerstmann, UWA

The steady increase in the number of processing cores being used in modern hardware architectures is forcing engineers to rethink the way they design software by focusing on scalability through concurrency, and effective scheduling of resources.

This presentation will discuss various technologies that are available on the Mac for programming multi-core processors, as well provide some insights into the historical and practical issues that arise when trying to address scalability concerns and performance requirements.

Derek Gerstmann is a research fellow at the Western Australia Supercomputer Program and the Centre for Microscopy, Classification and Analysis at UWA funded under the BioImaging Initiative. He brings his expertise in parallel and distributed programming techniques from a diverse professional career in the software, visual effects and graphics hardware industries. He received his MSc from the National Centre for Computer Animation (NCCA) at Bournemouth University, UK, and his BS from the University of Washington.

Planting an Orchard
Mark Bate, Monash University

Computational biology research such as bioinformatics, molecular dynamics and drug design often require the running of many variants of CPU-intensive simulations, each of which may take months to compute. At Monash University we have been experimenting with distributing our computational load across many grids and clusters, from Xgrids in our lab, to multi-institutional clusters around the globe. We have also recently purchased our own Apple Xserve cluster,“Orchard”, which at 100x 8-core Xserves, is the largest Apple cluster in the Southern Hemisphere and will be used exclusively to aid high-performance computational biology at Monash. This session will cover our experiences in migrating from traditional desktop computing to grid and cluster based computing, as well as explain how we’ve developed some of our grid-based applications.

OpenGL Basics for OS Xrecording available icon
Andrew Bennett, University of Tasmania

In this session, attendees will learn about OpenGL, the powerful 3D rendering library at the heart of Mac OS X. This session will cover what OpenGL actually is, it is aimed at novice developers and build a foundation of basic 3D concepts, and show how to embed 3D views into pure Cocoa applications. The session will then cover some of the difference between OpenGL and Core Graphics, and demonstrate situations where one is preferred over the other.

OpenGL Optimisation for OS Xrecording available icon
Andrew Bennett, University of Tasmania

This session is aimed at people who have a passing familiarity with OpenGL, it will cover advanced OpenGL concepts like Vertex Buffers, Frame Buffers, Vertex and Fragment Shaders. Then it will show how things like these and the tools that MacOSX provides can be used to optimise and enhance your applications.

Cocoa Programming with Pythonrecording available icon
James Bekkema, Charles Sturt University

Learn how to build Cocoa applications in Python for Leopard & Snow Leopard. This session will introduce writing Cocoa-Python applications using Xcode and Interface Builder, demonstrate the power and features of Cocoa-Python, and cover advanced tips-and-tricks associated with Cocoa development in Python. Attendees will also learn how Python can be used to expand their existing Obj-C applications, and how Python-Cocoa can be used to develop impressive web applications.

Pimp My App
Paris Buttfield-Addison, University of Tasmania

What makes an application stand out? How can you discipline your application’s feature list? How can you save time without cutting corners? Learn how not to annoy your users and how to avoid the common mistakes. This session takes you from zero to hero and shows you have to make the best application you can.

When It’s Done
Paris Buttfield-Addison, University of Tasmania

This session will cover all the basics of shipping a commercial product on the Apple platforms. Participants will learn how to start promoting their products, how to build a community around their products and how to handle the business issues of having a software product in the real world. It will form a great primer for those interested in starting their own business, those that already have, or anyone who wants to get a perspective on what it’s like to create software for “the real world”.

Using XML for Dynamic Application Configuration
Kyle Buttress, Griffith University

A requirement of a recent Mobility Project at Griffith University was for an iPhone application to have dynamic configuration, where on startup the application would attempt to download a configuration file specific to the user and location. It was decided to use XML based files on an internal server that could be synced by the device for this purpose.You will be shown how to import and export XML files and feeds from external websites, and use this information to change and update aspects of your application. Changes to the XML from the user can be synced to the original source for later reference. Comparisons of XMLParser, and third party XML parsers will be discussed along with using JSON for the same purpose.

Hello iPhone: Ground Zero for Developing Applications on iPhone and iPod Touch
Nic Circosta & Brock Woolf, Murdoch University

The first hour of this double session is an introduction to the iPhone developer tools, Objective-C programming language constructs and iPhone frameworks that are essential for developing an iPhone application. You will learn the basics of using the Xcode Compiler/IDE and Interface Builder which is essential for designing your application’s user interface. In this session you will discover the importance of the delegate pattern, memory management and the MVC paradigm. Cocoa fundamentals which include commonly used classes for creating your graphical interface and data structures for storing data and application state will also be covered in this session. The second hour introduces View Controllers for creating multi-view applications. You will also learn how to use the Cocoa touch framework for touch user input gestures, such as touching, dragging and cancelling touch input.

iPhone Pushing Forward: Advanced Tools to Build a Solid iPhone Application
Nic Circosta & Brock Woolf, Murdoch University

The first hour of this double session looks into the more advanced features of iPhone OS including Graphics & Media. Attendees will also be introduced to a variety of archiving methods available on iPhone OS as well as new and exciting features of OS 3.0. Targeted at advanced users, a variety of performance tools will be demonstrated to show you how to get the most out of your application. The second part will introduce the Application store submission process – essentially a work flow including how to remotely test & debug as well as how to preparing the final binary and submit to Apple.

Massively Parallel Computing with OpenCL
Josh Deprez, University of Tasmania

OpenGL shaders are nice, but for the job of running serious code, it is a silly hack to use them. It isn’t keen to introduce dependencies on some proprietary framework for doing massively-parallel computation either. OpenCL is a new open standard for running code on more things than just your CPU, with an implementation provided by Apple in Snow Leopard. See a demonstration and learn about coding with OpenCL kernels, the common pitfalls with using your GPU for computing, and catch some platform-specific tips for optimising your kernels.

Shiny Automagic Updates and More with Sparkle
Josh Deprez, University of Tasmania

We all wish our apps would have a shiny magic update mechanism as slick as Apple’s own Software Update. Now you can, with minimal fuss! This session is about the open-source Sparkle framework and how to add it to an existing application. In addition, there will be tips for setting up and maintaining app cast feeds, customisation and tweaking using settings and code, securing updates with signing, and collecting anonymous system statistics from your users.

Next Generation HTML and CSS on Safari
Ian MacColl, Queensland University of Techology

Safari provides a leading edge web experience by supporting much of the next major revision to HTML alongside proposed extensions to CSS and HTTP.This session gives an overview of support in Safari for HTML5, CSS effects and HTTP Live Streaming. Learn about the rich- media capabilities of HTML5, such as, drawing, media playback and offline storage. See how to produce effects such as transitions, transforms and animations using just CSS. Discover how to use a standard HTTP server to provide live or on-demand video. Find out how to use these technologies in Safari and also stay compatible with other browsers.

Rapid Web Development for Safari
Ian MacColl, Queensland University of Techology

Dashcode and Safari provide a powerful set of tools for developing web applications.This session gives an overview of the tools and technologies available for building web applications for Safari. Learn how to tweak your web application for mobile users and how to add advanced iPhone features. Discover the tools available in Safari for working with HTML, CSS and Javascript for editing, debugging and performance.

Developing Interface Builder Plug-insrecording available icon
Jon Manning, University of Tasmania

Mac OS X provides a lot of useful and well established views and controls, however some- times you may need to extend this functionality with a custom view. The problem with this is that you often can’t see how it looks or set properties of your custom view. This session shows developers how to create Interface Builder plugins, when it’s worth doing, how it can solve these problems and the time and code savings that doing so can allow.

Introduction to the Unity 3D Game Engine
Jon Manning, University of Tasmania

OSX Game development has taken an exciting turn lately, it used to be you would have to wait years for an OSX port and that was only if you’re lucky. Now independent game developers are flooding to an exciting new development platform that allows developers and de- signers to quickly create games in a visual and very Mac centric IDE called Unity. This session introduces Unity, and takes the user through the process of creating a simple side scrolling game on OSX with Unity using next-gen graphics and technologies.

Managing Multiple Languages in your App: Why and How
Chris Neugebauer, University of Tasmania

We all know that Objective-C is the primary language for writing apps for the Mac, but it’s not the only language with first-class Cocoa development status — Ruby and Python also share that distinction. Each of these three Cocoa languages have their own distinct strengths and weaknesses to be exploited, along with a rich set of libraries from outside of the Mac world, waiting to be harnessed by Cocoa.

This talk develops the skills you need to integrate a second language into your Objective-C codebase; we’ll begin by discussing the differences between the three Cocoa languages, and identifying cases where your task may be better-suited to Python or Ruby; this is followed by integrating external Python/Ruby libraries into Cocoa, frying ducks, and developing original Python or Ruby code to accompany your Objec-tive-C codebase. We’ll also touch on juggling the different coding standards that Python and Ruby languages prefer in a single project.

Grand Central Dispatch – Multicore Programming Made Easy
Carlos Alexandre Queiro, RMIT University

The race for clock speed is over. All Macs are now equipped with multi-core processors, but applications need to be adapted to get the most out of these new processors. Traditionally, developers have had to consider threads, locks, semaphores, concurrency and so on if they want to improve the performance of their applications running on these processors.

The advent of multicore architectures has brought parallel programming to the masses, along with all the issues it may have. GCD (Grand Central Dispatch), being introduced as part of Snow Leopard, aims to make programming for multi-core machines easier. GCD provides a simple and efficient API to achieve parallelism and consequently take advantage of the multiple processing units. This presentation will introduce the basic concepts of GCD in a step-by-step manner, and explore basic problems and how to parallelise them using GCD.

Impromptu Workshop: Live Music and Visuals on OS X
Ben Swift, Australian National University

Impromptu is a free, Scheme-based software environment for coding live music and visuals on OS X. In this workshop you’ll learn how to get started with Impromptu, including the basics of the Scheme programming language, and start using Impromptu to make all sorts of cool noises. Bring along a laptop and a pair of headphones for a hands on exploration of live coding using Impromptu. No expertise in either Scheme programming or music is required. Copies of the software will be available at the workshop, but if you want to install Imromptu ahead of time, go to impromptu.moso.com.au.

Quartz Composer for Programmers
Luke Toop, University of Adelaide

Quartz Composer is a developer tool that can quickly add image and video processing to your application. This talk will explain the modular video synthesis interface building basic QC compositions, using QC compositions in InterfaceBuilder/Xcode and in CLI tools building intermediate QC compositions.

Porting from Direct X to OpenGLrecording available icon
David Winder, Charles Sturt University

Direct X is a technology for handling multimedia, including video, graphics and sound on Microsoft platforms. In order to port DirectX programs to iPhone and Macintosh, developers need to rewrite parts of their application to use OpenGL. This introductory talk will highlight the differences between the DirectX and OpenGL, and demonstrate basic porting with a series of examples. The concepts that will be covered include texture loading and display, and an example of using the matrix stack to view a 3D world.